Sunteți pe pagina 1din 87

ABORDARE APLICATIV

SISTEMUL DE GESTIUNE AL BAZELOR DE DATE MICROSOFT ACCESS 2000


OBIECTIVE: Asimilarea noiunilor de baz specifice SGBD-ului Microsoft Access 2000; Crearea bazelor de date i a structurii acestora; Crearea i manipularea obiectelor bazelor de date (tabele, formulare, rapoarte, interogri, pagini web, macro, module); nelegerea legturilor dintre tabele; Cunoaterea i aprofundarea limbajului SQL.

Concepte de baz
Un sistem de baze de date: este un sistem computerizat de pstrare a nregistrrilor al crui scop principal este s stocheze informaiile i s permit utilizatorului s consulte i s actualizeze aceste informaii. In domeniul bazelor de date este important s se fac o distincie clar ntre noiunile de dat i informaie: 1. Datele, materia prim a sistemelor informatice, sunt fapte culese din lumea real pe baz de observaii i msurtori 1 . Datele pot lua mai multe forme: date alfanumerice (formate din litere, cifre i caractere speciale), date de tip text (propoziii i fraze folosite n comunicarea scris), date de tip imagine (forme grafice i figuri geometrice) i date audio (vocea uman i alte sunete). In sistemele informatice datele sunt stocate n baze de date. 2. Informaia este rezultatul interpretrii datelor de ctre un anumit subiect i confer acestuia capacitatea de a lua decizii. Datele devin informaii doar n momentul n care acestea interacioneaz cu un sistem capabil s le interpreteze. Informaia are un caracter subiectiv deoarece aceeai dat poate fi interpretat diferit de ctre subieci diferii. Informaiile sunt date prelucrate i prezentate ntr-o form (context) care s aib o anumit semnificaie pentru utilizatorul final i reprezint ieirile sistemului informatic. n concluzie, putem preciza faptul c sistemele informatice prelucreaz date nu informaii.

Informaia reprezint produsul final al sistemelor informatice i, n funcie de cele patru dimensiuni, timp, coninut, forma de prezentare i locaie, aceasta trebuie s ndeplineasc urmtoarele cerine pentru a fi util: A. n funcie de elementul timp: oportunitatea: informaia trebuie s fie furnizat atunci cnd este nevoie de ea; actualitatea: informaia trebuie s fac referire la realitile prezentului atunci cnd este furnizat; frecvena: informaia trebuie s fie furnizat cu un ritm care s sprijine interesele utilizatorilor; perioada de timp la care se refer: informaia poate s conin elemente care s descrie evenimente din trecut, prezent sau viitor. B. n funcie de coninut: acurateea: informaia nu trebuie s conin erori; relevana: informaia trebuie s satisfac nevoile de informare ale utilizatorului cu privire la o anumit situaie; caracterul complet: informaia trebuie s conin toate elementele de care utilizatorul are nevoie; caracterul succint: vor fi furnizate doar acele informaii de care este nevoie ntr-o anumit situaie. performana.
1

R. Dollinger, L. Andron, Baze de date i gestiunea tranzaciilor, Editura Albastra, Cluj-Napoca, 2004, p. 12.

C. n funcie de forma de prezentare: claritatea: informaia trebuie s fie prezentat ntr-o form uor de neles; gradul de detaliere: informaia trebuie s fie furnizat n form detaliat sau sintetizat n funcie de necesiti; ordinea: informaia trebuie s fie prezentat ntr-o anumit succesiune; modul de prezentarea: informaia poate fi furnizat sub forma unei relatri (expuneri), sub form numeric, grafic, etc.; mijloace de prezentare: informaia poate fi prezentat pe suport de hrtie, pe ecran sau pe alte medii. D. n funcie de locaie: informaia trebuie s fie disponibil indiferent de locaia n care se afl utilizatorul. Aceste cerine pot fi realizate folosind Bazele de date. Un sistem de baze de date este format din patru componente principale: date, hardware, software i utilizatori.
Sistem de gestiune a bazelor de date

Programe de aplicaie

Figure 1 Schema simplificata a unui sistem de baze de date (sursa C. J. Date) 1. Componenta de date: este format din baza de date sau bazele de date ale sistemului. 2. Componentele hardware sunt formate din: mediile de stocare secundare care sunt utilizate pentru pstrarea datelor i procesoare folosite pentru prelucrarea datelor i memorii RAM, etc. 3. Componenta software este format din Sistemul de gestiune a bazelor de date, programe utilitare, editoare de rapoarte, etc. 4. Utilizatorii: exist trei clase mari de utilizatori programatorii de aplicaii, utilizatorii finali care acceseaz baza de date prin intermediul unei aplicaii, i administratorul BD.

Ce este o baz de date?


Definiii: Baza de date este o colecie de date persistente, care sunt folosite de ctre sistemele de aplicaii ale unei ntreprinderi [Date2005] Prin persisten nelegem intuitiv c datele din baza de date difer, ca tip, de alte date efemere, cum ar fi datele de intrare, datele de ieire, rezultatele intermediare, i n general, orice date care sunt de natur trectoare. Se poate spune c datele din BD persist deoarece, odat ce au fost acceptate de SGBD pentru introducerea n BD ele nu pot fi terse din baza de date numai printr-o cerere explicit adresat sistemului SGBD. Termenul ntreprindere desemneaz orice organizaie independent de natur comercial, tiinific, tehnic sau de alt tip. ntreprinderea poate fi o singur persoan sau o ntreag corporaie. Exemple: un hotel, o fabric, o banc, o facultate, etc. Exemple de date persistente: date despre clieni, date despre conturi, date despre studeni, date despre rezervri, etc. Baza de date este un ansamblu structurat de date coerente, fr redundan inutil, astfel nct acestea pot fi prelucrate eficient de mai muli utilizatori ntr-un mod concurent. [Popescu 2001] O BD reprezint un ansamblu structurat de fiiere care grupeaz datele prelucrate n aplicaiile informatice ale unei persoane, grup de persoane, ntreprinderi, instituii etc. [Fotache 2007] Baza de date este un sistem integrat, coerent i partajat de fiiere [Nitchi&Racovitan1996]. Integrat: unificare a mai multor fiiere distincte Partajat: pari distincte din BD pot fi folosite de ctre mai muli utilizatori Coerent: se asigura caracterul neredundant i coerent al datelor Utilitatea i avantajele bazelor de date De ce trebuie sa utilizam baze de date? Sistemul de baze de date ofer ntreprinderii un control centralizat asupra datelor sale. Reducerea redundanei datelor memorate:n situaia n care fiecare aplicaie lucreaz cu fiierele sale proprii e posibil ca aceleai date s apar de mai multe ori n fiiere diferite aparinnd unor aplicaii diferite. Aceasta nseamn o mare risip a spaiului de memorare. n cazul centralizrii datelor ADB poate sesiza eventualele suprapuneri ntre diverse aplicaii i poate interveni n organizarea datelor a. . aplicaii diferite avnd aceleai date s utilizeze, n comun, un singur fiier pentru memorarea acestora. Redundana este proprietatea unor date de a se repeta fr s fie necesar. Evitare inconsistenei datelor: atunci cnd exist mai multe copii ale aceleai date este posibil, prin actualizarea doar a unora dintre ele, s avem valori diferite pentru una i aceeai dat, ceea ce atrage dup sine inconsistena bazei de date. 4

Posibilitatea partajrii datelor: se refer la posibilitatea utilizrii n comun a datelor de ctre mai multe aplicaii precum i la posibilitatea dezvoltrii unor aplicaii noi folosind datele deja existente n baza de date. ncurajarea introducerii standardelor: administratorul bazei de date poate impune alinierea la anumite standarde, ceea ce are un rol important la transferul datelor de la o baz de date la alta. Posibilitatea aplicrii constrngerilor de securitate: administratorul bazei de date poate introduce verificri de autorizare a accesului la date. Se pot impune restricii diferite pentru fiecare tip de acces la date, pentru fiecare dat, pentru fiecare utilizator Meninerea integritii datelor: integritatea datelor reflect cerina ca bd s conin date corecte. Aceasta presupune att consistena datelor ct i plauzibilitatea lor prin introducerea unor proceduri de validare corespunztoare. Poate fi suport pentru tranzacii: tranzacia este o unitate logic care presupune mai multe operaii n baza de date, in particular, o serie de operaii de actualizare. Ex: transferul unei sume de bani din contul A in B.

Arhitectura sistemelor de baze de date


Deoarece datele sunt reprezentate n calculator sub forma de bii iar utilizatorii bazelor de date lucreaz cu concepte mai mult sau mai puin abstracte se impune utilizarea unor nivele de abstractizare. Pentru asigurarea independenei fizice i logice a datelor se impune adoptarea unor arhitecturi de baze de date organizate pe trei nivele: Nivelul intern: este nivelul care se afl cel mai aproape de mediul de stocare fizic, se refer la modul n care sunt stocate datele n sistem; Nivelul extern: este nivelul aflat cel mai aproape de utilizatori, se refer la modul n care sunt vizualizate datele de ctre utilizatori; Nivelul conceptual: este un nivel intermediar dintre cele dou. Independenta fizic a datelor este o msura a imunitii aplicaiilor fa de modificrile n structura fizic de memorare a datelor. O modificare a structurii nu va afecta aplicaia iar modificrile efectuate asupra aplicaiei nu vor afecta structura fizica de date. Pentru ca o aplicaie s fie independenta fa de structura fizic de date aceasta nu trebuie s conin referiri la tipul fiierelor folosite pentru memorarea datelor, la dispozitivele de stocare a datelor sau la strategia de acces la date. Independena logic a datelor: se refer la imunitatea modelului propriu al fiecrui utilizator fa de modificri n structura logic global a bazei de date [Dollinger2004]. Dac se respect independena logic a datelor se poate modifica structura bazei de date prin adugarea unor noi uniti logice (cum ar fi cmpuri, nregistrri) i se pot modifica relaiile existente ntre ele fr a afecta utilizatorii care nu au nevoie de aceste date. Fiecare utilizator poate s foloseasc datele fr a influena ali utilizatori care folosesc aceleai date. 5

Nivelul extern

Nivelul conceptual

Nivelul intern Figure 2 Cele trei niveluri ale arhitecturii [C. J. Date] Nivelul intern: poart numele de baz de date fizic i este o colecie de fiiere care conin datele fizice, la care se adaug diverse structuri auxiliare menite s asigure accesul operativ la date (de ex. Indeci, pointeri, etc). Vederea intern este descris prin intermediul schemei interne. Nivelul conceptual: este o abstractizare a unei pri din lumea real i const din descrierea structurii logice a datelor dintr-o baz de date. [Dollinger]. Fiecare baz de date are un model conceptual propriu prin care sunt numite i descrise toate unitile logice din BD, mpreun cu legturile dintre acestea. Unitile logice sunt concepte asemntoare celor cu care opereaz utilizatorii bazei de date. Ex: n descrierea unei bd a unui hotel se lucreaz cu urmtoarele concepte: client, camera, rezervri, etc.; iar pentru o bd a unei faculti: studeni, profesori, discipline, plan de nvmnt, note, etc. Modelul conceptual integreaz viziunile tuturor utilizatorilor asupra bd i specific constrngerile asupra datelor (ce poate face parte din bd, ce nu poate face parte din bd). Tot n modelul conceptual sunt specificate masuri de securitate i integritate referitoare la anumite uniti logice. Vederea conceptual conine o reprezentare abstract a ntregii baze de date iar vederea intern reprezint baza de date aa cum este stocat intern. Vederea conceptual este definit prin intermediul schemei conceptuale. Nivelul extern se refer la percepiile utilizatorilor individuali asupra BD. Majoritatea utilizatorilor nu sunt interesai de ntreaga baz de date ci doar de o parte a acesteia. Termenul tehnic folosit pentru modelul extern este acela de vedere extern. Vor exista mai multe vederi externe diferite, fiecare vedere reprezentnd o anumit poriune a bazei de date. Fiecrui utilizator sau grup de utilizatori i corespunde un model extern propriu ceea ce vede utilizatorul din BD sau modul n care vede acesta baza de date. Prin utilizarea vederilor se asigur securitatea bazelor de date prin limitarea accesului la date a anumitor categorii de utilizatori. Utilizatorii au acces doar la pari bine definite din BD, existnd posibilitatea ascunderii anumitor pari din baza de date pe care utilizatorii nu au voie sa le vad. Un utilizator poate avea diferite drepturi de acces definite n cadrul a mai multe 6

vederi. Prin unele vederi poate avea doar drept de consultare, in timp ce prin altele ar putea avea i drepturi de modificare. Prin vederi se ofer utilizatorilor o viziune individualizat i simplificata asupra bazei de date. Fiecare vedere extern este definit prin intermediul unei scheme externe. Ex: baza de date cu clienii unui hotel. Vrsta clienilor este o informaie care poate fi folosita pentru realizarea unor statistici, etc. Daca se memoreaz in baza de date vrsta clienilor atunci acest cmp trebuie sa fie actualizat zilnic, de aceea se va crea o vedere in care apare definit conceptul de vrsta calculat ca diferen dintre data curent si data naterii. ntr-o baz de date cu studeni se va defini conceptul bursier. Sistemul de gestiune a bazelor de date Sistemul de gestiune a bazelor de date (SGBD) este software-ul care trateaz toate cererile de acces la baza de date. Funciile pe care le ndeplinete un SGBD sunt urmtoarele: Definiia datelor: Sistemul SGBD trebuie sa fie capabil sa accepte definiiile datelor (schemele externe, schema conceptuala, schema intern) n forma-surs i s le transforme n forma-obiect adecvata. Descrierea datelor se realizeaz prin intermediul limbajul de descriere a datelor LDD. Manipularea datelor: sistemul SGBD trebuie sa fie capabil sa manipuleze cererile de consultare, actualizare sau tergere a datelor existente n BD sau s adauge date noi in BD. Aceast funcie poate fi realizat prin intermediul Limbajelor de manipulare a datelor. Optimizarea cererilor de acces; Asigurarea securitii i integritii datelor; Refacerea datelor i asigurarea accesului concurent la date; Trebuie s pun la dispoziie o funcie pentru dicionarul de date. Dicionarul conine date despre datele din BD, (denumite si metadate) adic definiii ale unor obiecte din sistem. SGBD trebuie s ndeplineasc toate sarcinile ntr-un mod cat mai eficient posibil. Scopul general al unui SGBD este de a furniza interfaa cu utilizatorul pentru sistemul de baze de date. Interfaa cu utilizatorul poate fi definit ca o grani a sistemului, dincolo de care totul este invizibil pentru utilizator. Evoluia SGBD Istoria SGBD poate fi rezumat n trei generaii: Sisteme ierarhice i reea; Sisteme relaionale; Sisteme avansate (orientate obiect, relaionale OO, distribuite, multimedia, etc.)

n cazul modelelor ierarhice i reea datele sunt reprezentate la nivel de articol prin legturi ierarhice sau de tip graf. Administrarea i manipularea datelor este dificil datorit dependenei fizice a datelor. A doua generaie de SGBD-uri este legat de apariia modelelor relaionale care trateaz entitile ca nite relaii. S-a conturat in dou articole publicate de E. F. Codd n 1969, 1970. Se poate defini printr-o serie de structuri de date (relaii alctuite din tupluri), operaii aplicate asupra structurilor de date (selecie, proiecie, join), i reguli de integritate care s asigure consistena datelor (chei primare, restricii refereniale.). SGBDOO au aprut ca urmare a mbinrii tehnicii limbajelor orientate obiect cu a bazelor de date.

Microsoft Access 2000


Prezentare general
Microsoft Access 2000 face parte din pachetul de programe Microsoft Office Professional i este cea de-a cincea versiune a produsului de la lansarea sa iniiala n 1992. Microsoft a vndut peste 75 milioane de cpii ale produsului Microsoft Office din care 45 milioane sunt exemplare Office97. Principalele caracteristici ale sistemului de gestiune a bazelor de date Access sunt: sistemul de gestiune a bazelor de date este relaional i lucreaz sub sistemul de operare Windows; este deschis comunicrii cu alte sisteme de gestiune a bazelor de date cum ar fi Foxpro sau Paradox; este compatibil cu tehnologia ActiveX care permite realizarea aplicaiilor client/server; permite realizarea de aplicaii complexe prin utilizarea limbajului Visual Basic; permite comunicarea cu SQL Server, alt produs Microsoft care gestioneaz baze de date; permite accesul la baze de date din mediul Internet, fiind un instrument util pentru publicarea informaiilor n paginile Web; cerine hardware pentru instalare: computer Pentium cu 32 MB RAM, 200 MB spaiu pe HDD, CD-ROM, monitor SVGA. este prevzut cu ajutor (help), apelabil contextual sau la cerere; conine instrumente tip wizard care permit utilizatorului crearea facil a unor obiecte; accept nume lungi n definirea fiierelor; permite crearea de comenzi rapide (shortcuts) n vederea accesrii obiectelor Access; permite crearea de grupuri de obiecte definite de utilizator n cadrul bazei de date; permite setarea proprietilor iniiale ale bazei de date cum ar fi titlul aplicaiei, ataarea de pictograme (icons), precum i forma de afiare iniial; ofer posibilitatea crerii unei cpii a bazei de date i prin utilizarea aplicaiei Briefcase, realizarea sincronizrii ntre diferitele cpii ale bazei de date; permite utilizarea instrumentului asistent (wizard) n vederea crerii a mai mult de 20 de tipuri comune de aplicaii; permite utilizarea de adrese i legturi Internet; conine exemple de baze de date care contribuie la o mai bun nelegere a modului de construire a tabelelor, formularelor, rapoartelor, interogrilor, relaiilor dintre tabele. Baza de date Northwind are un numr mare de nregistrri i poate fi folosit pentru a crea propriile rapoarte, formulare, interogri. permite vizualizarea legturilor dintre tabelele bazei de date prin intermediul unei interfee grafice fereastra Relationships; are integrat facilitatea de Office Assistant (ajutor animat); permite comunicarea cu celelalte aplicaii incluse n pachetul Microsoft Office: Word, Excel, FrontPage, etc. prin operaii de import/export. suport dou limbaje standard de interogare: SQL (Structured Query Language) i QBE (Query By Example) 9

Mediul Microsoft Access 2000


Lansarea n execuie a programului Microsoft Access se poate face: 1. Prin succesiunea: clic pe butonul Start -> Programs-> Microsoft Access

2. Dublu clic pe pictograma de pe Desktop, asociat programului Ms. Access. 3. Start -> Run -> msaccess.exe, urmat de activarea butonului OK

4. My Computer-> C:-> Program Files-> Microsoft Office-> Office-> Msaccess.exe La rularea programului Microsoft Access, va aprea pe ecran fereastra din figura de mai jos care pune la dispoziie urmtoarele opiuni: 1. Crearea unei baze de date fr coninut; 2. Crearea unei baze de date cu ajutorul aplicaiei Database Wizard; 3. Deschiderea unei baze de date existente. Csua din partea de jos a ferestrei indic cele mai recent utilizate baze de date. Daca baza dorit nu se afla printre acestea, executnd clic pe More Files se poate naviga prin structura de directoare n cutarea fiierului dorit.

10

Fig. 1. Fereastra Microsoft Access.

Fereastra de baz a aplicaiei Access are acelai aspect general folosit n celelalte aplicaii Office i conine urmtoarele elemente:

Bara de titlu (Title bar): conine numele aplicaiei cu care se lucreaz (Microsoft Access) precum i cele trei butoane "soft" descrise mai jos: o Minimize (minimizare) transform fereastra ntr-un obiect pe bara de task-uri o Restore (revenire) permite revenirea ferestrei la dimensiunea iniial o Close (nchidere) nchide fereastra (nchide folderul, respectiv aplicaia)

Bara de meniuri (Menu bar): conine urmtoarele meniuri - File (fiier), Edit (editare), View (vizualizare), Insert (inserare), Tools (instrumente), Window (fereastr) i Help (ajutor); modul de lucru a opiunilor din meniuri se nva cu ajutorul exerciiilor aplicative!

Bara (trusa) cu instrumente Database (Database Tool bar): cuprinde butoane pentru execuia rapid a unor aciuni: crearea ( date, salvarea ( ) , tiprirea ( ) i deschiderea ( ) bazelor de

), previzualizarea (

) obiectelor din baza de ), Cut

date. De asemenea, aa cum eram obinuii din aplicaiile Microsoft, avem butoane pentru lucrul cu text: Spelling face verificarea gramatical ( (taie ), Copy (copiaz ), Paste (lipete ), Undo (anulare ). Tot pe bara

Database avem butoane specifice aplicaiei care realizeaz sarcini imediate pentru 11

utilizatorii care doresc s realizeze la repezeal componentele unei aplicaii: adugarea unui nou obiect( ), crearea rapid a unui formular .nvarea folosirii instrumentelor necesit exerciii aplicative!

Fereastra Database: conine, la rndui ei, urmtoarele elemente: Bara de titlu: conine numele bazei de date deschise precum i cele trei butoane "soft": Minimize, Restore i Close; Bara de obiecte: este situat n partea stng a ferestrei i are dou butoane: Objects i Groups. Pentru a actualiza coninutul ferestrei Database, putei executa clic pe orice obiect din bara. Pentru a vedea toate tabelele din baza de date, executai clic pe butonul Objects, situat n partea de sus a barei de obiecte, apoi executai clic pe Tables; pentru a vedea toate formularele trebuie s executai clic pe Forms, i aa mai departe. Dac executai clic pe butonul Groups, Access va afia o list cu grupurile definite de utilizator.
Bara de titlu Bara meniu Bara cu instrumente Database

Bara de titlu a ferestrei Database Bara de meniu a ferestrei Database Coninutul ferestrei Database

Bara cu obiecte

Bara de stare

Fig. 2. Fereastra de baz a aplicaiei Access

12

Bara de meniu a ferestrei Database are urmtoarele opiuni: Open ( Design ( New ( Delete ( ) deschide un obiect n mod de afiare curent; ) deschide un obiect n mod de afiare design; ) creeaz un nou obiect; ) terge un obiect; ) afieaz obiectele sub forma unor pictograme mari; ) afieaz obiectele sub forma unor pictograme mai mici;

Large Icons ( Small Icons ( List (

) reprezint modul de afiare prestabilit, afieaz o list cu obiectele; ) listeaz pentru fiecare obiect mai multe informaii: descriere,

Details (

data la care a fost creat, data ultimei modificri i tipul obiectului. Bara de stare (Status bar): aa cum spune i numele su, ea indic starea n care ne gsim la un moment dat. De exemplu, dac deschidem un tabel n mod proiectare ( F1=Help. Aplicaii 1. S se ruleze programul Microsoft Access. 2. S se identifice elementele ferestrei de baz a aplicaiei Microsoft Access. 3. Explicai efectul tuturor opiunilor din meniurile: File, Edit, View i Window. Pentru rezolvarea acestui exerciiu v putei folosi de Help. ) n partea stng apare textul Design View. F6=Switch panes.

Arhitectura Microsoft Access


O baza de date reprezint o modalitate de stocare a unor date pe un suport extern (mediu de stocare), cu posibilitatea regsirii rapide a acestora. Pentru a interaciona cu datele cuprinse n baza de date, Access se folosete de obiecte: interogri, rapoartele, formularele, controale. Toate elementele din Access, cu excepia datelor din nregistrri, sunt obiecte. Astfel, o baz de date Access poate fi definit ca o colecie de obiecte: tabele (tables), cereri de interogare (query), formulare (forms), rapoarte (reports), pagini Web (pages), comenzi macro (macros) i module (modules). Tabelul (TABLE) este un obiect definit de utilizator n care sunt stocate datele primare (expresia modelului relaional). Mai precis, un tabel este o colecie de date "legate" ntre ele, care sunt stocate pe linii i coloane. Coloanele reprezint cmpurile (fields) care se descriu 13

prin nume, tip i alte atribute ale acestora. Fiecare cmp trebuie s fie legat de destinaia tabelului din care face parte. Fiecare linie a tabelului conine o nregistrare (record) cu date corespunztoare coloanelor i reprezint o entitate complet de date. De exemplu, atunci cnd creai un tabel pentru stocarea datelor referitoare la clieni putei avea cmpuri pentru cod client, nume, prenume, adresa, cod potal, numr de telefon, data naterii etc. n acest caz, o nregistrare va consta din toate aceste informaii pentru o anumit persoan (client). O baz de date poate conine unul sau mai multe tabele independente sau legate ntre ele.
Cmpuri (fields)

Cod client 1 2 3 4 5

Nume Oltean Popescu Plesan Sitaru Patterson

Prenume Radu Adriana Sorin Adela John

Adresa

Cod postal

Telefon acasa 0264/552302 0264/440016 0269/667980 0264/418788

Data nasterii 4/2/1968 5/3/1974 9/8/1959 9/6/1962 2/4/1976

Str. Mehedinti Nr. 61 3400 Str. Aurel Vlaicu Nr. 4 3400 Str. Sibiului Nr 45 Str. Cernei Nr.3 27 Newpoint Street 3125 3400

nregistrri (records)

GM80AN 0275/938566

Interaciunea cu datele stocate n tabele nu se face n mod direct. De regul, fiecrui tabel i sunt asociate alte obiecte (formulare, rapoarte, interogri), iar atunci cnd utilizatorul are nevoie de anumite date va apela un formular sau un raport care va gsi datele i le va afia pe ecran n forma cerut. Interogarea (QUERY) este un obiect care permite vizualizarea informaiilor obinute prin prelucrarea datelor din una sau mai multe tabele i/sau alte cereri de interogare. Este un instrument foarte util pentru analiza datelor stocate n tabele. De exemplu, putei folosi o interogare pentru a genera o list cu telefoanele anumitor clieni sau pentru a determina suma ncasat de la clieni, de asemenea, putei obine date din mai multe tabele legate ntre ele. Practic, numrul ntrebuinrilor care se pot da acestor obiecte este nelimitat: putei vizualiza nregistrrile care ndeplinesc o anumit condiie prin intermediul interogrilor de selecie (Select Query); putei modifica, aduga i chiar terge date din tabele folosind tipurile de interogri specifice acestor operaii: Update, Append i Delete Query; putei sorta nregistrrile dup cmpuri sau grupuri; putei efectua calcule pe grupuri de nregistrri; putei combina mai multe tabele sau interogri. 14

Interogarea este, n esen, o ntrebare sau o cerere stocat. Aa cum datele sunt stocate n tabele (table) i cererile sunt stocate n obiecte de tip Query. Odat creat, o interogare poate fi apelat de ori cte orie este nevoie. Formularul (FORM) este un obiect care permite introducerea datelor, afiarea acestora sau controlul ntregii aplicaii. Formularul constituie interfaa dintre utilizator i datele stocate n baza de date, de aceea va fi folosit foarte frecvent. Formularele simplific vizualizarea, introducerea i modificarea datelor. n majoritatea cazurilor va putei gndi la ele ca fiind reprezentri pe ecran ale formularelor pe hrtie, cu care suntei deja obinuii s lucrai. Modul de completare al datelor n formularul Access este asemntor cu completarea unui formular pe hrtie, numai c datele introduse pe ecran vor fi stocate in unul sau mai multe tabele i pot fi folosite ulterior la ntocmirea diferitelor situaii. Prin intermediul formularelor se pot realiza diverse operaii cum ar fi: sortarea, cutarea, actualizarea unor date dar pot fi folosite i ca parte a interfeei aplicaiei dumneavoastr. Folosind butoanele de comand putei deschide alte formulare sau rapoarte atunci cnd este nevoie. Raportul (REPORT) este un obiect care permite formatarea i tiprirea, sub form de documente, a informaiilor obinute n urma consultrii bazei de date. Cu toate c formularele reprezint un instrument excelent pentru introducerea i afiarea datelor pe ecran, rapoartele sunt principalele dispozitive de ieire in Access. Rapoartele pot fi previzualizate pe ecran, tiprite la imprimanta, vizualizate ntr-un navigator Internet (browser), etc. Sunt foarte uor de creat i sunt instrumente puternice de prezentare a datelor. Putei crea cu ajutorul acestor obiecte diverse situaii de ieire pentru aplicaia dumneavoastr, de exemplu, lista clienilor firmei pe localiti sau judee. Pagina Web de accesare a datelor (PAGES) reprezint un obiect care include un fiier HTML i alte fiiere suport n vederea furnizrii accesului la date prin intermediul browser-elor Internet. Acest obiect permite vizualizarea datelor n mediul Internet. Comanda Macro (MACRO) reprezint un obiect care conine o definiie structurat a uneia sau mai multor aciuni pe care Access le realizeaz ca rspuns la un anumit eveniment. Aceste obiecte sunt foarte utile deoarece permit automatizarea diverselor evenimente fr ca realizatorul aplicaiei s trebuiasc s cunoasc limbajul VBA (Visual Basic for Applications). Modulul (MODULE) reprezint un obiect care conine proceduri definite de utilizator i scrise n Visual Basic. Astfel, introducei ntr-un modul codul procedurii, apoi folosii obiectele eveniment (sau alte proceduri) pentru a executa procedura. Toate obiectele descrise mai sus vor fi detaliate in capitolele urmtoare. 15

Proiectarea structurii bazei de date


Prima faz n proiectarea bazei de date trebuie s fie analiza obiectivului urmrit. Pentru a realiza acest lucru trebuie s rspundei la urmtoarele ntrebri: Ce informaii vei stoca? Cine le va folosi? De ce fel de ieiri avei nevoie? Atunci cnd proiectai o baz de date trebuie s urmai o serie de pai: 1. Determinai scopul bazei de date. Acest lucru v ajut s stabilii ce fel de date vrei s stocai n baza de date pe care o vei crea (ex. gestiunea personalului, evidena stocurilor). 2. Determinai tabelele de care avei nevoie. Odat ce avei un scop clar stabilit, putei mpri informaiile n subiecte separate, ca se exemplu Angajai, Clieni, sau Comenzi. Fiecare subiect va fi un tabel n baza de date. Numele tabelului trebuie s fie sugestiv pentru informaiile pe care le va conine. 3. Determinai cmpurile de care o s avei nevoie n tabele. Hotri ce fel de informaii vor fi stocate n cadrul tabelelor. Fiecare categorie de informaii dintrun tabel poart denumirea de cmp (field) i fiecare cmp va fi afiat pe o coloan n tabel. De exemplu, un tabel cu denumirea Angajai poate s aib urmtoarele cmpuri: Nume, Prenume, Data angajrii, Salar_brut, Impozit. 4. Determinai relaiile dintre tabele. Analizai cu atenie tabelele i stabilii legturile care exist ntre datele coninute n tabele diferite. n cazul n care nu putei stabili relaii ntre tabele, introducei tabele sau cmpuri de legtur. 5. mbuntirea proiectului. Analizai proiectul pentru a gsi eventuale erori. Creai tabelele i adugai cteva nregistrri de prob. Vedei dac putei obine din tabele rezultatele de care avei nevoie, facei modificri dac este nevoie. Pentru a parcurge etapele de mai sus putei folosi o tabl de scris sau hrtie i creion pentru c vei face multe modificri pn vei ajunge la o form de proiectare acceptabil. Experimentai modelul proiectat, introducei date de test, creai formulare i rapoarte de prob. Asigurai-v c datele sunt stocate n mod corespunztor n baza de date i c putei obine toate informaiile i situaiile finale dorite. Este mult mai dificil s modificai tabelele, formularele, rapoartele dup ce au fost introduse date reale. Mai multe informaii despre modul de proiectare al tabelelor putei afla n capitolul Proiectarea tabelelor.

16

Crearea unei baze de date


Exist dou posibiliti de creare a bazelor de date: a) crearea unei baze de date vide, n care construirea obiectelor se face de la zero; b) crearea unei baze de date folosind Database Wizard. Pentru a construi o baz de date nou se execut urmtoarele operaii: 1. n fereastra principal (vezi fig.1.) se selecteaz Blank Access database i se activeaz butonul OK. 2. n caseta de dialog cu titlul File New Database (fig.3) se execut urmtorii pai: se selecteaz lista Save in (prin clic pe butonul ). n urma acestei operaii apare lista unitilor de disc disponibile i a elementelor de pe Desktop. se selecteaz unitatea de disc unde va fi salvata noua baz de date. n interiorul ferestrei va aprea o list cu directoarele (folderele) disponibile. se selecteaz folderul unde va fi stocat baza de date; se introduce numele bazei de date n lista File Name; se activeaz butonul Create.

se selecteaz directorul unde va fi salvata baza de date

aici se introduce numele BD

Fig. 3. Fereastra File New Database

O baz de date nou se mai poate crea i folosind meniul sistem Access, alegnd opiunea New din meniul File, urmat de introducerea numelui corespunztor bazei de date ce urmeaz a fi creat. Crearea unei baze de date folosind asistenii Database Wizard este mult mai simpl i rapid dar prezint dezavantajul de a nu fi aa de flexibil. Un vrjitor este un instrument complex (program specializat) cu ajutorul cruia se realizeaz n mod automat o 17

baz de date sau anumite obiecte (tabele, formulare, rapoarte, interogri, pagini web pentru prezentarea datelor) lund n considerare preferinele utilizatorului. Vrjitorul prezint o serie de casete de dialog pentru fiecare etapa. La fiecare pas utilizatorul trebuie s aleag o serie de opiuni din grupul de opiuni posibile pentru a trece la urmtorul pas. Database Wizard creeaz o aplicaie la cheie, genernd toate tabelele, formularele i rapoartele necesare pentru realizarea unei anumite funcii. Vrjitorul ofer posibilitatea de a alege din mai multe baze de date predefinite, destinate fie utilizrii n scop personal, fie utilizrii n cadrul unei firme. Pentru a vedea lista acestor baze de date selectai opiunea New din meniul File i apoi executai clic pe categoria Databases din fereastra de dialog New. Utilizarea Database Wizard: 1. Lansarea n execuie a instrumentului Database Wizard:

Lansai n execuie programul Access. Din fereastra de dialog (fig.1) care apare pe
ecran selectai opiunea: Access database wizards, pages and projects i executai clic pe OK. Pe ecran va aprea urmtoarea caset de dialog:
Modaliti de vizualizare

Fereastra Preview

Baze de date disponibile


Fig. 5. Fereastra New

Se selecteaz o baz de date i se execut clic pe butonul OK. 2. Cea de-a doua fereastr a vrjitorului este o fereastr de dialog File (fig.3). Vrjitorul i acord noii baze de date un nume care poate fi schimbat.

18

3. Pentru a merge mai departe se alege butonul Create, iar pentru a anula operaia se execut clic pe butonul Cancel. 4. Vrjitorul afieaz o fereastr n care descrie tipul de informaii pe care baza de date le conine. De exemplu, BD Asset Tracking include date referitoare la active, amortizare, ntreinere, angajai, departamente i vnztori. BD Contact Management conine informaii de contact i date referitoare la convorbiri. Dac executai clic pe butonul Finish vrjitorul va nchide fereastra Database Wizard i va deschide noua aplicaie; dac executai clic pe Cancel, vrjitorul va terge tot ce ai realizat pn n acest moment i se va nchide. Dac dorii s mergei mai departe, executai clic pe butonul (soft) Next.

5. Fiecare tabel din noua aplicaie conine anumite cmpuri prestabilite. Se pot aduga sau terge cmpuri prin intermediul ferestre de dialog din imagine:

Tabelele aplicaiei

Cmpurile din tabelul selectat

6. Urmtoarea fereastr de dialog v permite s alegei stilul de afiare al ecranelor dintr-o list de valori predefinite. 19

7. n urmtoarea caset de dialog se selecteaz unul din stilurile predefinite de raport.

8. Prin intermediul ferestrei de mai jos se poate schimba titlul bazei de date si se poate adaug o imagine care s apar pe rapoartele construite.

20

9. n ultima caset de dialog a vrjitorului lsai selectat opiunea Yes, Start the Database, confirmnd astfel c dorii s vedei baza de date. Cea de-a doua opiune Display Help on using Database deschide o fereastr Help. Pentru a finaliza aplicaia executai clic pe butonul Finish. Access va genera i va deschide noua baz de date. Deschiderea unei baze de date existente n cazul n care se urmrete consultarea, modificarea sau actualizarea unei baze de date creat anterior, aceasta va trebui, mai nti, s fie deschis prin intermediul opiunii Open An Existing File (din fereastra de dialog care apare pe ecran la intrarea n aplicaia Ms. Access). O baz de date mai poate fi deschis i folosind meniul sistem Access, alegnd opiunea Open din meniul File. Salvarea modificrilor unei baze de date Prin modificarea unei baze de date Access se nelege modificarea obiectelor ce o compun. Modificarea unui obiect va atrage dup sine o ntrebare din partea SGBD-ului Access dac aceasta modificare va fi sau nu salvat. n concluzie orice modificare a obiectelor se salveaz local nefiind necesar salvarea ntregii baze de date. Proiectarea tabelelor Datele sunt stocate n nregistrrile tabelelor, iar pentru a putea fi regsite uor acestea trebuie s fie bine organizate n cadrul lor. De aceea, trebuie acordat o atenie deosebit fazei de proiectare a bazei de date. Aspectele care trebuie s le urmrii atunci cnd ncepei s lucrai cu tabele sunt: mprii informaiile lungi n uniti mai mici. De exemplu, n loc s stocai numele clienilor ntr-un singur cmp, folosii dou cmpuri, unul pentru nume i altul pentru prenume avnd astfel posibilitatea s sortai sau s selectai datele separat att dup nume ct i dup prenume. Datele stocate n fiecare cmp trebuie s constituie cea mai mic unitate de informaie, ceea ce nseamn ca ele s nu mai poat fi mprite n componente mai mici. Stocarea corect a adreselor clienilor se va face n cmpuri diferite: strada i numr, ora, jude i cod potal. Evitai redundana. Nu introducei aceeai informaie n mai mult de un cmp. De exemplu, dac avei n tabel un cmp data_naterii nu mai trebuie s stocai in tabel i vrsta persoanei pentru c aceasta se poate calcula din data naterii. De asemenea, nu repetai aceleai date n mai multe tabele. 21

Folosii cmpuri de tip text pentru a stoca numere de telefon, codul numeric personal sau codul potal. Aceste numere sunt secvene arbitrare de caractere folosite pentru identificare, nu sunt valori numerice. Un numr de telefon poate s nceap cu 0 i poate s conin caractere despritoare (0745-466789) de aceea, cea mai bun form de stocare o reprezint cmpul text. Fiecare tabel trebuie s aib o cheie primar care s identice n mod unic fiecare articol (nregistrare) din tabel. Folosirea cheilor ajut la prevenirea introducerii de date duplicate. O cheie a unui tabel se aseamn cu cota care se atribuie crilor ntr-o bibliotec: aceasta este un identificator unic ce controleaz ordonarea i nregistrarea crilor, identific duplicatele i evit confuziile care pot s apar atunci cnd dou volume au acelai autor sau au acelai titlu. Toate datele trebuie s fie mutual dependente. Cu alte cuvinte, nici un cmp nu trebuie s depind de informaiile aflate n alt cmp al aceluiai tabel. De exemplu, dac un tabel de eviden a vnzrilor conine preul unitar, cantitatea vndut i ncasri, avem de a face cu un cmp dependent. Astfel, dac schimbm valoarea preului unitar, sau valoarea cantitii vndute, trebuie s actualizm i valoarea din cmpul ncasri pentru ca datele s fie consistente. Pentru a nltura dependena, cmpul ncasri trebuie eliminat din structura tabelului i trebuie nlocuit cu un control calculat sau cu o expresie de interogare. Urmrii cu atenie cmpurile goale. Dac un cmp rmne necompletat nseamn c datele nu se aplic la acea nregistrare. Toate cmpurile trebuie s aib o legtur cu cmpul cheie primar.

22

Crearea tabelelor
Access organizeaz o baz de date n felul urmtor: Fiierul de baze de date (Access Database file) este fiierul principal care cuprinde pe lng datele cuprinse n tabele i obiecte: interogri pentru analiza datelor, formulare pentru interaciunea cu datele, rapoarte pentru tiprirea rezultatelor, macro i module pentru extinderea funcionalitii aplicaiilor i pagini web. Fiierul este salvat cu extensia .mbd (ex. Agentie.mbd). Tabelul (Table) este o colecie de date specifice unui anumit subiect, stocate pe linii i coloane. n baza de date pot exista mai multe tabele. (ex.: Clieni, Comenzi). Cmpul (Field) reprezint o coloan n cadrul tabelului, i este cea mai mic unitate de date din cadrul bazei de date. (ex.: numele i prenumele clientului) Tipul de date (Datatype) este o proprietate a fiecrui cmp. O coloan poate stoca doar date de un anumit tip, de ex. cmpul data_nasterii va conine doar date calendaristice iar cmpul nume va conine doar tipul text). Valoarea reprezint valoarea introdus ntr-un cmp. De exemplu, n cmpul Nume, de tip text, se poate stoca valoarea Ionescu.

Database file

Table

Field

Datatype

Value

Fig. 6.

Crearea structurii tabelelor se refer la definirea cmpurilor (coloanelor) tabelelor i, dup cum se observ n fereastra Database ( fig. 11), acest lucru se poate face n trei moduri: 1. Utiliznd fereastra de proiectare - CREATE TABLE IN DESIGN VIEW 2. Prin introducerea datelor - CREATE TABLE BY ENTERING DATA 3. Utiliznd instrumentul Wizard - CREATE TABLE BY USING WIZARD Modul cel mai eficient de creare a tabelelor l reprezint utilizarea ferestrei de proiectare, motiv pentru care se vor prezenta mai nti pe scurt celelalte dou moduri. Crearea unei tabele utiliznd instrumentul wizard permite adugarea unor cmpuri standard ce exist deja n cadrul bibliotecilor de tabele standard. De exemplu dac se dorete realizarea unei tabele cu clieni (CUSTOMERS) utilizndu-se instrumentul wizard, se pot selecta anumite cmpuri standard pentru aceast tabel precum i relaiile pe care acestea le au cu alte tabele. Nu se recomand aceasta modalitate deoarece cmpurile din cadrul tabelelor standard au fost create pentru sistemul de lucru anglo-saxon care n unele privine nu corespunde cu sistemul romnesc. Utilizarea celui de-al doilea mod de creare a tabelelor reprezint o form rapid de a introduce datele. Ea nu poate fi aplicat eficient n cadrul realizrii de aplicaii complexe.

23

Revenind la primul mod de creare al unei tabele prin realizarea unui dublu-clic pe Create Table In Design View pe ecranul monitorului va aprea fereastra Table. n aceast fereastr se definesc numele cmpurilor FIELD NAME, tipul de date DATA TYPE i opional o descriere a cmpului respectiv DESCRIPTION.

Fig. 7. Fereastra Database

Putei s creai un tabel i apelnd opiunea New din bara de meniu a ferestrei Database.

24

n Access exist dou modaliti de vizualizare a tabelelor:

Datasheet View ( Design View (

): permite introducerea de date (articole) n tabel. ): este modul de vizualizare n care se definete structura tabelului

bazei de date (modul care permite introducerea cmpurilor cu tipul de data asociat i descrierea corespunztoare). Pentru a comuta ntre modurile datasheet view i design view, se executa clic pe butonul din colul stnga-sus al ferestrei aplicaiei Microsoft Access. De exemplu dac avem un tabel Judee cu urmtoarele cmpuri: cod_jude text(2) i jude-text(30) acesta va putea fi afiat n dou moduri:

Fig. 8. Tabelul Judee deschis n mod Datasheet

Fig. 9. Tabelul Judee deschis n mod Design View

25

Caracteristicile cmpurilor Numele: Microsoft Access 2000 permite ca numele de cmp s fie format din mai multe cuvinte, de exemplu Nume client. n versiunile mai vechi de Access denumirea unui astfel de cmp ar fi putut fi scris cu simbolul underscore (_) adic Nume_client. Numele cmpului poate fi stabilit dup dorin ns se recomand alegerea unui nume scurt care s indice rolul cmpului respectiv. Tipul de date: este o caracteristic ce stabilete modul n care datele sunt nregistrate pe suportul de memorare i modul n care acestea sunt interpretate i prelucrate. De exemplu, dac avem un cmp de tip date/time vom putea introduce n acest cmp doar date calendaristice iar operaiile pe care Access le poate efectua asupra informaiilor stocate n acest cmp sunt specifice tipului de date date/time. n continuare prezentm tipurile de date disponibile pentru cmpurile Access: Tip de date Tip de date Access Descrierea tipului de date Cel mai des folosit tip de date. Un cmp de tip text poate conine pn la 255 caractere alfanumerice. Numerele care nu sunt folosite pentru calcule vor fi stocate n cmpuri de tip text (nr. telefon, cod potal, CNP, numerele de nregistrare, nr. matricol). Poate conine cantiti mari de text sau numere cel mult 64.000 caractere. Se folosesc pentru a oferi comentarii descriptive i notie. Conine mai multe subtipuri de date: Long Integer, Byte, Integer, Single Double, Replication ID. Se utilizeaz atunci cnd dorim s stocm date numerice care vor fi folosite pentru calcule matematice. Genereaz numere unice n mod automat de fiecare dat cnd se introduce un nou articol n tabel. Poate ndeplini rolul de cheie primar atunci cnd nu mai exist n tabel o alt cheie. Format special pentru uniti monetare, proiectat pentru a preveni erorile de rotunjire care ar afecta operaiile contabile. Cmpurile logice (booleene) folosesc valori logice numerice de tip ntreg 1 pentru cmpurile YES (TRUE) i 0 pentru NO (FALSE).

TEXT Alfanumerice

MEMO

NUMBER

Numerice

AUTONUMBER

CURRENCY

YES/NO

26

Tip de date Date calendaristice

Tip de date Access DATE/TIME

Descrierea tipului de date Stocheaz data calendaristic i ora ntr-un format special fix. Se folosete formatul englez de data lun/zi/an, spre deosebire de cel romnesc zi/lun/an. Include elemnte grafice realizate din puncte (bitmap), desene vectoriale, fiiere cu semnale audio i alte tipuri de date ce pot fi create de o aplicaie OLE SERVER. Este un text sau o combinaie de text cu numere stocat ca un text i folosit ca adres a unei pagini Web. Conine 3 parti: textul afiat, adresa i subadresa. Fiecare parte poate avea maxim 2048 caractere.

Obiecte mari

OBJECT OLE

Adrese Internet HYPERLINK

Proprietile cmpurilor 1. Field size (Dimensiunea cmpului): n aceast zon se introduce numrul maxim de caractere permis pentru cmpul respectiv, n funcie de tipul de date al acestuia. Putem crea un cmp de tip text cu dimensiune fix introducnd n celula Field Size valoarea corespunztoare lungimii fixe dorite (un numr de la 1 la 255). n mod prestabilit Access creeaz un cmp de tip text care poate cuprinde 50 de caractere. Dac importm cmpuri de date cu lungime mai mare Access le va trunchia astfel se vor pierde caracterele cele mai din dreapta care depesc limita indicat. 2. Format (Formatul n care sunt afiate datele): - n Access fiecare tip de date are mai multe opiuni predefinite de afiare. De exemplu, o dat de tip dat/or poate fi afiat n mai multe forme:

3. Decimal places (Numrul de zecimale): n cadrul acestei proprieti se stabilete numrul de zecimale ce pot fi atribuite unui cmp. 4. Input Mask (Formatul de introducere): se refer la impunerea unui anumit format pentru toate datele incluse n cadrul acestui cmp. O masc de intrare este folosit ntr-un cmp pentru a formata informaia i a controla ce valori pot fi introduse. De exemplu masca >LLLL este format din dou pri: simbolul > care transform toate caracterele introduse de utilizator n majuscule i irul de caractere LLLL ce reprezint nlocuitori pentru litere 27

(A-Z, fr spaii). Utilizatorul va putea introduce n cmp exact patru litere, n caz contrar Access va afia un mesaj de eroare. Pot fi folosite pentru tipurile de date: Text, Date/Time, Number, Currency. Iat cteva exemple: pentru formatul datei: 00-00-00 pentru numr matricol: 000 pentru numere de nmatriculare: LL00LLL 0 pentru numere (0-9); 9 pentru numere sau pauze; L pentru litere (A-Z).

nlocuitorii de caractere pot fi:

5. Caption (Eticheta): permite specificarea unui anumit nume atribuit cmpului, nume care va fi afiat n cadrul rapoartelor, formularelor, tabelelor. 6. Default value (Valoare automat): este valoarea atribuit automat atunci cnd utilizatorul nu introduce nici o valoare n acel cmp. 7. Validation rule (Regulile de validare): testeaz prin intermediul unui criteriu (expresie Access) valorile introduse n cmpurile bazei de date i nu las introducerea de date care nu respect acel criteriu. De exemplu, regula >0 permite doar introducerea numerelor pozitive, iar >= 10 AND <100 permite introducerea numerelor cuprinse ntre 10 i 99. 8. Validation TEXT (Text de validare): Conine textul care va aprea pe ecran n cazul n care valoarea introdus n cmp nu respect criteriul impus de regula de validare. 9. Required (Cerine): se stabilete dac prin introducerea unei nregistrri n cadrul tabelei este obligatorie i completarea respectivului cmp.
10. Indexed (Indexare): dintr-o list derulant se poate alege ntre un index care admite valori

duplicat sau unul care cere ca fiecare valoare a cmpului s fie unic.

Noiunea de cheie primara - PRIMARY KEY Cheile principale (primary keys) reprezint o component esenial a oricrei baze de date relaionale. Pentru a se ncadra n modelul relaional fiecare tabel al bazei de date trebuie s aib un identificator unic. Asigurarea unicitii se poate realiza prin desemnarea unei chei primare o coloan sau un set de coloane care identific n mod unic un rnd din tabel. O cheie primar poate fi format dintr-o singur coloan 28

cheie simpl, sau poate fi format din mai multe coloane cheie compus (multipl). ntr-un tabel pot exista mai multe coloane (sau set de coloane) ce pot conine valori unice. Aceste coloane sunt chei candidat. Din aceste chei candidat se alege o cheie primar, aceasta trebuie s conin un numr minimal de coloane i s fie stabil. De exemplu ntr-un tabel Angajati cu urmtoarele cmpuri: CNP (codul numeric personal), Nume, Prenume, Data_angajrii, Salar avem dou chei candidat - CNP i cheia compus din cmpurile Nume, Prenume. Codul numeric personal este unic pentru fiecare persoana deci el ar poate asigura unicitatea nregistrrilor. Singura problem este c angajaii strini nu au cod numeric personal. Cea de-a doua cheie ndeplinete condiia de cheie primar att timp ct nu exist n baza de date doi angajai cu acelai nume i prenume. Cnd apar dou persoane cu acelai nume i prenume, pentru a se asigura unicitatea, se poate aduga cmpul data_angajrii la cheia primar, dar atunci numrul cmpurilor din componena acesteia este prea mare. Cmpul numele nu este un cmp stabil pentru c n cazul angajatelor acesta poate fi schimbat prin cstorie de aceea nu e bine s intre n componena cheii primare. Deoarece nu am putut gsi o cheie primar natural trebuie s crem o cheie artificial, o cheie derivat. Putem aduga un cmp Cod Angajat de tip Number care s ndeplineasc rolul de cheie principal. Cheia primar are un rol deosebit de important n implementarea strategiilor de cutare i de regsire a datelor. Este folosit de SGBD pentru identificarea unic a nregistrrilor. Cmpul marcat cu PRIMARY KEY nu permite introducerea valorilor duplicat. Asupra cheii primare a SGBD -urile impun restricii :

nu sunt admise valorile nedefinite (NULL) pentru atributele unei chei primare, orice alt cheie a unei relaii poate avea valori nedefinite pentru unele din atributele sale; nici o valoare a unui atribut dintr-o cheie primar nu poate fi modificat n cadrul operaiilor de actualizare.

Stabilirea cheii primare se poate face prin dou modaliti, dup cum urmeaz: 1. se selecteaz cmpul cod_cl; 2. a) se selecteaz butonul din trusa de instrumente Database; b) se activeaz opiunea Primary Key din meniul Edit.

29

Sortarea nregistrrilor n modul de vizualizare Datasheet View putei vizualiza nregistrrile unui tabel ntr-o anumit ordine. Pentru a sorta nregistrrile se efectueaz urmtorii pai: 1. Se trece pe modul de vizualizare Datasheet View ( 2. Se selecteaz coloana dup care se face ordonarea 3. Se selecteaz opiunea Sort Ascending (sau Sort Descending) din meniul Records sau se alege butonul sau din bara de instrumente Database. )

Pentru a ilustra modul de creare a structurii unui tabel vom lua ca exemplu tabelul Infoclieni, din baza de date Clieni, care va conine informaii referitoare la clienii unei firme. Tabelul are urmtoarea structur: Cod_cl Nume Prenume Adresa Localitatea Cod_jude Cod_postal Telefon Data nasterii Numeric, ntreg Text (30) Text(30) Text (120) Text (30) Text(2) Text(10) Text(15) Dat calendaristic (Date/Time)

Se creaz baza de date Clieni astfel: 1. se pornete aplicaia Microsoft Access: Start->Programs->Microsoft Access; 2. se selecteaz opiunea Blank Access database din fereastra Microsoft Access; 3. din lista Save in se selecteaz directorul unde va fi salvat baza de date, iar n lista File Name se introduce numele Clienti dup care se activeaz butonul Create.

30

Pentru a crea un tabelul Infoclieni selectai opiunea Create table in Design view, sau selectai opiunea New ( ) din bara de meniu a aceleiai ferestre i apoi opiunea Design

view. Pe ecran va aprea o fereastr n care vei introduce numele cmpurilor, tipul acestora i o scurt descriere dup cum urmeaz: 1. Aici se introduce numele cmpului. 2. Se selecteaz tipul de date din list.

3. Se introduce o scurt descriere.

4. Se selecteaz mrimea cmpului

Fig. 10. Modul de introducere a structurii unui tabel

Se repet cei patru pai pentru fiecare cmp n parte. n seciunea Field Properties se pot introduce informaii legate de cmpuri, reguli de validare, valori implicite ale datelor ce vor fi introduse n tabel. Dup ce ai introdus toate categoriile trebuie s stabilii o cheie primar pentru tabelul creat. Cheia trebuie s identifice n mod unic fiecare nregistrare din tabel i s previn apariia duplicatelor, n cazul nostru cmpul care ndeplinete condiiile de cheie primar este cod_cl. Stabilirea cheii primare se poate face prin dou modaliti, dup cum urmeaz: 1. se selecteaz cmpul cod_cl; 2. se selecteaz butonul din trusa de instrumente Database sau (folosind meniul sistem Access) se activeaz opiunea Primary Key din meniul Edit.

31

1. Se selecteaz cmpul

2. Selectai fie simbolul iconic - cheie,


din trusa standard, fie opiunea Primary Key din meniul Edit

Se salveaz tabelul, selectnd opiunea Save din meniul File, iar n fereastra care apare se introduce denumirea tabelului InfoClienti.

Pentru a aduga articolele se selecteaz Datasheet View ( fereastra care apare pe ecran se completeaz urmtoarele date:
Cod client 1 2 3 4 5 Nume Oltean Plesan Sitaru Pascu Prenume Radu Sorin Adela John Adresa Str. Mehedinti Nr. 61 Str. Sibiului Nr 45 Str. Cernei Nr.3 Str. Alverna Nr 45 Localitate Jud

) din meniul View iar n

Cod postal

Telefon

Data nasterii

Cluj-Napoca CJ 23451 0264/552302 02/04/1968 Medias SB 34758 0269/667980 08/09/1959

Popescu Adriana

Str. Aurel Vlaicu Nr. 4 Cluj-Napoca CJ 23780 0264/440016 03/05/1974 Cluj-Napoca CJ 34214 0264/418788 06/09/1962 Cluj-Napoca CJ 34561 0275/938566 04/02/1976

32

APLICAII I. S se creeze o baza de date avnd numele STUDENT i s se salveze n directorul personal. Baza de date va conine un tabel InfoStudent n care se vor stoca informaiile referitoare la studeni. Structura tabelului este urmtoarea: NRMAT numrul matricol de tip text 3 caractere Nume numele studentului de tip text 20 caractere Prenume prenumele studentului tip text 20 caractere DN data naterii de tip dat calendaristic ADR adresa studentului de tip text 30 caractere SCT secia (se va introduce AM sau MH ) - text - 2 caractere BRS bursier - da sau nu (Yes/No) Media media studentului de tip numeric-zecimal 1. 2. 3. S se creeze tabela InfoStudent cu cmpurile aferente. S se stabileasc cheia primar pentru tabelul InfoStudent. Cmpul de date Media s permit introducerea unor valori mai mici sau egale cu 10.00. De asemenea, n cazul n care se introduc valori mai mari de 10.00 s se afieze urmtorul mesaj de eroare: Introducei valori mai mici dect 10!. 4. 5. 6. 7. 8. 9. Pentru cmpul de date SCT se va impune condiia ca secia sa fie numai AM sau MH. S se introduc cte 6 nregistrri, 3 studeni de la AM i 3 studeni de la MH. S se ordoneze baza de date cresctor dup cmpul Nume. S se ordoneze baza de date descresctor dup cmpul Media. S se introduc un nou student, Popescu Ion de la secia AM. S se tearg studentului de pe poziia a treia. localitatea de unde provine studentul, dup cmpul adresa ADR. 11. S se completeze cmpul introdus cu informaiile corespunztoare pentru fiecare student.

10. Modificai structura bazei de date prin adugarea unui nou cmp Loc. text (20),

33

II. S se creeze o baz de date avnd numele CADRE i s se salveze n directorul personal. Baza de date va conine un tabel InfoCadre n care se vor stoca informaiile referitoare la cadrele didactice. Structura tabelului este urmtoarea: COD - codul cadrului - de tip text - 3 caractere Nume - numele cadrului didactic - de tip text - 20 caractere Prenume - prenumele cadrului didactic - tip text - 20 caractere DN - data naterii - de tip dat calendaristic UNV - universitatea - text - 3 caractere FCT - facultatea la care pred - text - 15 caractere CTD - catedra - text - 15 caractere SPEC - specialitatea - text - 30 caractere CML - cumul de funcii de tip Yes/No NRO - numr de ore - numeric - intreg Se cere: 1. S se creeze tabelul InfoCadre cu cmpurile aferente. 2. S se stabileasc cheia primar a tabelului. 3. S nu se poat introduce n cmpul NRO valori mai mari de 50. 4. S se introduc 4 nregistrri (4 cadre didactice din catedre diferite). 5. S se sorteze tabela InfoCadre cresctor dup cmpul nume. 6. S se sorteze tabela InfoCadre descresctor dup cmpul NRO. 7. S se tearg cmpul DN i n locul lui s se introduc un nou cmp numit ADR (adresa) text (30). III. S se salveze cele dou tabele InfoCadre i InfoStudent cu alt nume. Noile nume vor fi Cadr respectiv Stud. IV. S se tearg tabele InfoCadre i InfoStudent.

34

Relaii ntre tabele


ntr-o baz de date relaional datele pot fi stocate n unul sau mai multe tabele. Se recomand folosirea mai multor tabele ntre care exist legturi dect proiectarea unui singur tabel cu multe cmpuri. Unul din scopurile principale ale proiectrii bazelor de date relaionale este de a grupa cmpurile n tabele astfel nct s se minimizeze redundana datelor, i prin aceasta s se reduc spaiul de stocare necesar bazei de date. Tabelele care conin date redundante pot crea probleme, denumite anomalii de reactualizare: anomali de inserare, anomalii de tergere i anomalii de modificare. Pentru a elimina aceste probleme tabelele trebuie s fie normalizate pan la cel puin a treia form normal. n cadrul unei baze de date nu este obligatoriu ca ntre toate tabelele s existe relaii. Este posibil ca n cadrul unei aplicaii s utilizm i tabele independente i/sau de lucru (tabele temporare). ntre dou tabele dintr-o baz de date exist o relaie atunci cnd unul sau mai multe cmpuri cheie dintr-un tabel se potrivesc cu unul sau mai multe cmpuri cheie din cellalt tabel. De obicei cmpurile corespondente din ambele tabele au acelai nume, tip de date i mrime. Din punct de vedere al momentului crerii acestora avem dou tipuri de relaii ntre tabelele unei baze de date Access : relaii permanente - se stabilesc dup definirea tabelelor i sunt cerute de modelul relaional fcnd parte din structura bazei de date. Acestea se realizeaz de obicei prin corespondenele cheie primar - cheie extern i sunt memorate n baza de date. relaii temporare - se stabilesc ntre tabele cu ocazia definirii unor cereri de interogare, nefiind nregistrate n structura bazei de date. Avantajele utilizrii relaiilor 1. Atunci cnd creai relaii ntre tabele, Access asociaz automat cmpurile respective din tabele. Putei crea astfel formulare, rapoarte, interogri care s conin date din mai multe tabele. 2. Se pot crea subformulare i subrapoarte. 3. Un alt avantaj este posibilitatea de forare a integritii refereniale.

35

Tipuri de relaii n Access 1. Relaia One to One (unu la unu) - ntre dou tabele A i B exist o relaie de tipul Oneto-One dac fiecrei nregistrri din tabelul A i corespunde o singur nregistrare n tabelul B i invers, fiecrei nregistrri din tabelul B i corespunde o singur nregistrare n tabelul A. Acest tip de relaie se folosete foarte rar. 2. Relaia One to Many (unu la mai muli) - ntr-o relaie de tipul One-to-Many, o nregistrare din tabelul A poate avea mai multe nregistrri asociate n tabelul B, iar o nregistrare din tabelul B poate avea o singur nregistrare asociat n tabelul A. Tabelul A este denumit tabel primar iar tabelul B este denumit tabel asociat. 1. Relaia Many to Many (mai muli la mai muli) ntr-o relaie de tipul Many-to-Many unei nregistrri din tabelul A i sunt asociate mai multe nregistrri n tabelul B, i unei nregistrri din tabelul B i sunt asociate mai multe nregistrri n tabelul A. Acest tip de relaie poate fi reprezentat numai cnd se definete i un al treilea tabel C, denumit tabel de jonciune. Rolul acestui tabel este spargerea relaiei Many-to-Many n dou relaii de tipul One-to-Many. Tabelul printe este tabelul care conine cheia principal iar tabelele copil sunt tabelele corelate. Pentru a implementa relaiile dintre tabele se folosesc cheile externe. Relaiile de tip one-to-one i one-to-many se implementeaz introducnd n una din tabele o cheie extern (strin), care va face legtura cu cheia primar din tabela corespunztoare. O legtur de tip many-to-many se implementeaz introducnd o tabel suplimentar care are in structura sa cheile celor doua tabele puse in legatur. Integritatea reverenial: se refer la un set de reguli care protejeaz datele prin stabilirea de restricii pentru adugarea i tergerea de nregistrri din tabelele relaionate: 1. fiecare valoare a cheii externe trebuie s se gseasc printre mulimea valorilor cheii candidat corespondente, cu alte cuvinte nu putem adaug nregistrri n tabelul copil fr ca acestea s aib corespondent n tabelul printe; 2. nu putem terge o nregistrare din tabelul printe dac exist nregistrri corespondente n tabelele copil. Alte reguli referitoare le cheia extern: 1. o cheie extern este simpl dac i numai dac cheia candidat corespondent este simpl, i este compus dac i numai dac cheia candidat corespondent este compus; 36

2. fiecare cmp component al unei chei externe trebuie s aib acelai tip de date i dimensiune cu al cmpului corespondent din cheia candidat; 3. o valoare a unei chei externe reprezint o referin ctre o nregistrare care conine aceeai valoare pentru cheia candidat corespondent. Crearea relaiilor ntre tabele (Relationships) Pentru a realiza relaii ntre tabelele Access se alege opiunea Relationships din meniul Tools.

Pe ecran va aprea urmtoarea fereastr:

Se selecteaz fiecare tabel pe care dorii s-l includei n relaie i se activeaz butonul Add i apoi se nchide fereastra Show Table.

Cheie primar

Cheie extern

37

O relaie ntre dou tabele se realizeaz prin operaia drag and drop de la cheia primar a tabelului principal la cheia extern a tabelului secundar. n fereastra Edit Relationships se selecteaz opiunea Enforce Referential Integrity pentru a se asigura integritatea referenial.

In Access opiunea Enforce Referential Integrity poate fi selectat numai daca se ndeplinesc condiiile: 1. Cmpul selectat din tabelul primar are atributul de cheie primar; 2. Cmpurile puse n coresponden au acelai tip de date; 3. Cele dou tabele sunt memorate n aceeai baz de date. Dac selectai opiunea Cascade Update Related Fields atunci cnd vei actualiza cheia primar din tabelul 1 (tabelul printe), Access va actualiza automat toate cheile externe corespondente din tabelul n (tabelul copil). Dac dezactivai aceast opiune, Access nu v permite s schimbai valoarea cmpului cheie principal din tabelul 1 atta timp ct exist nregistrri corespondente n tabelul n. Opiunea Cascade Delete Related Fields este similar opiunii Cascade Update Related Fields numai c afecteaz modul n care se face tergerea nregistrrilor. Cnd aceast opiune este selectat, Access va terge toate nregistrrile corelate din tabelul/tabelele copil atunci cnd tergei nregistrarea cu cheia primar corespunztoare din tabelul printe. Dac nu este selectat, Access nu va permite tergerea nregistrrii ce conine cheia primar din tabelul printe atta timp ct exist nregistrri corespondente n tabelul/tabelele copil. n cazul n care relaia a fost definit n mod corect n fereastra Relationships va aprea o linie care leag cele dou tabele dup cum se poate vedea n figura de mai jos.

38

Relaia poate fi modificat ulterior prin dublu-click asupra legturii dintre cele dou tabele. De asemenea se poate terge o relaie ntre tabele: se selecteaz linia de asociere i se apas tasta DEL. Pentru tergere se poate folosi i opiunea Delete din meniul contextual (clic dreapta pe linia de asociere). Editarea ulterioar mai poate fi fcut i alegnd opiunea Edit Relationship din meniul contextual. Dac executai clic pe butonul Join Type pe ecran va aprea urmtoarea caset de dialog:
Creeaz o asociere intern Creeaz o asociere extern la stnga Creeaz o asociere extern la dreapta

Fig. 11. Fereastra de dialog Join Properties

Aceast caset de dialog v permite s definii tipul de asociere produs de relaie. Asocierea (Join) determin modul n care corelaia dintre dou tabele afecteaz rezultatul unei interogri legate. Exist dou tipuri de asocieri: - Asociere intern (INNER JOIN): este tipul prestabilit de asociere n care nregistrrile provenite din dou tabele sunt combinate i adugate la rezultatele unei interogri numai cnd valorile din cmpurile asociate sunt egale. - Asociere extern (OUTER JOIN) care poate fi de dou tipuri: asociere extern la stnga (LEFT OUTER JOIN) i asociere extern la dreapta (RIGHT OUTER JOIN). - LEFT OUTER JOIN: O asociere n care toate nregistrrile provenite din membrul stng al relaiei sunt adugate la rezultatele unei interogri indiferent daca ele au sau nu nregistrri asociate.

39

RIGHT OUTER JOIN: O asociere n care toate nregistrrile provenite din membrul drept al relaiei sunt adugate la rezultatele unei interogri,chiar dac exist nregistrri care nu corespund nici unei nregistrri din tabelul primar.

Relaiile dintre tabele pot fi tiprite selectnd opiunea Print Relationships din meniul File. APLICAII 1. S se creeze un nou tabel cu numele Pli n baza de date CLIENTI. Tabelul va avea urmtoarea structur: Cod_cl Data_platii Suma_platit Data_scadenta a) S se stabileasc cheia primar. b) S se creeze o relaie de tip 1:n ntre tabelul Infoclieni i tabelul Pli. S se foreze integritatea referenial. c) S se introduc 8 articole n tabelul Pli Numeric, ntreg Data calendaristic Currency Data calendaristic

INTEROGRI (Queries)
Esena oricrui SGBD const n selecia datelor din tabele i prezentarea acestora n diferite forme prin intermediul interogrilor sau al rapoartelor. Orice firm i construiete o baz de date pe care lucreaz i elaboreaz diferite rapoarte sub diverse forme de prezentare. O baz de date este creat pentru a fi interogat. Tipuri de interogri 1. Interogri de selecie (SELECT QUERY): se folosesc pentru regsirea datelor care ndeplinesc anumite condiii, pentru gruparea nregistrrilor i pentru efectuarea unor calcule pe baza datelor selectate. 2. Interogri de tip totaluri: permit crearea grupurilor de articole precum i efectuarea de calcule cu valorile unor cmpuri din interiorul grupurilor. 3. Interogri cu parametri (PARAMETER QUERY): n acest tip de interogare valorile necesare la stabilirea criteriilor utilizate de interogare vor fi introduse de ctre utilizator. 4. Interogri de sintez (interogri de analiza ncruciata CROSSTAB QUERY): totalizeaz datele i grupeaz aceste totaluri dup dou categorii. Sunt folosite pentru analiza multidimensionala a datelor si permit obinerea unor situaii sintetice

40

asemntoare tabelelor Pivot din Excel. Gruparea si sortarea datelor se face pe rnduri si coloane iar la intersecia rndului cu coloana se pot efectua calcula diverse. 5. Interogri de aciune: au ca efect localizarea i modificarea datelor. Exist patru interogri de tip aciune: a. Interogarea MAKE TABLE: Folosind opiunea Make Table Query din meniul Query putem crea uor un tabel nou pe care sa-l populam cu date din unul sau mai multe tabele existente. Acest tabel poate fi stocat in baza de date curenta sau intr-o alta baza de date. b. Interogarea APPEND: este folosit pentru adugarea unor nregistrri ntr-un tabel existent n baza de date. c. Interogarea DELETE: terge nregistrri din una sau mai multe tabele. Prin utilizarea unei interogri delete nu putei terge doar coninutul unui cmp ci se terg nregistrri ntregi. d. Interogarea UPDATE: modific coninutul cmpurilor dintr-un tabel specificat. In general opiunea Update Query din meniul Query este folosit pentru actualizarea unui numr mare de nregistrri care se afl n unul sau mai multe tabele. Dac avei de actualizat un numr mic de nregistrri dintr-un singur tabel atunci aceste modificri se pot face direct n foaia de date. 6. Interogri SQL (SQL QUERY): necesit pentru interogarea datelor comenzi SQL. Interogrile specifice SQL sunt: UNION, PASS-THROUGH, DATA-DEFINITION, SUBQUERY. Interogrile din aceast categorie nu pot fi create folosind grila de proiectare a interogrii, fiind necesara tastarea directa, intr-o fereastra de proiectare a diferitelor instruciuni SQL. a. Union: Combin doua sau mai multe interogri clasice de tip select ntr-o singura interogare, articolele livrate de aceste interogri vor fi amestecate. Deoarece articolele unei interogri Union sunt returnate sub forma unui set de articole fiecare instruciune select din combinaie trebuie s genereze acelai numr de cmpuri. Cmpurile puse in coresponden trebuie sa aib acelai tip cu o singur excepie: pot fi puse in coresponden cmpuri de tip numeric si cmpuri de tip text. b. PassThrough: permite transmiterea instruciunilor SQL direct spre un calculator server de tip ODBC de exemplu SQL Server; cu ajutorul interogrilor de acest tip se lucreaz direct cu tabele memorate pe calculatorul server. c. Interogrile de definire a datelor (Data Definition): permit crearea tabelelor i a indecilor, modificarea structurii tabelelor, tergerea 41

tabelelor sau a indecilor prin intermediul instruciunilor SQL Create table, Create Index, Alter table, Drop Table i Drop index. 7. Cereri de interogare imbricate: Scrierea unei interogri in cadrul alteia duce la apariia unei subinterogri - setul de rezultate obinut de la o interogare va constitui argument pentru o alta. Limbajul SQL Scurt istoric Limbajul SQL (ntlnit i sub numele de SEQUEL) este limbajul de interogare al SGBD Sysem R dezvoltat n cadrul laboratorului de cercetare din San Jose al firmei IBM. In paralel firma IBM a scos pe pia produse cu baze de date relaionale, bazate pe System R dar cu un limbaj puin diferit de SEQUEL. Astfel c l-a botezat SQL, eliminnd vocalele din SEQUEL i trecnd la pronunia "es-qu-el". Expresiile din SEQUEL seamn cu propoziiile din limba englez, fiind desigur mai structurate. SEQUEL a evoluat din predecesorul su SQUARE care a constituit prima etap n dezvoltarea unui limbaj de interogare pentru System R. Conceptele de baz ale celor dou limbaje sunt n esen aceleai, deosebirea principal dintre ele fiind aceea c limbajul SQUARE are o sintax bazat n mare msur pe notaii matematice, n timp ce SQL are o sintax mai apropiat de limba englez aa cum arat i denumirea limbajului (SQL sau SEQUEL Structured English Query Language). Aceast sintax este mai adecvat programrii pe computer i totodat mai uor de asimilat de ctre utilizatori. La ora actual SQL este una din cele mai rspndite interfee pentru SGBD-urile relaionale. n afar de System R limbajul SQL este disponibil i sub alte SGBD-uri relaionale cum ar fi SQBD ORACLE (pentru sisteme mari, dar i computere personale profesionale) sau chiar dBASE (ntr-o variant simplificat ncepnd cu versiunea IV). In 1979, Corporaia Oracle introduce prima implementare a SQL n variant comercial. Din anul 1986, SQL a devenit standard ANSI (Institutul National American de Standarde) pentru limbajele de interogare ale bazelor de date relaionale. Organizaia Internaional de Standarde (ISO) a adoptat deasemenea SQL ca limbaj standard pentru RDBMS. Toate RDBMS-urile suport unele forme de SQL i toi vnztorii de astfel de sisteme s-au aliniat sau intenioneaz s se alinieze la standardele ANSI. Asta nu nseamn c nu mai apar diferene. Chiar i la produsele aceleai firme, Microsoft Access i SQL Server, pot fi semnalate diferene n implementarea limbajului. SQL este limbajul de interogare al unui sistem de gestiune al bazelor de date (SGBD. Operaia fundamental n SQL este maparea reprezentata

42

din punct de vedere sintactic printr-o construcie SELECT FROM WHERE (pe scurt construcie SELECT). Caracteristici SQL, ca i majoritatea limbajelor de programare, folosete cuvinte din limba englez. In mod special cuvintele select, insert, delete ca elemente ale setului de comenzi. SQL este un limbaj neprocedural: specific care sunt informaiile dorite, nu cum se obin acestea. Cu alte cuvinte, SQL nu cere s fie specificat metoda de acces la date. Execuia comenzilor SQL asupra nregistrrilor nu se poate face dect secvenial, asupra cte unei singure nregistrri. Setul de nregistrri fiind vzut ca set de linii ale unui tabel. SQL poate fi folosit de un ir de utilizatori, incluznd administratorul bazei de date, programatorii de aplicaii, personalul de management i multe alte tipuri de utilizatori. SQL include comenzi pentru o varietate de sarcini, incluznd: - selecia unor date; - inserarea, extragerea i tergerea rndurilor dintr-un tabel; - crearea, modificarea i tergerea obiectelor de tip baz de date; - controlul accesului la baza de date i la obiectele de tip baz de date; - verificarea - garantarea consistenei bazei de date; Instruciuni SQL Instruciuni DDL (Data Definition Language) Instruciunea CREATE CREATE DATABASE CREATE DATABASE nume_baza_de_date; Ex: CREATE DATABASE vanzari; CREATE TABLE CREATE TABLE nume_tabel (cmp1 tip_data [constrangere] , cmp2 tip_data [constrangere] , cmp3 tip_data [constrangere],.); Ex: CREATE TABLE facturi(nrfact number, dataf date, codcl number); CREATE TABLE vanzari(nr number primary key , cod_m number, data_v date not null, Loc char);

Instruciunea ALTER TABLE ALTER TABLE nume_tabel ADD nume_cmp tip_data [constrangere]; Ex: ALTER TABLE vanzari ADD jud char; 43

Instruciunea DROP DROP TABLE nume_tabel; DROP DATABASE nume_baza_de_date;

INSTRUCIUNILE DML (Data Manipulation Language) Instruciunea INSERT INSERT INTO NUME_TABEL (prima_coloana, ...ultima_coloan) VALUES (prima_valoare, ...ultima_valoare); Ex: INSERT INTO facturi (nrfact, codcl, dataf) VALUES (1, 12, #12/10/2005#); Instruciunea UPDATE UPDETE nume_tabel SET nume_coloana 1 = valoare_noua1 [nume_coloana 2 = valoare_noua2 ] WHERE nume_coloana OPERATOR valoare [and/or nume_coloana OPERATOR valoare]; Instruciunea DELETE DELETE FROM nume_tabel WHERE nume_coloana1 OPERATOR nume_coloana2 OPERATOR valoare2]; Instruciunea SELECT Cereri de introgare simple: SELECT [ALL | DISTINCT | DISTINCTROW] coloana1 [, coloana 2] FROM tabel1 [, tabel2 ] [WHERE conditii] [ORDER BY lista_coloane [ASC|DESC]]; Cereri de introgare complexe: SELECT [ALL | DISTINCT | DISTINCTROW] [functie agregata (nume_camp) AS alias] [coloana1] [, coloana 2] FROM tabel1 [, tabel2 ] [WHERE conditii] [GROUP BY lista_coloane] [HAVING conditii] [ORDER BY lista_coloane [ASC|DESC]]; valoare1 [and/or

44

Asocierile SELECT [DOMENIU] coloana1 [, coloana 2] FROM tabel1 [, tabel2 ] [WHERE criteriu de asociere] [ORDER BY lista_coloane [ASC|DESC]];

REGUL: O fraz SQL se termin cu punct i virgul! Crearea interogrilor Se realizeaz folosind o gril de proiectare n cadrul creia sunt adugate tabele i cmpuri. Acest procedeu este cunoscut sub numele de Query By Example (QBE). Pe baza informaiilor depuse n gril programul ACCESS genereaz o instruciune n limbajul de interogare al datelor SQL (Structured Query Language). Pentru lucrul cu interogri avem urmtoarele dou posibiliti : 1) Prin intermediul modului de lucru Design View. n seciunea Objects se va alege opiunea Queries i apoi Create query in Design view. Pe ecran va apare fereastra Show Table n care utilizatorul va alege tabelele cu care va lucra. Pentru a aduga un tabel se selecteaz tabelul dorit din list dup care se execut clic pe butonul Add. Fereastra Show Table se nchide prin activarea butonului Close.

Se execut apoi urmtorii pai: - se aleg cmpurile necesare interogrii; - se specific condiiile de selecie; - se precizeaz criteriile de filtrare impuse de cerina interogrii; - se stabilete modul de grupare; - se stabilete modul de ordonare.

45

2) Cu ajutorul wizard-ului de interogri. Access genereaz codul SQL pentru fiecare interogare, fie c este realizat cu Design View sau cu wizard-ul. Codul SQL poate fi vzut prin selectarea opiunii SQL View din meniul View. Se poate vizualiza astfel clauza select from where corespunztoare interogrii. De asemenea este posibil scrierea unei interogri ntr-o astfel de fereastr acest lucru presupunnd cunoaterea temeinic a sintaxei SQL.

Criteriile de selecie Se introduc n celula aflat la intersecia coloanei cmpului cu linia Criteria din grila de interogare. Acestea pot fi simple sau compuse (cu ajutorul operatorilor AND/OR) i pot utiliza o serie de cuvinte rezervate i expresii definite de utilizatori. 46

Principalele criterii simple sunt : - apartenena la un interval de valori : BETWEEN valoare_inferioar AND valoare_superioar; - apartenena la o list de valori : IN (valoare 1, valoare2, ., valoare_n); - utilizarea operatorilor de comparaii : <, >, <=, >=, <>, = ; - utilizarea operatorilor de negaie : NOT valoare; - selecia nregistrrilor care conin sau nu valori : NOT NULL, IS NOT NULL sau NULL, IS NULL. Se pot specifica criterii de selecie dup un anumit text care, dac va conine spaii, trebuie pus n ghilimele. n interiorul textului se pot folosi caractere generice "?" (orice n poziia n care apare) ,"*" (orice n poziia n care apare i n urmtoarele) i "#" (pentru caractere numerice). Operatori a) Matematici: ^,-, *,/, \, Mod, + Operator ^ * / \ Mod + Operaia realizat Ridicare la putere nmulire mprire mprire fr rest (doar ctul) Restul mpririi unui numr la altul Adunare Scdere

b) Operatori relationali (de comparare): =, <>, <, >, <=, >= Operator = <> < > <= >= Operaia realizat Egalitate Diferit Mai mic Mai mare Mai mic sau egal Mai mare sau egal

c) Operatori pentru siruri de caractere: & (concatenare), LIKE, NOT LIKE Operator Operaia realizat & Concateneaz (lipete) dou expresii cu transformarea rezultatului ntr-un ir de caractere. Like Compararea a dou iruri 47

d) Operatori logici: AND, OR, EQV, IMP, XOR, NOT. Operator Not And Or Xor Eqv Imp Operaia realizat Nu logic (negaia) i logic (conjuncia) Sau logic (disjuncia) Excluziunea logic Echivalen logic Implicaia logic Evaluarea expresiilor - operatorul AND Expresie1 True True True False False False Null Null Null Expresie2 True False Null True False Null True False Null Expresie1ANDExpresie2 True False Null False False False Null False Null

Evaluarea expresiilor - operatorul OR Expresie1 True True True False False False Null Null Null Expresie2 True False Null True False Null True False Null 48 Expresie1ORExpresie2 True True True True False Null True Null Null

Operaii de calcul predefinite n ACCESS Operaia SUM AVG MIN MAX COUNT STDEV FIRST LAST Funcia Suma valorilor unui cmp. Media aritmetic Valoarea minim Valoarea maxim Numrul de valori dintr-un cmp Varianta valorilor unui cmp Prima valoare din cmp Ultima valoare din cmp Tipul de cmpuri Numeric, Autonumber, Data i Logic Numeric, Autonumber, Data i Logic Numeric, Autonumber, Data, Logic i Texte Numeric, Autonumber, Data Logic i Texte Toate tipurile Numeric, Autonumber, Data i Logic Toate tipurile Toate tipurile

Exemple de interogri S se creeze o baz de date pentru o agenie imobiliar. Baza de date va stoca informaii despre agenii imobiliari, despre imobile i proprietarii acestora i despre terenuri. Structura tabelelor este urmtoarea: AGENTI Cod_a numerotare automat Nume text(30) Prenume text(30) Adresa text(50) Telefon text(15) PROPRIETARI Cod_p numerotare automat Nume text(30) Prenume text(30) Adresa text(50) Telefon text(15) TEREN Teren_ID numerotare automat Cod_p numeric Cod_a numeric Lungime numeric Latime numeric Cartier text(30)

IMOBILE Cod_imobil numerotare automat Cod_p numeric Cod_a numeric Localitate text(30) Cartier text(30) Tip_imobil text(2) se vor introduce numai valorile AP, G, C Nr_camere - numeric, intreg Suprafaa numeric, zecimal Confort text(4) se vor introduce numai valorile I, II, III, CS Adresa text(60) 49

Pret_solicitat unitati monetare, EUR Pret_vanzare unitati monetare, EUR Data_vanzarii data calendaristica 1. 2. 3. 4. S se stabileasc cheile primare pentru fiecare tabel. S se salveze baza de date pe dischet cu denumirea AGENTIE IMOBILIARA. Stabilii relaiile dintre tabelele bazei de date. Introducei nregistrri n tabele.

Cereri de interogare utiliznd mai multe tabele: 1. Ofert de imobile, ordonat dup tip apartament si numr de camere. Interogarea va conine urmtoarele cmpuri: Numele si prenumele proprietarului, Tip imobil, Localitate, Cartier, Numr de camere, Pre solicitat. 2. Lista agenilor si a imobilelor.

Interogri cu cmpuri calculate: 1. Sa se calculeze aria si perimetrul terenurilor. 2. S se calculeze preul apartamentelor exprimat in lei (1 EUR=3.7 RON). 3. S se calculeze preul/m2.

Interogri cu parametri (PARAMETER QUERY): 50

1. Lista apartamentelor dintr-un anumit cartier. 2. Lista imobilelor cu preurile cuprinse intre 50000 si 80000 EUR.

Interogri de tip totaluri: 1. Sa se calculeze preul mediu solicitat - pentru fiecare tip de imobil. 2. S se calculeze preul minim i preul maxim solicitat pentru apartamentele cu trei camere confort I.

Interogri de aciune: 1. Make table query: In baza de date agenie imobiliara s se creeze un nou tabel vnzri care s conin toate imobilele vndute.

51

2. Update query : S se modifice cu 7% preul solicitat pentru apartamentele din cartierele Gheorgheni si Mrti.

3. Delete query : s se elimine din tabelul imobile toate imobilele vndute.

4. Append query : s se adauge apartamentele vndute n tabelul imobile.

52

Exemple de subinterogari: 1. Numele proprietarului cu preul maxim solicitat pentru un apartament cu 3 camere.

2. Lista imobilelor care au preturile de vnzare mai mici dect media. Find duplicates query wizard: 1. Numele proprietarilor care au mai multe imobile; 2. Numele agenilor care au mai muli clieni.

Find unmatched query wizard: 1. Numele proprietarilor care nu au terenuri de vnzare.

53

Cmpurile calculate pot fi definite in interogri, rapoarte, formulare; se definesc astfel: Nume_camp: expresie putei introduce in expresiile calculate doar cmpuri numerice, currency, data calendaristica, text; pot avea asociate nume si proprieti; expresiile calculate se introduc in grila QBE in rndul field si se respecta urmtoarele cerine: pot conine valori numerice si text, operatori matematici, denumirile cmpurilor, funcii (IIF, ABS, DATE(), DatePart, DLOOKUP, TRIM, LEFT, RIGHT, MID, NOW() ) OBS: numele cmpurilor care conin spatii (ex: data naterii) se vor introduce intre paranteze drepte ([data nasterii]). Expresiile - sunt construite cu ajutorul operanzilor si operatorilor, respectnd o anumita sintaxa. Funcii Tipuri de funcii: de conversie, pentru date calendaristice, funcii financiare, matematice, pentru iruri de caractere. Funcii pentru conversia datelor: Str(numar) transforma un numr n ir de caractere; Str(921.23) returneaz 921.23. LCase(sir_de_caractere) transform literele mari dintr-un ir de caractere n litere mici; LCase(Cluj Napoca) returneaz cluj napoca. UCase(sir_de_caractere) - transform literele mici dintr-un ir de caractere n litere mari; UCase(Cluj Napoca) returneaz CLUJ NAPOCA. Val(sir_de_caractere) convertete un ir de caractere n valoare numeric; Val(123.56) returneaz 123.56. CDate(sir_de_caractere) transform un ir de caractere n data calendaristic; CDate(04 Feb 08) returneaz 02/04/2008. CSTR(data_calendaristica) convertete o data calendaristic n text; CSTR(#Feb 04, 08#) returneaz 02/04/2008. Format(expresie, format), - afieaz datele ntr-un format specificat; Format(Cluj,>) returneaz CLUJ. Format(40264123456, @-@@@@-@@@@@@) returneaz 40264-123456. Format(#4/25/08#,d-mmmm-yyyy) returneaz 25-April-2008. Funcii pentru date calendaristice: 54

Now(): returneaz data si ora curenta; Time(): returneaz ora curenta; Date(): returneaz data curenta; Month(data_calendaristica): extrage luna din data specificata. Month(Now()) are ca rezultat 03 daca luna curenta e Martie; Day(data_calendaristica): extrage ziua din data specificat; Day(Date()) are ca rezultat 25 daca data curenta e 25. Weekday(data_calendaristica): numrul zilei din sptmna; Weekday(Date()) Year(data_calendaristica): returneaz anul dintr-o data calendaristica; Year(Date()) returneaz 2008 DateDiff(interval, data_calendaristica1, data_calendaristica2): calculeaz diferena dintre doua date calendaristice. Diferena poate fi exprimata in zile d, sptmni ww, luni m, ani yyyy, trimestre q; DateDiff(d, Date(), #02/04/92#) DateDiff(yyyy, Date(), #02/04/92#) DateDiff(q, Date(), #02/04/92#) DateAdd(interval, numar, data_calendaristica1): returneaz o nou data calendaristic n funcie de un anumit interval; DateAdd(d,22, Date()) DateAdd(ww, 10, #01/01/2007#)

Functii financiare: DDB() - Depreciation double-declining balance: calculeaz amortizarea unui mijloc fix prin metoda balantei dublu-regresiv. DDB(Cost_Initial, Valoare_reziduala, durata_de_viata, perioada) NPV() - Net Present Value: returneaz valoarea prezent actualizat pentru o investitie (flux de venituri/cheltuieli). NPV(dobnd, valoare1, valoare2, ) Valorile trebuie s fie echidistante n timp si s fie valori pltite/ ncasate la sfritul fiecrei perioade. Dobnda - reprezint dobnda anual. Al doilea argument este negativ pentru c reprezint o cheltuial. FV(): Future Value calculeaz valoarea viitoare pentru o serie de ncasri/ plti egale, fcute ntr-un numr de perioade, cu o anumit dobnd fix. FV(dobnd, perioada, plat, valoarea_prezenta, tip) Dobnda trebuie sa aib aceeai unitate de msura ca si perioada. Daca se cunoate dobnda anuala si incasabile/plile sunt fcute lunar atunci dobnda trebuie sa se mpart la 12. Valoarea prezent este un argument opional, este suma care se investete/ mprumut in momentul iniial. Val implicita e 0. Tip - 0 daca plile se fac la sfritul perioadei sau 1 daca plile se fac la nceputul perioadei. Valoare implicita este 0. Banii pltii sunt reprezentai prin numere negative, iar cei ncasai sunt reprezentai prin numere pozitive. 55

PV Present Value: calculeaz valoarea prezent a unui flux de ncasri/ plti viitoare. PV (dobnd, perioada, plat, valoare_viitoare, tip) Valoarea viitoare reprezint valoarea obinut dup efectuarea ultimei plti/ncasri. SYD - Sum-of-Years' Digits - calculeaz suma valorilor anuale amortizate pentru un mijloc fix, pe o perioad specificat SYD(cost_initial, val_reziduala, durata_utilizarii, per_amortizarii) PMT- Periodic Payment for an annuity calculeaz suma care trebuie achitat periodic pentru un mprumut sau pentru o economie, pentru o anumita dobnda fixa cunoscnd numrul perioadelor de plat. PMT (dobnd, Perioada, valoare_prezenta, valoare_viitoare, tip) SLN (Straightline depreciation) - calculeaz amortizarea liniara a unui mijloc fix pe o perioada data. SLN(cost_initial,val_reziduala,dur_amortizarii) Funcii matematice: Abs(numar): returneaz valoarea absoluta a unui numar Ex. Abs(-10) returneaz 10, Abs(10) = 10. INT(numar): returneaz valoarea ntreaga Int(134.55) returneaz 134. Int(-55.1) returneaz -56. Round(numar): returneaz un numr rotunjit la un anumit numr de zecimale Round(14.245, 2) returneaz 14.24. Round(17.1351, 2) returneaz 17.14 Rnd(numar): genereaz un numr aleator Sgn(numar): determina semnul unui numr Sgn(-14) returneaz -1 Sgn(12) returneaz 1 Sgn(0) returneaz 0. Sqr(numar): determina radicalul unui numr Funcii pentru iruri de caractere InStr(pozitie_start, sir_caractere1, sir_caractere2, comparaie): are ca rezultat un numr care reprezint prima poziie a unui sir intr-un alt sir. Instr(abcd123efg234, 23) returneaz valoarea 6 Instr(7, abcd123efg234, 23) returneaz valoarea 11, cutarea se face dup poziia 7. Left(sir_caractere, numar): returneaz caracterele din partea stnga a unui ir de caractere : Left(abcdefg,4) are ca rezultat abcd. Len(sir_caractere): determin lungimea unui ir de caractere Len(Cluj Napoca) returneaz 11. 56

LTrim(sir_caractere): nltur spaiile goale din faa unui ir de caractere. LTrim( Cluj) returns Cluj. Mid(sir_caractere, pozitie_start, numar_caractere): extrage caracterele din mijlocul unui ir de caractere; Mid(abcdefgh,3,4) returneaz cdef Right(sir_caractere, numar): returneaz caracterele din partea dreapta a unui ir de caractere; Right(abcdefg,4) are ca rezultat defg. RTrim(sir_caractere): nltur spaiile de la sfritul unui text RTrim(abcd ) are ca rezultat abcd. Space(): Insereaz un anumit numr de spaii Space(3) are ca rezultat 3 spaii Trim(sir_caractere): nltura spaiile de la nceputul i sfritul unui ir de caractere: Trim( abcd ) returneaz abcd. ASC (ir_de_caractere): returneaz codul primului caracter din irul de caractere specificat.

APLICAII I. Se consider baza de date STUD. S se creeze tabela DATE cu structura urmtoare: NRMAT - text(3) (numr matricol ex. 100, 101,102.) NP text(30) (nume i prenume ex. Pop Liviu) DN - dat calendaristic (data naterii ex. 03/04/81) SCT - text(2) - (sectia ex. AM si MH) AN numeric, ntreg (anul de studiu ex. 1, 2 ,3 sau 4) BRS da/nu (bursier ex. DA, NU) SEX text(1) (sexul f, m) TEL text(15) (telefon ex. 094123456) ADR text(25) (adresa ex. str. Gorunului nr. 5) OR text(15) (oraul ex. Turda, Gherla, .) JUD - text(2) (judeul ex. Cluj-CJ, Satu-Mare - SM) Media numeric, zecimal, media generala a studentului S se introduc 10 nregistrri n tabela DATE astfel nct s se respecte urmtoarele cerine: a) S existe studeni al cror domiciliu s nu fie Cluj-Napoca. b) S existe studeni de la ambele secii AM i MH. c) S existe studeni cu vrste mai mici de 20. d) S existe studeni n diferii ani de studiu. 57

e) S se defineasc regulile de validare pentru cmpul AN astfel nct s se poat introduce n tabel doar valorile 1, 2, 3 sau 4. f) S se defineasc regulile de validare pentru cmpul SCT astfel nct s fie permise doar valorile AM sau MH. Pentru cmpul SEX valorile permise vor fi F sau M. g) S se defineasc urmtoarele 30 de interogri pentru tabela DATE. Interogrile se vor salva cu numele: inter1, inter2,, inter n. OBSERVAIE ! Se va utiliza n exclusivitate modul de lucru Design View. II. S se afieze folosind interogrile urmtoarele informaii din baza de date STUD: 1. o list cu numele studenilor care au domiciliul n Cluj-Napoca, ordonai descresctor dup numrul matricol. 2. o list cu numele studenilor care au domiciliul n Cluj-Napoca, ordonai cresctor dup numrul matricol. 3. o list cu numele studenilor din Cluj-Napoca, ordonai cresctor dup vrst. 4. o list cu numele studenilor bursieri din Cluj-Napoca. 5. o list cu numele studenilor a cror vrst este mai mare de 20 de ani i nu sunt bursieri. 6. o list cu numele studentelor bursiere care au domiciliul n Cluj-Napoca. 7. o list cu numele studenilor de sex masculin care au vrsta de 21 de ani i nu sunt bursieri. 8. o list cu numele studenilor nscui dup data de 03/06/80. 9. o list cu numele studenilor nebursieri. 10. o list cu numele studenilor bursieri. 11. o list cu numele i localitatea studenilor care nu domiciliaz n Cluj-Napoca, ordonai dup cmpul secie. 12. lista studentelor de la secia MH. 13. lista studenilor de la MH i AM. 14. o list cu numele studenilor de la MH care nu sunt bursieri. 15. o list cu numele studenilor de la ambele secii care sunt bursieri i nu domiciliaz n Cluj-Napoca. 16. o list cu numele studentelor de la MH ordonate descresctor dup vrst. 17. o list cu numele studenilor de la MH ordonai cresctor dup vrst. 18. lista studenilor care nu au domiciliul n judeul Cluj i nu sunt bursieri, ordonai alfabetic dup nume. 58

19. o interogare care s afieze numele studentului care are numrul de telefon 0722123456. 20. o list cu numele studenilor care au domiciliul n Cluj-Napoca i sunt bursieri. 21. lista studentelor fr burs din anul 2 de la secia MH. 22. lista studenilor bursieri, de sex masculin, din anul 2, de la sectia MH, care domiciliaz n Cluj-Napoca. 23. lista studenilor de la ambele secii care nu sunt n anul 2. 24. lista cu numele studenilor bursieri de la secia MH din anul 2 care au numrul matricol mai mare dect 102. 25. lista studenilor ordonat alfabetic dup nume i prenume. 26. lista tuturor studenilor seciei AM, ordonai alfabetic dup nume i prenume. 27. lista studentelor seciei MH care nu sunt bursiere i nu sunt din Cluj-Napoca. 28. Media minim; 29. Numele i prenumele studenilor cu media cea mai mic; 30. Media maxim; 31. Numele i prenumele studenilor cu media cea mai mare; 32. Media aritmetic a mediilor; 33. Numrul total de studeni; 34. Vrsta medie, minim i maxim a studenilor; 35. Numrul studenilor bursieri i numrul studenilor nebursieri; 36. Numrul studenilor bursieri; 37. Numrul studenilor nebursieri; 38. Numrul studenilor bursieri/nebursieri pe secii; 39. Numrul studenilor din fiecare jude; 40. Lista localitilor; 41. Numrul studenilor din fiecare jude- repartiia pe orae; 42. Numrul de fete i numrul de biei; 43. Repartiia studenilor pe secii/an de studiu; 44. Media mediilor pe secii/an de studiu; 45. Repartiia studenilor n funcie de vrsta; 46. Numele, prenumele studenilor cu vrsta cuprins ntre 20 i 25 de ani; 47. Studenii care au domiciliul n oraele a cror denumire ncepe cu litere C. 48. Studenii a cror nume ncepe cu litera D; 49. Studenii din judeele a cror indicativ ncepe cu litera B; 59

50. Toate nregistrrile din baza de date; 51. Studenii grupai dup cmpul media; 52. Studenii din judeele SB, CJ, MM. 53. Lista studenilor dint-un anumit jude. Indicativul judeului se va introduce ca i parametru. 54. Lista studenilor dintr-un anumit an de studiu. Anul de studiu se va introduce ca si parametru. 55. Lista studenilor dintr-o secie i dintr-un anumit an de studiu. Secia si anul se vor introduce ca i parametrii. 56. Lista studenilor cu vrsta cuprins ntre 18-20 ani. Se va folosi parametrii. 57. Repartiia studenilor pe secii/an folosind Crosstab Query. 58. Repartiia studenilor pe judete/localitti folosind Crosstab Query. 59. Repartiia studenilor n funcie de medie/secie. III. S se creeze un tabel cu numele Studeni_AM, pe baza tabelului Date, folosind interogrile. Tabelul va conine urmtoarele date referitoare la studenii din secia Am: nrmatr (numr matricol), np (nume, prenume), dn (data naterii) i media. IV. S se creeze un tabel cu numele Copie care s conin toate nregistrrile din tabelul Date. V. S se tearg din tabelul Date studenii care sunt n anul 4 i au media mai mare ca 5. VI. S se tearg din tabelul Copie studenii din secia AM, an 3. VII. S se modifice valorile din cmpul AN cu o unitate pentru studenii care au media mai mare ca 5. VIII. S se mreasc media cu un 10% pentru acei studeni din secia MH, an 2 care au media <=8.50.

60

FORMULARE (Forms)
Formularele reprezint interfaa principal ntre utilizator i o aplicaie Microsoft Access, fiind obiecte ale bazei de date ce permit introducerea i afiarea datelor ntr-o manier atractiv i prietenoas. n cadrul unei aplicaii, formularele pot ndeplini mai multe funcii: 1. Afiarea i editarea (corectarea) datelor este cea mai des ntlnit form de utilizare a formularului. De fapt, formularul permite afiarea datelor n forma dorit de proiectantul aplicaiei. De asemenea, datele afiate n cadrul formularelor pot fi modificate sau chiar terse. 2. Controlul operaiilor realizate de aplicaie se pot proiecta formulare care, mpreun cu comenzi macro sau cu proceduri Visual Basic, s realizeze afiarea automat a anumitor date sau executarea automat a unui ir de operaii cum ar fi deschiderea unui subformular dintr-un formular. 3. Introducerea de date. aplicaia poate fi utilizat sau despre operaiile ce urmeaz a fi executate. 5. Tiprirea informaiilor formularele pot fi folosite si pentru tiprirea de informaii la imprimant. Un formular este compus din trei pri: - antetul (Form Header) - zona de detaliu (Detail) - subsolul (Form Footer) 4. Afiarea de mesaje formularele pot furniza informaii privind modul n care

61

Crearea formularelor Avem dou moduri de creare a formularelor i anume: 1. Prin utilizarea instrumentului wizard creare automat 2. Crearea n fereastra de lucru creare manual Crearea automat a unui formular n fereastra Database se activeaz butonul New, pe ecran aparnd fereastra New Form.

Dintre opiunile disponibile se va alege Form Wizard ceea ce nseamn c vom crea un formular prin intermediul instrumentului wizard. n partea de jos a ferestrei New Form prin utilizarea listei derulante se va alege tabela pentru care se va crea noul formular. Apoi dac se activeaz OK va aprea pe ecran o alta fereastra Form Wizard din care se vor alege cmpurile tabelei asupra crora va opera noul formular care dorim s l construim.

Prin intermediul butonului Next putem trece de la o fereastr la alta. n urmtoarea fereastr se va selecta modul de prezentare a datelor n cadrul formularului. Printre cele mai utilizate 62

moduri este modul columnar pe care l vom utiliza i noi, mod n care datele sunt afiate pe coloane. Se poate alege stilul formularului, adic un anumit tip de fundal, anumite tipuri de caractere i diverse culori ale acestora. n ultima fereastr se va introduce numele formularului i se alege i modul de afiare. Prin alegerea butonului Finish se va ncheia crearea formularului.

Subformulare Un subformular este un formular inclus ntr-un alt formular, pentru a permite afiarea datelor din mai multe tabele sau cereri de interogare, aflate n general n relaii de tipul unu la unu sau unu la mai muli. Astfel n formularul principal vor fi afiate datele din partea unu a relaiei, iar n subformular cele din partea mai muli. Legtura dintre un formular i un subformular reflect legtura dintre tabelele pe care se bazeaz. Posibilitile de creare ale unui ansamblu de tip formular-subformular sunt : - crearea formularului si subformularului concomitent; - crearea subformularului i adugarea lui la un formular existent; - crearea separat a celor dou i apoi combinarea lor. Cea mai simpl variant este ultima. - se creaz formularul principal i se salveaz; - se creeaz subformularul ca i formularul principal; - se face legtura ntre formularul principal i subformular; - se verific legtura i apoi rezultatul.

63

Metoda drag & drop n cazul formularelor Pentru aducerea unui subformular ntr-un formular principal se parcurg urmtorii pai: se deschide formularul principal n modul Design View; se trece n fereastra Database, prin activarea tastei F11, se activeaz butonul Forms, care va afia lista tuturor formularelor din baza de date; se deplaseaz pictograma corespunztoare subformularului din fereastra Database n spaiul formularului principal, ceea ce va avea ca efect adugarea unui control de tip subformular; dac este cazul se deplaseaz controlul n locul dorit i se redimensioneaz n funcie de necesiti; se execut dublu-click pe bordura controlului ce reprezint subformularul, pentru a afia lista de proprieti a acestuia; se verific legtura dintre formularul principal i subformular prin intermediul proprietilor Link Child Fields i Link Master Fields care sunt automat definite de Access pe baza legturilor dintre tabele; n caz contrar se stabilesc cele dou cmpuri de legtur se trece n modul Form View pentru verificarea rezultatului; pentru a aduce modificri n formularul principal se comut napoi n modul Design View.

APLICAII I. Se consider baza de date FACTF . Cmpurile care intra n definiia tabelei FIRMA sunt : CODF - codul firmei text(4) DENF - denumirea firmei text(20) ADR - adresa fimei text(30) CODFS - codul fiscal al firmei - text(15) BK - banca cu care lucreaz firma text(20) CT - contul firmei text(15) Se consider apoi tabela FACTURA compus din urmtoarele cmpuri : NRF - numr factur numeric - ntreg DF - data factur data calendaristic CODF - codul firmei text(4) Se cere: 1. Crearea tabelelor FIRMA i FACTURA. 2. S se defineasc cheile primare pentru cele dou tabele (CODF, respectiv, NRF). 3. S se creeze relaia de tipul One-to-Many ntre cele dou tabele.

64

4. S se creeze prin intermediul wizard-ului un formular cu numele WFIRMA corespunztor tabelei FIRMA, de tip columnar i folosind stilul International. S se adauge formularului eticheta - FEREASTRA INTRODUCERE DATE FIRMA. 5. S se construiasc prin intermediul wizard-ului formularul corespunztor tabelei FACTURA, de tip tabular i folosind stilul standard. S se adauge formularului eticheta FEREASTRA INTRODUCERE DATE FACTUR. 6. S se creeze un nou formular numit WWFIRMA care s conin un formular principal ecranul WFIRMA i un subformular WFACTURA. 7. S se verifice legtura dintre tabele, proprietile Link Child Fields i Link Master Fields 8. S se adauge in formularul WWFIRMA trei butoane de comanda pentru salvarea datelor, pentru cutarea nregistrrilor i pentru ieirea din formular.

65

RAPOARTE (Reports)
Vizualizarea datelor dintr-o baz de date se poate face pe ecran sau hrtie (la imprimant) prin intermediul foilor de date, formularelor i situaiilor finale. Ultima reprezint cea mai potrivit posibilitate de prezentare a datelor pe hrtie. O situaie final (REPORT) este o grupare de date prezentate ntr-un anumit format i o structur de pagin n funcie de necesitile utilizatorilor i care servesc diverselor scopuri de subtotaluri (dup anumite criterii), subformulare grafice i obiecte de tip OLE. Sursa datelor unei situaii finale o constituie n principal cererile de interogare sau tabelele, restul fcnd parte din structura acestora. n general dac datele ce trebuie introduse n situaia final au ca surs mai mult de un tabel, se creeaz mai nti o cerere de interogare (care reunete datele din tabele) i apoi situaia final bazat pe aceasta. Elementele de legtur ntre sursa de date i situaiile finale sunt controalele, zonele de text (pentru datele numerice i alfanumerice), cadrele (pentru imagini i grafice) i etichetele (pentru titluri, linii separatoare i ptrate decorative. Din punct de vedere al formei de prezentare, situaiile finale sunt de trei feluri: 1) Pe o singur coloan simpl; 2) Gen tabel cu posibiliti de a genera mai multe grade de totaluri; 3) Etichet potal. Crearea unei situaii finale (REPORT) se poate face n dou moduri: 1) Far instrumentul wizard, utiliznd modul de lucru Design View. 2) Cu ajutorul instrumentului wizard. Pentru a crea un raport se va alege seciunea Reports, butonul New i apoi modul de lucru n care se va crea raportul. Se va specifica apoi tabela pentru care se dorete afiarea unor situaii finale.

66

Structura unui raport este ierarhizat pe mai multe seciuni: antetul raportului antetul de pagin antetul de grup corpul propriu-zis subsol de grup subsol de pagin subsolul raportului

Controalele care apar n corpul acesteia sunt 3 feluri : independente, dependente i calculate. Dup crearea unui raport, pentru verificarea rezultatului nainte de imprimare, se poate vizualiza parial sau total. Vizualizarea parial (un eantion) permite verificarea dispunerii n pagin, tipul de caractere i dimensiunea acestora, gradele de totaluri (dac au fost definite). Vizualizarea total permite verificarea datelor i constituie imaginea pe ecran a paginilor de imprimant. nregistrarea i nchiderea unui raport se face ca la oricare alt fiier. Rezultatul unui raport poate fi tiprit sau salvat ntr-un fiier, n vederea conservrii. nainte de tiprire este necesar definirea parametrului de orientare a paginii. Utilizarea instrumentului wizard permite crearea unor situaii finale cu o structur standard care nu ine seama n totalitate de cerinele utilizatorului. Aceast structur poate fi ulterior modificat cu ajutorul instrumentelor disponibile (trusa cu instrumente). Trusa cu instrumente (Toolbox) i tipurile de controale au acelai coninut i funcionalitate ca i cele de la formulare. Prin urmare, toate operaiile de aducere a cmpurilor din lista de cmpuri a tabelului, redimensionarea, deplasarea i modificarea acestora se fac ntr-o manier asemntoare ca i la formulare.

67

Sortarea i regruparea datelor Operaiile de sortare i regrupare a datelor apar foarte des n cadrul aplicaiilor economice care utilizeaz un volum mare de date. Pentru sortarea datelor se trece pe modul de lucru Design View - se alege <View, Sorting and Grouping> care va afia pe ecran o fereastr dialog:

n prima linie din coloana Field/Expression se selecteaz un nume de cmp sau se introduce o expresie; se continu cu linia a doua, etc. n coloana Sort order se stabilete ordinea de sortare cresctoare Ascending sau descresctoare Descending; valoarea presupus fiind cresctoare. se nchide fereastra de dialog.

Prima linie din fereastra de dialog corespunde primului nivel de sortare, a doua celui de-al doilea etc.

68

Combinarea rapoartelor (RAPOARTE/SUBRAPOARTE) Pentru a combina dou sau mai multe situaii finale, una dintre acestea trebuie s fie definit ca i situaie principal iar celelalte subsituaii (ca i ansamblul formular principal subformular). Modul de lucru este asemntor cu cel de la formulare/subformulare. APLICAII I. Considerm baza de date ANGAJAT.MDB avnd n componen cmpurile: NrOrd - numeric - ntreg Nume - text - 10 Prenume - text - 10 Oras text - 10 Varsta numeric - ntreg Salariu numeric - ntreg Se cere: 1. S se introduc 7 nregistrri cu diferite persoane din orae distincte. 2. S se realizeze rapoarte prin intermediul crora s se afieze: a) Raport_1 - numele i prenumele angajailor b) Raport_2 - numele, prenumele i salariul angajailor c) Raport_3 - numrul de ordine, numele, prenumele i oraul de provenien al persoanelor respective. d) Raport_4 - numele, prenumele angajailor i totalul lor e) Raport_5 - media de vrsta a angajailor f) Raport_6 - totalul salariilor acordate g) Raport_7 - cel mai mare salariu acordat h) Raport_8 - cel mai mic salariu acordat i) Raport_9 - media salariilor 3. S se utilizeze ambele moduri de lucru, Design View i Instrumentul wizard. 4. S se realizeze un raport cu numele Raport_10 care s aib in componen un subraport. 5. S se observe asemnrile dintre subraport i subformular. 6. S se creeze un raport Raport_11 care s conin toate informaiile prezentate de Raport_1,, Raport_9.

69

MACROURI (Macros)
Pn n prezent s-a ilustrat modul de construcie a principalelor obiecte care compun o aplicaie Access. Se poate observa cu uurin c o aplicaie complex presupune un numr mare de obiecte (formulare, interogri, rapoarte, etc.). Toate aceste obiecte trebuiesc legate ntr-un flux continuu de operaii, trecerea de la un obiect la altul realizndu-se automat. Cu alte cuvinte, n cadrul unei aplicaii Access o importan deosebit o prezint automatizarea acesteia. Prin automatizare nelegem c pe baza unei aciuni a utilizatorului (o apsare pe buton de pe ecran sau de la tastatur, un dublu click) determin realizarea uneia sau a mai multor operaii (deschiderea unuia sau mai multor obiecte, rularea unor interogri, etc). Aceast automatizare a aplicaiilor realizate n Access se poate face n dou moduri: prin utilizarea limbajului Visual Basic for Applications VBA prin utilizarea comenzilor MACRO, care reprezint o form simplificat a limbajului de programare VBA. Comenzile MACRO sunt deosebite prin caracteristica lor unic i anume c permit automatizarea diverselor evenimente fr ca realizatorul aplicaiei s fie nevoit s cunoasc un anumit limbaj de programare. Prin evenimente nelegem: modificri ale datelor deschiderea sau nchiderea unui formular sau raport sau chiar diferite selecii asupra obiectelor de control n cadrul unor formulare

n cadrul comenzilor MACRO pot fi incluse un numr mare de aciuni a cror derulare poate fi condiionat de anumite valori afiate n formulare sau rapoarte. Microsoft Access ofer un numr mare de aciuni ce pot fi executate n cadrul unor comenzi macro: deschiderea sau nchiderea de tabele, interogri, formulare sau rapoarte vizualizarea i tiprirea rapoartelor rularea interogrilor apelarea altor comenzi macro efectuarea condiionat a anumitor aciuni cutarea anumitor date n tabele deschiderea sau includerea diferitelor meniuri din Access afiarea de mesaje de atenionare sau chiar sunete de atenionare tergerea, redenumirea, copierea sau salvarea diferitelor obiecte ale aplicaiei comunicarea cu alte produse software (WORD, EXCEL,)

70

Crearea unei comenzi MACRO Comenzile macro se creeaz n cadrul ferestrei de proiectare :

Fereastra de proiectare are dou pri: - Lista de aciuni cu comentarii - Descrierea fiecrei aciuni din cadrul listei APLICAII 1.S se creeze macro-uri pentru: a) deschiderea unei tabele - MACRO-1 b) deschiderea unui raport - MACRO-2 c) ieirea dintr-o aplicaie Access- MACRO-3 d) rularea unei interogri- MACRO-4 e) redenumirea unei tabele - MACRO-5 f) tergerea unui obiect- MACRO-6 g) deschiderea unui formular - MACRO-7 OBS: Ca i structur de lucru se va utiliza tabelul STUDENT creat n laboratoarele precedente.

71

Comunicarea ntre aplicaiile Office 2000


Pachetul Office 2000 produs de Microsoft s-a dorit a fi un instrument util i foarte performant cu ajutorul cruia s se poat realiza un numr mare de sarcini n cadrul biroului unei firme sau chiar acas. Creterea popularitii produsului Office se datoreaz, pe lng gradul sporit de complexitate, facilitii sale deosebite de a permite diferitelor aplicaii ce-l compun s comunice ntre ele. Astfel, date ce se gsesc ntr-o aplicaie Access pot fi transferate (exportate) ntr-un document Word n vederea realizrii unui document de sintez. Odat cu lansarea sistemului de operare Windows 95 a fost introdus o nou facilitate Object Linking and Embedding (introducerea i legarea obiectului) sau pe scurt OLE. OLE este o metod de transfer a informaiei ntre diferite aplicaii Windows sub form de obiecte. Metoda OLE ofer un mare avantaj aplicaiilor realizate n ACCESS, putnd fi create baze de date de tip multimedia n care pot fi stocate fiiere audio (WAV, MID), fotografii i desene (BMP, TIF), animaie i filme (AVI). Access introduce 3 faciliti: 1. DDE - Dynamic Data Exchange - schimbul dinamic de date 2. ActiveX Objects - obiecte ActiveX 3. ActiveX Custom Controls - controale personalizate ActiveX 1) DDE - permite executarea unor funcii, precum i transmiterea de date ntre Access i orice alt aplicaie Windows care suport facilitatea DDE. 2) ActiveX - permite crearea unor anumite legturi ntre obiecte, precum i includerea lor n cadrul bazelor de date Access (fotografii, grafice, foi de calcul). Access poate lucra cu acele sisteme de gestiune a bazelor de date care sunt compatibile cu standardul Open Database Conectivity (ODBC), incluznd urmtoarele sisteme: 1. Microsoft SQL Server 2. Oracle 3. DB2 4. Ingres

72

EXPORTUL DE DATE Pentru a efectua un export de date dintr-o tabel vom folosi comanda File, Export: i se va alege apoi tipul de fiier ctre care se efectueaz exportul de date din tabel (.rtf, .xls, .htm).

Publicarea datelor pe INTERNET


Este binecunoscut n ultima vreme dezvoltarea exploziv a mediului Internet, el devenind cea mai avansat form de comunicare din zilele noastre. Prin conectarea la Internet firmele pot spera la un avantaj concurenial, deoarece pot fi realizate cele 5 elemente de baz ale marketing-ului unui produs sau serviciu i anume: s ajung primul pe pia noul produs s fie anunat, nainte de lansarea efectiv produsului s i se aduc permanente mbuntiri s ocupe o pia ct mai larg, dac e posibil la nivel mondial s urmreasc ptrunderea pe noi piee

SERVERUL WEB - reprezint sistemul pe care ruleaz un program, numit demon httpd, ce are ca scop distribuia informaiei stocate sub forma unor documente. Accesul la informaia 73

de pe un server Web se obine prin intermediul unui program-client numit navigator sau browser. Navigatorul i serverul Web coopereaz dup modelul client-server. Seciunea Pages din cadrul SGBD Access permite realizarea de pagini html:

Acest lucru poate fi realizat n trei moduri : 1) Prin intrumentul wizard 2) Prin modul de lucru Design View 3) Prin editarea (modificarea) unei pagini web existente APLICAII I. Se va utiliza exportul de date din mediul Access n: 1) Microsoft Word 2000 2) Microsoft Excel 2000 3) HTML - document internet II. Utiliznd baza de date ANGAJAT, creai un document Internet care prezint coninutul acesteia. S se deschid documentul astfel creat cu ajutorul browser-ului Microsoft Internet Explorer. Observai denumirea fiierului nou creat i mai ales extensia acestuia.

74

MODULE (Modules)
Limbajul Visual Basic pentru Access 2000 (VBA) este un limbaj orientat pe obiecte i pe evenimente. Obiectele Access 2000 sunt caracterizate prin metode i proprieti. Prin intermediul metodelor se acioneaz asupra strii unui obiect, n timp ce proprietile indic starea acestuia. Editarea modulelor n Access: Limbajul Visual Basic constituie instrumentul de programare pentru aplicaiile informatice dezvoltate cu ajutorul pachetului Office 2000. Modulele din Access sunt obiecte ale bazei de date, care permit scrierea de rutine n Visual Basic pentru Access. Aceste rutine pot fi alctuite din: - declaraii de variabile - tipuri de date utilizator - proceduri i/sau funcii - declaraii API Pentru a scrie o procedur sau o funcie Access se alege din fereastra unei baze de date ultima seciune denumita simbolic Modules.

Procedurile i funciile pot fi asamblate n module, n funcie de cerinele programatorului. O procedur sau o funcie este creat pentru a fi apelat dintr-un obiect al bazei de date.

75

Pentru lucrul cu un modul se procedeaz astfel : se activeaz butonul NEW n cazul n care avem de fcut modificri se selecteaz modulul dorit urmat de activarea butonului DESIGN (sau dublu-click pe modulul dorit) pentru tergere se selecteaz modulul i se utilizeaz apoi tasta DEL sau butonul marcat cu X

Scrierea rutinelor VBA se poate face cu litere mici sau cu majuscule. Cuvintele cheie i cele utilizator sunt transcrise automat n forma n care au fost declarate, dac sunt scrise corect. Editorul VBA are faciliti de colorare a unor cuvinte, declaraii sau fraze scrise eronat. Instruciuni de afiare i introducere a datelor Formularele i rapoartele reprezint o form elegant de introducere i afiare a datelor. n VBA exist instruciuni pentru introducerea unor date i afiarea de mesaje. InputBox (<mesaj>, [<titlu>], [<val_implicit>], [<x>], [<y>], [<fiier_help>, [<context>]) - permite introducerea datelor sub forma unei secvene de caractere de la tastatur

76

MsgBox (<mesaj>, [<butoane>], [<titlu>] [<fiier_help>], [<context>]) permite afiarea unui mesaj i opional poate returna o constant n funcie de butonul ales de utilizator. Declararea variabilelor n VBA VBA are dou categorii de tipuri de date : a) standard (predefinite) b) utilizator Tip de dat DOUBLE SINGLE CURENCY BYTE INTEGER LONG BOOLEAN DATE STRING VARIANT OBJECT Caracteristici Numr memorat pe 64 de bii, virgul mobil. Valori de la 1,797*10308 pna la +1,797*10308 Numr memorat pe 32 de bii, virgul mobil. Valori de la 3,4*1038 pna la +3,4*1038 Numr memorat pe 64 de bii. Valori posibile : -922337203685477,5808 pn la 922337203685477,5808 Numr ntreg pe 8 bii. Valori posibile 0-255. Numr ntreg pe 16 bii. Valori posibile : -32768 pna la 32767. Numr ntreg pe 32 de bii. Valori posibile : -2147483648 pn la 217483647. Conine 2 valori logice : TRUE (adevrat 1) sau FALSE ( fals 0) Conine date calendaristice i timp. Se utilizeaz ntre diez(#) ir de caractere. Poate conine maxim 2 la puterea 31 caractere. Se utilizeaz ntre ghilimele. Tip de date generic. Tip de date care refer un obiect.

Declararea i utilizarea variabilelor Variabilele pot fi active : - ntr-o procedur sau funcie - ntr-un modul - n toate modulele (publice) Variabilele active se specific cu ajutorul declaraiei DIM Dim nume_variabila AS tip_de_dat Exemplu : Dim nr_mat as Integer Exemplu de procedur (subrutin) pentru declararea de variabile, un calcul simplu i afiarea rezultatului :

77

Execuia unui modul VBA se face alegnd opiunea RUN SUB/USERFORM din meniul principal.

78

Variabile locale i variabile globale Variabilele care se doresc a fi vizibile numai ntr-un modul se declar cu Dim sau Private. Variabilele care se doresc a fi vizibile i n cadrul altor module se declar cu Public. procedur se apeleaz cu CALL nume_procedur. Procedurile pot fi definite n module diferite. Exemplu de apel pentru o procedur n cazul nostru pentru mprire. MODULUL 1 Option Compare Database Sub Exemplu_Declarare_de_variabile() Dim x As Double, y As Double, z As Double x=4 y=5 z=x*y MsgBox z Call impartire End Sub Option Compare Database MODULUL 2 Sub impartire() Dim x As Double, y As Double, z As Double x=4 y=5 z=y/x MsgBox z End Sub

79

n urma execuiei modulului 1 se vor afia cele dou rezultate, nmulirea urmat apoi de mprire. Declararea tablourilor: Un tablou este o mulime de elemente de acelai tip care pot fi referite prin intermediul indicilor. Numrul de indici constituie dimensiunea tabloului. Numrarea elementelor pentru un indice ncepe de la 0 i se termin cu numrul maxim pentru care este definit. Numrul de elemente dintr-un tablou se pot specifica n momentul declarrii (tablouri alocate static), acest numr rmnnd neschimbat pe toat durata de existen a variabilei tablou sau n momentul redimensionrii acestuia pe parcursul duratei de via a variabilei tablou (tablouri alocate dinamic). a) Dim var_tablou (nr_el1, nr_el2,) as tip_de_date

dimensiunile tabloului n acest caz tabloul are numr de elemente fix pe toat durata de existen a variabilei. b) Dim var_tablou () as tip_de_date n acest caz nu se precizeaz dimensiunile tabloului. Acestea vor fi stabilite pe parcurs cu ajutorul instruciunii ReDim. ReDim var_tablou(nr_el1, nr_el2,) as tip_de_date ReDim Preserve var_tablou(nr_el1, nr_el2, ) as tip_de_date n prima variant, toate valorile coninute de elementele tabloului se pierd prin acest apel, iar n a doua variant se pstreaz valorile elementelor pn n momentul apelului. Exemplu: Dim A( ) as Double // tablou dinamic Dim B(10, 10) as Integer PRGRAMAREA STRUCTURAT Programarea structurat n VBA implic o serie de instruciuni : 1. instruciunea IF 2. instruciunea SELECT CASE 3. instruciunea WHILE.WEND 4. instruciunea DOLOOP 5. instruciunea FORNEXT

80

1. Instruciunea IF IF condiie THEN ELSE ENDIF Efect: se evalueaz condiia, dac este adevarat se execut secvena de instruciuni 1, iar dac e fals se execut secvena de instruciuni 2. 2. Instruciunea SELECT CASE SELECT CASE expresie_selectoare CASE lista_expresii_case_1 secvena_de_instruciuni_1 CASE lista_expresii_case_2 secvena_de_instruciuni_2 CASE lista_expresii_case_3 secvena_de_instruciuni_3 CASE ELSE secvena_de_instruciuni_n END SELECT Efect: se evalueaz expresia_selector i daca e egal cu una din list de expresii se execut secvena de instruciuni corespunztoare. Dac nici una nu corespunde, se execut secvena de instuciuni n. 3. Instruciunea WHILEWEND WHILE condiie secvena_de_instruciuni WEND Efect: se evalueaz condiie i att timp ct e adevrat se execut secvena de instruciuni. Dac nu e adevrat, se va trece la urmtoarea instruciune de dupa WEND. secvena_de_instruciuni_1 secvena_de_instruciuni_2

81

4. Instruciunea DOLOOP Varianta a) DO WHILE|UNTIL condiie secvena_de_instruciuni EXIT DO secvena_de_instruciuni LOOP Efect: n varianta DO WHILELOOP se repet secvena de instruciuni atta timp ct condiia este adevrat. Cu EXIT DO se face ieirea forat din structur. n varianta DO UNTIL LOOP se repet secvena de instruciuni pn cnd condiia devine adevrat. Varianta b) DO secvena_de_instruciuni EXIT DO LOOP WHILE|UNTIL condiie n varianta DOLOOP WHILE se repet secvena de instruciuni atta timp ct condiia este adevrat. n varianta DOLOOP UNTIL se repet secvena de instruciuni pn cnd condiia este adevrat. 5. Instruciunea FORNEXT FOR var_contor=val_iniial TO val_finala STEP val_pas secvena_de instruciuni EXIT FOR secvena_de_instruciuni NEXT var_contor Cu exit for se face ieirea forat dintr-o structur FOR. Valoarea pasului cea implicit este 1.

82

APLICAII I. S se scrie o subrutin pentru adunarea, scderea, nmulirea i mprirea a dou numere reale. II. S se scrie o subrutin de afiare a rezultatelor. III. S se scrie o subrutin pentru calculul radicalului. Rezolvare : Option Compare Database Sub radical() Dim a As Double Dim b As Double Dim c As Double MsgBox ("Introducei valoarea din care se va extrage radicalul :") b = InputBox(a) MsgBox ("Rezultatul corect dupa ce apei OK este:") MsgBox (Sqr(b)) End Sub IV. S se scrie o subrutin pentru calculul funciei factorial. V. S creeze formulare i module pentru afiarea unui meniu principal care s conin urmtoarele butoane : 1. INTRODUCERE DATE STUDENT se apeleaz forma cu datele studentului 2. RAPOARTE se apeleaz un anumit raport 3. INTEROGRI se apeleaz o anumit interogare Se va folosi la fiecare buton Event Builder cu care se vor construi apoi modulele care apeleaz formele corespunztoare pentru a), b), c). Pentru module se va folosi un cod de genul urmtor : Option Compare Database Option Explicit Private Sub command1_click () DoCmd.Close DoCmd.OpenForm ("nume_form") End Sub

83

APLICAII BAZE DE DATE ACCESS


APLICAIA 1
1. Se consider baza de date GESTIUNE. Se vor crea tabelele PRODUS i CLIENT. Componena cmpurilor celor dou tabele este urmtoarea : Pentru tabela produs : CODP - codul produsului numeric NUMEP - numele produsului text 20 PRETP - pretul produsului numeric DATAF - data fabricaiei produsului data calendaristic CANTP - cantitatea n care se gsete produsul numeric Pentru tabela client: CODC - codul clientului numeric NUMEC - numele clientului text 20 CODP - codul produs - numeric 1. Se stabilesc cheile primare care sunt: numep, codc. 2. Se vor aplica reguli de validare pentru cmpurile DATAF sa fie dup 08/01/02, precum i textul de validare DATA INCORECTA! 3. Se va crea relaia One-To-Many ntre cele dou baze de date prin legtura ntre cmpurile codc i codp conform creia un client lucreaz cu mai multe produse. 4. Creai formularul WPRODUS corespunztor tabelei produs. 5. Creai formularul WCLIENT corespunztor tabelei client. 6. Creai un formular, WWPC care va conine cele dou formulare. 7. Sa se scrie un raport RFINAL_1 care s prezinte totalul clienilor precum i numele lor. 8. Se va realiza raportul RFINAL_2 care va prezenta situaia produselor din tabel, totalul lor, valoarea total a produselor, media cantitii produselor. 9. Realizai interogarea INTER_1 care va filtra numele produselor produse dup data de 09/01/02, ordonate descendent care sunt ntr-o cantitate mai mic de 1000 de buci i cu un pre ntre 15000 i 80000. 10. Realizai interogarea INTER_2 care va afia produsele care sunt n cantitate mai mare dect 356, ordonate alfabetic. 11. Creai macro-ul APELR care va rula raportul RFINAL. 12. Creai macro-ul APELF care va rula formularul WWPC. 13. Prezentai coninutul tabelului PRODUS n pagina Internet PRODUS.HTM. 84

14. Prezentai coninutul tabelului CLIENT n pagina Internet CLIENT.HTM. 15. Exportai coninutul tabelului PRODUS n Word. 16. Exportai coninutul tabelului CLIENT n Excel. 17. Creai un meniu cu butoanele PRODUS, CLIENT, care la acionarea lor s prezinte formularele corespunztoare. 18. Definii independena logic a datelor. 19. Menionai tipurile de relaii ntre tabele. 20. Definii o baz de date. Coninut. Datele care vor fi introduse n tabela PRODUS sunt urmtoarele: Codp 39383 8872 29341 98378 5353 Numep KETCHUP MARGARINA OREZ SARE ULEI Pretp 20000 18000 24000 41000 37000 dataf 12/12/02 10/12/02 10/10/02 11/9/02 11/23/02 cantp 1300 356 1982 400 290

Datele care vor fi introduse n tabela CLIENT sunt urmtoarele:

CODC 556 234 321 343 431

NUMEC SORA CONIS FLIP BILLA METRO 33467 34561 56432 43223 32156

CODP

85

APLICAIA 2
1. Se consider baza da date SELLCAR. Se vor crea tabelele AUTOTURISM i DEALER. Componena este urmtoarea : Pentru tabela AUTOTURISM : SC - serie caroserie - numeric MARCA - marca mainii - text - 30 DTAF - data fabricaiei - data calendaristic COMB - combustibil - BENZINA / MOTORINA PRET - preul LS - leasing (Yes/No)

Pentru tabela DEALER : CODD - codul dealerului numeric NUMED - numele dealerului TIP - marca de maina cu care lucreaz dealer-ul Se stabilesc cheile primare pentru cele dou tabele: SC i CODD. 2. Se va aplica regula de validare pentru cmpul COMB care poate fi numai motorin sau benzin, precum i textul de validare TIP DE CARBURANT INCORECT! 3. Se va crea relaia One-To-One ntre cmpurile SC i CODD conform creia unei serii de autoturism ii corespunde un singur dealer. 4. Creai formularul WAUTOTURISM corespunztor tabelei autoturism. 5. S se creeze formularul WDEALER corespunztor tabelei DEALER. 6. Se va crea formularul WAD care va combina cele dou formulare precedent create (subformular). 7. Compunei raportul RFINAL_1 care va afia situaia dealer-ilor i totalul lor. 8. Se va realiza raportul RFINAL_2 care va prezenta situaia tuturor autoturismelor din tabel, totalul lor, valoarea total a autoturismelor, cel mai mic i cel mai mare pre. 9. Realizai interogarea INTER_1 care va filtra numele autoturismelor pe benzin ordonate ascendent dup pre, care se pot vinde n leasing i al cror pre este ntre 26500 i 30000. 10. Se va scrie interogarea INTER_2 care va extrage din tabelul AUTOTURISM toate mainile pe motorin care au un pre mai mare de 33000. 11. Creai macro-ul APELT care va afia coninutul tabelului AUTOTURISM. 86

12. S se scrie macro-ul IESIRE care va executa ieirea din SGBD-ul Access. 13. Exportai tabelul AUTOTURISM ntr-un document destinat calculului tabelar. 14. Exportai coninutul tabelului DEALER ntr-un document RTF . 15. Prezentai coninutul tabelului AUTOTURISM pe pagina Internet cu numele AUTO.HTM. 16. Prezentai coninutul tabelului DEALER pe pagina Internet DEALER.HTM. 17. Realizai un meniu cu butoane avnd n componen dou butoane care prin acionare vor deschide formularele DEALER respectiv AUTOTURISM. 18. Cele 3 pri componente ale unui formular. Ce este un subformular? 19. Definii pe scurt noiunea de DBA. Dai dou exemple de SGBD-uri existente n prezent (n afar de Access!). 20. Definii atribuiile de proiectare ale ABD. Datele care vor fi introduse n tabelului AUTOTURISM sunt urmtoarele: SC 328972387 384883838 498374654 858398454 948464433 Marca VOLKSWAGEN VOLKSVAGEN VOLKSWAGEN VOLKSWAGEN VOLKSWAGEN Dataf 8/8/02 9/8/02 7/7/02 6/6/02 5/12/02 comb BENZINA BENZINA MOTORINA MOTORINA BENZINA pret 26000 27000 35000 33000 28000 ls Yes No Yes Yes Yes

Datele care vor fi introduse n tabelul DEALER sunt urmtoarele: CODD 328972387 373737344 445343246 474822447 948464433 NUMED INTERAUTO AUTOSELL CARDEAL AUTOREN DEAL-OPEL MARCA VOLKSWAGEN MERCEDES BMW RENAULT OPEL

87

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