Sunteți pe pagina 1din 119

Universitatea Babe-Bolyai Cluj-Napoca Centrul de Formare Continu i nvmnt la Distan

Facultatea de Business

SUPORT DE CURS

BAZE DE DATE

ANUL II, semestrul I Cluj-Napoca 2010

1. Informaii generale
Date de identificare a cursului Date de contact - titular curs Nume: Asist. univ. dr. Rus Veronica Birou: Facultatea de Business, Str. Horea nr.7, etaj I, cam.122 Telefon: 0264599170, Fax: 0264 - 590110 Email: veronica.rus@tbs.ubbcluj.ro Consultaii: Joi, 16-18, 122 sau S3 rspunsuri la e-mail, max. 48 ore

Date de identificare curs i contact tutori Denumire curs: BAZE DE DATE Cod: IAA2119 An II, Semestrul: I Tip curs: obligatoriu Pagina web: www.tbs.ubbcluj.ro Tutori: lect. dr. Tutunea Mihaela mihaela.tutunea@tbs.ubbcluj.ro

Condiionri i cunotine prerechizite: Pentru nsuirea rapid i eficient a cunotinelor aferente acestei discipline este recomandabil parcurgerea disciplinei Tehnologia Informa iei din cadrul programului de nivel licen. Descrierea cursului Cursul vizeaz nsuirea de ctre studeni a noiunilor fundamentale legate de domeniul bazelor de date: sisteme de gestiune a bazelor de date, proiectarea bazelor de date, crearea i manipulare bazelor de date. Competenele dobndite prin parcurgerea acestei discipline se refer la: Formarea abilitilor de exploatare eficient a computerelor; Capacitatea de a defini i a pune n practic noiunile legate de baze de date; Abilit i legate de proiectarea bazelor de date si a aplicaiilor pentru afaceri folosind Microsoft Access 2000; Aptitudini de ordin practic - crearea i manipularea obiectelor bazelor de date (tabele, interogri, formulare, rapoarte, comenzi macro i module). Organizarea temelor n cadrul cursului Tematica cursului este structurat astfel nct s poat fi atinse obiectivele cursului, regsite la finele cursului n competenele dobndite de ctre studeni. Cursul este structurat pe uniti de studiu, logic succedate, cuprinznd noiuni eseniale ale Bazelor de dare, care trebuiesc nsuite de ctre studeni; la finele fiecrei uniti se regsesc scurte teste de verificare a cunotinelor acumulate. De asemenea, la finele fiecrui modul sunt indicate lucrrile practice care trebuiesc realizate de ctre studeni; sunt patru lucrri, care vor fi transmise pe e-mail (veronica.rus@tbs.ubbcluj.ro) sau pe portalul ID (veronica.rus@portalid.ubbcluj.ro), cu specificarea clar a numelui studentului i a numrului lucrrii practice realizate (LP1, LP2, LP3, LP4 (LP - lucrare practic)). Lucrrile practice, se rezolv n ordinea derulrii studiului materiei, i trebuie predate conform urmtoarelor planificri: 2

Lucrare practica LP1 LP2 LP3 LP4

Termen predare

Nepredarea lor la timp, atrage dup sine pierderea punctajului acordat, conform politicii de notare! Considernd natura domeniului tehnologiei informaiei, rapiditatea upgradrii acestuia i a multitudinii de informaii care-l caracterizeaz, materialul aferent cursului se va actualiza att pe portalul ID, (https://portal.portalid.ubbcluj.ro) ct i pe CD-urile cu materialele pentru ID. Detalierea temelor de studiu se regsete n calendarul cursului. Formatul i tipul activitilor implicate Datorit caracterului aplicativ al disciplinei, parcurgerea acestui curs necesit participarea studenilor la cursurile i laboratoarele programate pentru aceast disciplin; de asemenea, este necesar studiul individual aprofundat; n vederea fixrii cunotinelor dobndite i a formrii unor bune abiliti de exploatare i aplicare practic a cunotinelor dobndite la cursuri i laboratoare, sunt absolut necesare exerciii suplimentare individuale. Metodele utilizate pe parcursul predrii disciplinei sunt: expunerea interactiv bazat pe exemplificarea practic, concret, n cadrul cursurilor, continuat cu exerciii i aplicaii practice realizate n cadrul laboratoarelor, aferente temelor abordate n cursuri. Materiale bibliografice obligatorii Avnd n vedere multitudinea materialelor documentare aferente acestui domeniu, bibliografie obligatorie nu se impune, dar pentru eficientizarea cursului, este necesar dobndirea de ctre studeni a unei baze de cunotine pe care le pot acumula din bibliografia recomandat pentru fiecare unitate de studiu n parte. Materialele bibliografice se gsesc la Biblioteca Central Universitar, Biblioteca Fac. de tiine Economice i Gestiunea Afacerilor Str. Teodor Mihali, Nr.58-60 sau biblioteca Fac. de Business. Pe lng aceasta, se poate consulta orice bibliografie n format tiprit sau electronic, legat de temele abordate n cadrul cursului ct i exploatarea aprofundat a help-ului aferent aplica iei MS. Access. Materialele i instrumentele necesare pentru curs Pe lng materialele puse la dispoziie pe CD i/sau n form tiprit, studenii vor lucra cu informaiile disponibile (n mod gratuit) pe Internet, precum i cu aplicaiile realizate i parcurse mpreun cu cadrul didactic. Natura disciplinei impune utilizarea permanent pentru prezentri i laborator, a calculatoarelor conectate la reeaua local a facultii i bineneles la Internet, ct i a video-proiectorului. Calendarul cursului

n derularea acestei discipline sunt programate patru ntlniri cu studenii, cu desfurarea urmtoare: ntlnirea nti - se vor parcurge unitile 1, 2, 3 ntlnirea a doua - se vor parcurge unitile 4, 5, 6 ntlnirea a treia - se vor parcurge unit ile 7, 8 ultima ntlnire - parcurgerea unitilor 9,10. Pentru eficientizarea acestor ntlniri, este indicat s fie parcurse n prealabil, de ctre studeni, materialele aferente unitilor studiate, pentru ca acetia s fie capabili s ridice probleme, ntrebri concrete, legate de noiunile abordate n cursuri. Ulterior fiecrei ntlniri de curs i laborator, studenilor li se vor recomanda i teme suplimentare care s ajute la clarificarea i fixarea cunotinelor dobndite. ntlnirile cu studenii vor avea loc la sediul facultii, dup o programare prealabil anunat; prezentrile i aplicaiile practice n laboratoarele de informatic ale facultii. Tematica cursurilor predate n cadrul acestei discipline, este divizat pe uniti de studiu, i cuprinde: Unitatea 1. Tematica cursului: Baze de date - Concepte de baz Implicarea studenilor: Parcurgerea bibliografiei indicate. Exemple, ntrebri, discuii. Referine bibliografice: 1. Dollinger, Robert, Andron, Luciana (2004), Baze de date i gestiunea tranzaciilor, Editura Albastr, Cluj-Napoca, pag. 11-29. 2. Avram-Nichi, R., Ghi oiu, N., et al., (2007), Elemente de baze de date i programare aplicate n economie, Ed. Risoprint, Cluj-Napoca, pag 1-19; 3. Orice documentaie aferent temei, tiprit sau digital, tutoriale, help-uri, etc.; Unitatea 2. Tematica cursului: Microsoft Access: Prezentare general. Implicarea studenilor: Parcurgerea bibliografiei indicate. Exerciii practice. Referine bibliografice: 1. Avram-Nichi, R., Ghi oiu, N., et al., (2007), Elemente de baze de date i programare aplicate n economie, Ed. Risoprint, Cluj-Napoca, pag 19-83; 2. Orice documentaie aferent temei, tiprit sau digital, tutoriale, help-uri, etc.; Unitatea 3. Tematica cursului: Tabele. Implicarea studenilor: Parcurgerea bibliografiei indicate. Exerciii practice. Referine bibliografice: 1. Avram-Nichi, R., Ghi oiu, N., et al., (2007), Elemente de baze de date i programare aplicate n economie, Ed. Risoprint, Cluj-Napoca, pag 19-83; 2. Dollinger, Robert, Andron, Luciana (2004), Baze de date i gestiunea tranzaciilor, Editura Albastr, Cluj-Napoca, pag. 142-166 3. Orice documentaie aferent temei, tiprit sau digital, tutoriale, help-uri, etc.; Realizarea i predarea lucrrii practice 1 (LP1) Unitatea 4. Tematica cursului: Relaii ntre tabele Implicarea studenilor: Parcurgerea bibliografiei indicate. Aplicaii practice, exemple, discuii. Referine bibliografice: 4

1. Avram-Nichi, R., Ghi oiu, N., et al., (2007), Elemente de baze de date aplicate n economie, Ed. Risoprint, Cluj-Napoca, pag 195-198. 2. Documentaie aferent temei cursului, via Internet, tutoriale, help-uri, etc.

i programare

Unitatea 5. Tematica cursului: Interogri Implicarea studenilor: Parcurgerea bibliografiei indicate. Exerciii practice, ntrebri, discuii. Referine bibliografice: 1. Avram-Nichi, R., Ghi oiu, N., et al., (2007), Elemente de baze de date i programare aplicate n economie, Ed. Risoprint, Cluj-Napoca, pag 301-313. 2. Sndor, Kovcs (2003), Access 2000 Implementarea bazelor de date, Editura Albastr, Cluj-Napoca. 3. Orice documentaie tiprit sau digital, tutoriale, etc.; Unitatea 6. Tematica cursului: Limbajul SQL Implicarea studenilor: Parcurgerea bibliografiei indicate. Exerciii practice, ntrebri, discuii. Referine bibliografice: 1. Avram-Nichi, R., Ghi oiu, N., et al., (2007), Elemente de baze de date i programare aplicate n economie, Ed. Risoprint, Cluj-Napoca, pag 316-320. 2. Dollinger, Robert, Andron, Luciana (2004), Baze de date i gestiunea tranzaciilor, Editura Albastr, Cluj-Napoca, pag. 119-141. 3. Orice documentaie aferent temei, tiprit sau digital, tutoriale, help-uri, etc.; Realizarea i predarea lucrrii practice 2 (LP2) Unitatea 7. Tematica cursului: Formulare Implicarea studenilor: Parcurgerea bibliografiei indicate. Aplicaii, exerciii practice; teme individuale. Referine bibliografice: 1. Avram-Nichi, R., Ghi oiu, N., et al., (2007), Elemente de baze de date i programare aplicate n economie, Ed. Risoprint, Cluj-Napoca, pag 278-287. 2. Orice documentaie tiprit sau digital, help-uri i tutoriale; Unitatea 8. Tematica cursului: Rapoarte Implicarea studenilor: Parcurgerea bibliografiei indicate. Aplicaii, exerciii practice; teme individuale. Referine bibliografice: 1. Avram-Nichi, R., Ghi oiu, N., et al., (2007), Elemente de baze de date i programare aplicate n economie, Ed. Risoprint, Cluj-Napoca, pag 348-357. 2. Orice documentaie tiprit sau digital, help-uri i tutoriale; Realizarea i predarea lucrrii practice 3 (LP3) Unitatea 9. Tematica cursului: Comenzi Macro. Comunicarea ntre aplicaiile Microsoft Office. Implicarea studenilor: Parcurgerea bibliografiei indicate. Aplicaii, exerciii practice. Referine bibliografice: 1. Orice documentaie tiprit sau digital, help-uri i tutoriale; Unitatea 10. Tematica cursului: Module. Implicarea studenilor: Parcurgerea bibliografiei indicate. Exerciii practice. 5

Referine bibliografice: 1. Orice documentaie tiprit sau digital, help-uri i tutoriale; Realizarea i predarea lucrrii practice 4 (LP4) Politica de evaluare i notare Nota final va fi compus din: Componenta Lucrri practice LP 1 LP 2 LP 3 LP 4 Test final Total

Ponderea/punctaj Data de verificare Pe parcurs 10% / 1 punct 10% / 1 punct 10% / 1 punct 10% / 1 punct 60 % / 6 puncte La finele semestrului 100 % / 10 puncte

Rezultatele obinute la aceast disciplin se vor anuna la final, dup susinerea testului, prin comunicarea direct a notei finale, ct i prin afiarea notelor (pe baza numrului matricol) pe platforma ID (https://portal.portalid.ubbcluj.ro). Fiecare student poate solicita un feedback suplimentar prin contactarea titularului de curs i/ sau a tutorilor prin intermediul adresei de email. Elemente de deontologie academic Se vor avea n vedere urmtoarele detalii de natur organizatoric: 1. Prezena la cursuri i la laboratoare este indicat; 2. Plagiatul la lucrrile practice se sancioneaz cu pierderea punctajului acordat pentru aceste lucrri conform politicii de notare. Plagiatul la testele de verificare se sancioneaz cu anularea evalurii testului i vor fi luate n considerare i alte sanciuni prevzute n regulamentele studeneti; (se poate ajunge pn la neprimirea studentului n sesiunea de examene programat). 3. Contesta iile vor fi fcute n maxim 24 de ore de la afi area rezultatelor, i se vor solu iona n maxim 48 de ore. Contestaiile la evalurile practice se rezolv prin alegerea unui alt test i rezolvarea lui n prezena examinatorului. Studenii cu dizabiliti Titularul cursului este disponibil, n limita posibilitilor, la adaptarea coninutului i metodelor de transmitere a informaiilor disciplinei n funcie de tipul de dizabiliti ntlnite n rndul cursanilor. Se vor lua toate msurile necesare n vederea facilitrii accesului egal al tuturor cursanilor la informaie i la activitile didactice.

Strategii de studiu recomandate Este recomandat parcurgerea celor zece module, conform gruprii lor pe ntlnirile programate conform calendarului cursului; Avnd n vedere tipologia disciplinei, multitudinea de informaie i caracterul preponderent practic, aplicat, trebuie pus accentul pe pregtirea individual continu, prin acumulare constant a cunotinelor, precum i pe realizarea de aplicaii i exerciii individuale suficiente pentru dobndirea unor deprinderi n exploatarea i aplicarea eficient a cunotinelor teoretice, n practic. Numrul de ore necesare parcurgerii i nsuirii cunotinelor necesare promovrii acestei discipline este, n funcie de bazele de cunotine prealabile, abilitile deja dobndite i capacitile fiecruia, ntre 70-80 ore, concretizate n nvarea practic, aplicat.

2. Suportul de curs Mo d u l u l I
Unitatea 1. Baze de date - Concepte de baz Unitatea 2. Microsoft Access 2000: Prezentare general Unitatea 3. Tabele Scop i obiective Scop Acest modul are ca scop prezentarea conceptelor fundamentale din domeniul bazelor de date, familiarizarea acestora cu mediul Microsoft Access 2000 i formarea deprinderilor de exploatare a sistemelor de gestiune a bazelor de date. Tot n acest modul studen ii vor nv a cum s creeze baze de date n Microsoft Access, cum s adauge tabele i s introduc date. Obiective Eviden ierea avantajelor utilizrii bazelor de date; Definirea bazelor de date, a sistemelor de gestiune a bazelor de date; Prezentarea principalelor func ii ale SGBD-urilor; Prezentarea evoluiei SGBD-urilor; Identificarea elementelor mediului Microsoft Access 2000; Utilizarea principalelor opiuni din submeniurile sistemului Microsoft Access 2000. Proiectarea structurii unei baze de date; Recunoaterea principalelor obiecte ale unei baze de date Access; Crearea bazelor de date n Microsoft Access prin metodele prezentate; Crearea i lucrul cu tabelele n Microsoft Access 2000. Concepte de baz: date, integritatea datelor, redundana datelor, inconsistena datelor, partajarea datelor, sistem de gestiune a bazelor de date, baz de date, tabele, cmpuri, nregistrri, interogri, formulare, rapoarte, comenzi macro, module, pagini web, tipuri de date, chei, chei primare, chei candidat.

UNITATEA 1 CONCEPTE GENERALE


Sintez

1. Sisteme de baze de date


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 la cerere aceste informaii [Date, 2004]. Un sistem de baze de date este format din patru componente principale: date, hardware, software i utilizatori [Date, 2005].
Sistem de gestiune a bazelor de

Programe de aplicaie

Fig. 1. Schema simplificata a unui sistem de baze de date (sursa C. J. Date, 2005)

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. In domeniul bazelor de date este important s se fac o distincie clar ntre no iunile de dat i informa ie [Dollinger&Andron, 2004]:

1. Datele, materia prim a sistemelor informatice, sunt fapte culese din lumea real pe baz de observaii i msurtori. 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, se poate afirma 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: s fie oportun: informaia trebuie s fie furnizat atunci cnd este nevoie de ea, s fie disponibile n timp util; s fie nou: informaia nou descrie cel mai bine prezentul situaiei sau ultima verig a evoluiei unui fenomen; s fie furnizat cu o anumit frecvena: informaia trebuie s fie furnizat cu un ritm care s sprijine interesele utilizatorilor; se fac referire la o anumit perioada de timp: informaia poate s conin elemente care s descrie evenimente din trecut, prezent sau viitor. B. n funcie de coninut: s reduc gradul de incertitudine: cu ct informaiile fac referire mai clar asupra unui fenomen, cu att viziunea de ansamblu i de amnunt a decidenilor asupra respectivului fenomen va fi mai bun i, pe cale de consecin, decizia va fi luat n cunotin de cauz. s fie corect: informaia nu trebuie s conin erori; trebuie s fac referiri exacte asupra oricrui fenomen fr doze de relativism. s fie pertinent: informaiile trebuie s fac referire la un anumit fapt, situaie, eveniment i n acelai timp s descrie realitatea de facto; s fie relevant: informaia trebuie s satisfac nevoile de informare ale utilizatorului cu privire la o anumit situaie. 10

s fie necontradictorie sau noncontradictorie informaiile descriptive care fac referire la o anumit situaie trebuie s aib aceeai valoare de adevr n acelai moment temporal. s fie neredundant sau nonredundant: de obicei o informaie face referire la un anumit aspect. Dac aceeai informaie se repet ea nu aduce nimic nou n raport cu aspectul descris. s fie complet: informaia trebuie s conin toate elementele de care utilizatorul are nevoie; s aib caracter succint: vor fi furnizate doar acele informaii de care este nevoie ntr-o anumit situaie decizionala; C. n funcie de forma de prezentare informa ia trebuie respecte urmtoarele caracteristici: s fie clar: informaia trebuie s fie prezentat ntr-o form uor de neles; s fie furnizat n form detaliat sau sintetizat n funcie de necesiti; s fie prezentat ntr-o anumit succesiune, ntr-o anumit ordine; s aib o form adecvat necesitilor factorului de decizie forma de prezentare a mesajelor poate s atrag sau nu atenia decidenilor. Informaia poate fi furnizat sub forma unei relatri (expuneri), sub form numeric, grafic, sub form de tabel etc. Informaia poate fi prezentat pe suport de hrtie, pe ecranul computerului sau folosind alte medii. D. n funcie de locaie: informaia trebuie s fie disponibil indiferent de locaia n care se afl utilizatorul (fie disponibil oriunde). Informa iile solicitate la nivel strategic i tactic au urmtoarele caracteristici: sunt neprogramate, ad hoc, sunt determinate de apari ia unor evenimente care necesit luarea unor decizii; sunt sintetizate: informa iile trec prin procese de selec ie i sintetizare pentru a putea fi folosite de nivelele manageriale superioare; vizeaz orizonturi mari de timp informa iile se refer la trecut, prezent, viitor; aria de cuprindere a informa iilor este larg; au caracter previzional; provin din interiorul i exteriorul firmei (concuren a, clien i, furnizori). Pe de alt parte, informa iile solicitate la nivel opera ional ndeplinesc urmtoarele caracteristici: sunt programate, se ob in la intervale de timp bine stabilite;

11

au un con inut prestabilit care acoper nevoia de informa ii determinat de deciziile de rutin cu care se confrunt managerii de la acest nivel; aria de cuprindere este restrns i bine definit; au grad de detaliere ridicat; provin cu preponderen din mediul intern al organiza iei; se refer la evenimente din trecut; sunt cerute cu frecven mare, i sunt exacte, precise.

2. 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 [Date, 2005]. 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. [Date, 2005]. Baza de date este un ansamblu structurat de date coerente, fr redundan inutil, astfel nct acestea pot fi prelucrate eficient de mai muli utilizatori ntrun mod concurent. [Popescu, 2001] Baza de date este un sistem integrat, coerent i partajat de fi iere [Nitchi et al., 2007]. Integrat: unificare a mai multor fi iere distincte; Partajat: par i distincte din BD pot fi folosite de ctre mai mul i utilizatori; Coerent: se asigura caracterul neredundant i coerent al datelor;

3. 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. Centralizarea datelor prezint o serie de avantaje, cum ar fi [Dollinger&Andron, 2004]: Reducerea redundanei datelor memorate: n situaia n care fiecare aplicaie informatic folose te fiiere proprii pentru stocarea datelor sale e 12

posibil ca aceleai date s apar de mai multe ori n fiiere diferite aparinnd unor aplicaii diferite. Dac acea dat este modificat ntr-un fi ier aceasta trebuie modificat i n restul fi ierelor pentru a nu aprea diferen e. Este recomandabil ca 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. 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 baza de date s conin date corecte. Aceasta presupune att consistena datelor ct i plauzibilitatea lor prin introducerea unor proceduri de validare corespunztoare. Ofer 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.

4. 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 pu in abstracte se impune utilizarea unor nivele de abstractizare. Pentru asigurarea independen ei 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. 13

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 [Dollinger&Andron, 2004]. Dac se respect independena logic a datelor se poate modifica structura bazei de date prin adugarea unor noi unit i 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 influen a al i utilizatori care folosesc aceleai date. Nivelul extern

Nivelul conceptual

Nivelul intern
Fig. 2. Cele trei niveluri ale arhitecturii [Date, 2005]

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 facult i: studen i, profesori, discipline, plan de nv mnt, 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 14

securitate i integritate referitoare la anumite unit i 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 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 clien ii unui hotel. Vrsta clien ilor este o informa ie care poate fi folosita pentru realizarea unor statistici, etc. Daca se memoreaz in baza de date vrsta clien ilor 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 na terii. ntr-o baz de date cu studen i se va defini conceptul bursier.

5. 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 ndepline te 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; 15

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. Cele mai cunoscute SGBD-uri la ora actual sunt: Oracle, Microsoft Sql Server, Visual FoxPro, DB2, dBase, MySql (opensource), PostgreSQL.

6. Evoluia SGBD
Istoria SGBD poate fi rezumat n trei generaii: Sisteme ierarhice i reea; Sisteme relaionale; Sisteme avansate (orientate obiect, rela ionale 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 (rela ii alctuite din tupluri), opera ii aplicate asupra structurilor de date (selec ie, proiec ie, join), i reguli de integritate care s asigure consisten a datelor (chei primare, restric ii referen iale..) SGBDOO au aprut ca urmare a mbinrii tehnicii limbajelor orientate obiect cu a bazelor de date.

Verificarea cunotinelor
1. Care este deosebirea ntre date i informa ii?

2. Ce condi ii trebuie s ndeplineasc informa iile pentru a fi utile n luarea deciziilor? 3. Care sunt avantajele utilizrii bazelor de date? 4. Care sunt componentele unui sistem de baze de date? 5. Care sunt obiectele unei baze de date Access? 6. Care sunt func iile principale ale unui sistem de gestiune a bazelor de date? 16

7. Care dintre pachetele software de mai jos nu este un sistem de gestiune a bazelor de date? a. dBase d. Visual FoxPro b. Microsft Access e. Microsft SQL Server c. Solaris f. Oracle.

4. Avantajele utilizrii bazelor de date sunt: A. B. C. D. Redundant sczut a datelor. Evitarea inconsistentei datelor. Salvarea aleatorie a datelor. Partajarea datelor.

a. Variantele A, B, D. b. Variantele A si C. c. Variantele A si D. d. Variantele B si C. e. Variantele B si D. f. Variantele C si D. 5. Care din urmtoarele afirmaii sunt adevrate (ncercuii rspunsurile corecte) 1. Integritatea datelor se refer la corectitudinea datelor; 2. Baza de date este un sistem integrat, coerent i partajat de fi iere; 3. Datele persistente pot fi terse din baza de date fr cerere explicit adresat sistemului SGBD; 4. Baza de date este o component a sistemului informatic; 5. Redundan a este proprietatea datelor de a fi disponibile n timp util.

17

UNITATEA 2 MICROSOFT ACCESS 2000 PREZENTARE GENERAL


Sintez 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 copii 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 copii a bazei de date i prin utilizarea aplicaiei Briefcase, realizarea sincronizrii ntre diferitele copii 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; 18

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)

1. Mediul Microsoft Access 2000


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

2. Prin dublu clic pe pictograma de pe Desktop, asociat programului Ms. Access. 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 vide; 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. 19

Fig. 3. 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) minimizeaz fereastra, o transform 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 ( ) i deschiderea ( ) bazelor de date, salvarea ( ) , tiprirea ( ), previzualizarea ( ) obiectelor din baza de date. De asemenea, aa cum eram obinuii din aplicaiile Microsoft, avem butoane pentru lucrul cu text: Spelling face verificarea gramatical ( ), Cut (taie ), Copy (copiaz ), Paste (lipete ), Undo (anulare ). Tot pe bara Database avem butoane specifice aplicaiei care realizeaz sarcini imediate pentru utilizatorii care doresc s realizeze la repezeal componentele 20

unei aplicaii: adugarea unui nou obiect( . unui formular

), crearea rapid a

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. 4. Fereastra de baz a aplicaiei Access

Bara de meniu a ferestrei Database are urmtoarele opiuni:


Open ( Design ( New ( Delete ( Small Icons ( ) 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 mici;

Large Icons (

21

List (

) modul de afiare prestabilit, afieaz o list cu obiectele;

Details ( ) listeaz pentru fiecare obiect mai multe informaii: descriere, 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 ( ) n partea stng apare textul Design View. F6=Switch panes. F1=Help.

2. 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 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 Cod postal Data nasterii 4/2/1968 5/3/1974 9/8/1959 9/6/1962

Nume Oltean Popescu Plesan Sitaru Patterson

Prenume Radu Adriana Sorin Adela John

Adresa

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 2/4/1976

22

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. 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. 23

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.

3. Meniurile

i op iunile lor

Op iunile din cadrul meniurilor au urmtoarele caracteristici [Avram-Ni chi et al.]: Op iunile din cadrul unui meniu sunt grupate logic n func ie de ac iunile de executat, grupele de op iuni sunt delimitate printr-o linie orizontal; Unele op iuni au afi ate dup nume trei puncte (). Aceste puncte indic faptul c selectarea op iunii respective va avea ca efect deschiderea unei ferestre de dialog cu informa ii suplimentare. Comenzile care nu sunt urmate de cele trei puncte se vor executa imediat ce au fost selectate. Unele op iuni din meniu sunt dezactivate (apar afi ate ters) i nu pot fi selectate ntr-un anumit context. De exemplu, op iunea Save din meniul File nu va fi activ atta timp ct nu exist o baz de date deschis.

24

Dac n dreptul unei op iuni apare un vrf de sgeat (), prin selectarea op iunii respective se va deschide un alt nivel de submeniuri; Unele op iuni au o pictogram n fa a numelui ceea ce nseamn c acea op iune este disponibil i dintr-o bar de instrumente prin intermediul butonului cu pictograma respectiv. Anumite op iuni sunt urmate de o combina ie de forma Ctrl+liter. Acele op iuni pot fi accesate direct prin combina ia de taste respective (Save Ctrl+S, Print Ctrl+P, Copy Ctrl+C, Paste Ctrl+V, etc.) Dac la finalul listei de op iuni apar dou vrfuri de sgeat ( ) anumite op iuni nu sunt afi ate - pentru a vizualiza lista complet de op iuni utilizatorul trebuie s pozi ioneze mouse-ul pe aceste sge i. 3.1. Meniul File: con ine comenzi pentru manipularea bazelor de date crearea, deschiderea, salvarea i nchiderea bazelor de date dar i op iuni pentru tiprirea, importul i exportul datelor. Principalele op iuni ale acestui meniu:

Fig. 5. Op iunile meniului File

New (Ctrl+N) crearea unei baze de date; Open (Ctrl+O) deschiderea unei baze de date create anterior; Get external data importul datelor din surse externe: din baze de date (Ms Access, dBASE, Paradox, ODBC Databases), foi de calcul tabelar (Excel, Lotus 1-2-3), fi iere HTML sau fi iere text. Close nchiderea unei baze de date; Save (Ctrl+S) salvarea obiectelor bazei de date. Save as salvarea obiectelor bazei de date cu un alt nume (sau sub alta form tabel, formular, raport). Export exportul datelor n fi iere text, foi de calcul tabelar, baze de date sau alte formate. 25

Page Setup setarea paginii permite setarea marginilor (sus, jos, stnga, dreapta), selectarea formatului de pagin i a orientrii acesteia i ntroducera numrului de coloane pentru fiecare pagin; Print Preview previzualizare nainte de tiprire; Print (Ctrl+P) afi area ferestrei de dialog Print care permite selectarea imprimantei, introducerea intervalului paginilor care urmeaz a fi listate i numrul de copii; Send to trimiterea bazei de date direct la un email; Database Properties afi eaz propriet ile bazei de date tipul de fi ier, loca ia de stocare, dimensiunea, numele MS-DOS, data crerii, modificrii, data ultimei accesri, atributele fi ierului, etc. Exit nchiderea aplica iei Microsoft Access. 3.2. Meniul Edit: con ine op iuni pentru editarea obiectelor bazei de date.

Fig. 6. Op iunile meniului Edit

Undo (Ctrl+Z): anularea efectului unei ac iuni anterioare; Cut (Ctrl+X): mutarea textului sau a obiectelor selectate n memoria Clipboard; Copy (Ctrl+C): copierea textului sau a obiectele selectate n memoria Clipboard; Paste (Ctrl+V): copierea con inutului memoriei Clipboard n pozi ia curenta a cursorului. Create Shortcut: crearea unei scurtturi pentru un obiect al bazei de date pentru a fi apelat mai u or. Delete: tergerea elementelor selectate; Rename: redenumirea obiectelor bazei de date. 3.3. Meniul View: con ine op iuni pentru vizualizarea obiectelor bazei de
Vizualizarea obiectelor bazei de date Afiarea obiectelor sub forma unor pictograme mari Afiarea obiectelor sub forma unor pictograme mici Afi area unei liste cu obiectele bazei de date Afi area unor informa ii detaliate pentru fiecare obiect Aranjarea obiectelor BD dup nume, tip, data crerii, data actualizrii sau aranjare automat. Alinierea pictogramelor Afi area ferestrei cu propriet ile obiectului selectat Afi area ferestrei Code Activarea sau dezactivarea truselor de instrumente de pe ecran Remprosptarea imaginii de pe ecran

Fig. 7. Op iunile meniului View

26

date. 3.4. Meniul Insert: permite inserarea unor obiecte noi (tabele, interogri, formulare, rapoarte, pagini web, macro-uri sau module) n baza de date. Dup selectarea unei op iuni pe ecran va aprea fereastra pentru crearea unui obiect nou de tipul respectiv (fereastra New Table pentru tabele, etc.). AutoForm i AutoReport sunt op iuni cu ajutorul crora se poate crea rapid un formular sau un raport pe baza datelor dintr-un tabel. Este cea mai simpl i mai rapid modalitate de creare a formularelor/rapoartelor.

Fig. 8 Op iunile meniului Insert

3.5. Meniul Tools: permite utilizarea diverselor instrumente ale sistemului Microsoft Access 2000.
Verificarea lexical a textului Corectarea automat a textului Asigurarea legturii cu Microsoft Word i Microsoft Excel

Asigurarea colaborrii online cu al i utilizatori Crearea legturilor ntre tabele Analiza tabelelor, a performan elor, realizarea documenta iei Utilitare pentru baze de date: pentru convertirea BD, compactarea i repararea BD, legarea tabelelor, crearea tablourilor de comanda (Switchboard), crearea fi ierelor MDE Introducerea unei parole pentru BD, asigurarea protec iei BD, criptarea/decriptarea BD Crearea copiilor de siguran pentru BD Stabilirea parametrilor de lansare a unei aplica ii Lansarea editorului Visual Basic, rularea macrocomenzilor Adugarea controalelor ActiveX Adugarea unor programe Add-In Adugarea/ eliminarea unor truse de instrumente, controale, op iuni Setarea op iunilor sistemului Microsoft Access

Fig. 9. Op iunile meniului Tools

3.6. Meniul Window: include op iuni destinate gestiunii ferestrelor deschise aranjarea pe orizontal a ferestrelor (Tile Horizontally), aranjarea pe vertical a ferestrelor (Tile Vertically), afi area ferestrelor n cascad (Cascade), aranjarea pictogramelor (Arange 27

Icons), ascunderea

i reafi area ferestrelor pe ecran (Hide/Unhide).

3.7. Meniul Help: con ine op iuni pentru accesarea fi ierului de asisten (Help). Prin intermediul acestui meniu utilizatorul poate ob ine informa ii referitoare la comenzile, func iile, op iunile sistemului Microsoft Access. Informa iile pot fi accesate direct sau prin intermediul asistentului Office (Office Assistant). Fereastra Help are trei tab-uri: Contents cuprinde un manual de utilizare a sistemului Microsoft Access; Answer Wizard permite utilizatorului s caute informa ii dup o propozi ie sau o combina ie de cuvinte i tab-ul Index permite utilizatorului s caute informa ii dup cuvinte cheie.

4. 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 dintr-un 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.

28

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. 4.1. 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.

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 29

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 rmase necompletate. 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.

5. 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: ). n urma se selecteaz lista Save in (prin clic pe butonul 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;

30

se activeaz butonul Create.

se selecteaz directorul

aici se introduce numele BD

Fig. 10. 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 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:

31

1. Lansarea n execuie a instrumentului Database Wizard: deschide i

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. 11. 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. 10). Vrjitorul i acord noii baze de date un nume care poate fi schimbat. 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.

32

5. Fiecare tabel din noua aplicaie conine anumite cmpuri prestabilite. Se

pot aduga sau terge cmpuri prin intermediul ferestrei de dialog:

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.

33

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.

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 34

fereastr Help. Pentru a finaliza aplicaia executai clic pe butonul Finish. Access va genera i va deschide noua baz de date.

6. Opera ii asupra bazelor de date


6.1. 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. 6.2. 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. 6.3. Redenumirea bazei de date Pentru a putea redenumi o baz de date aceasta trebuie s fie mai nti nchis. Se selecteaz op iunea Open din meniul File, se caut baza de date i se selecteaz op iunea Rename din meniul contextual ( sau din meniul Tools al ferestrei Open). 6.4. Crearea unei copii pentru baza de date Pentru a crea o copie pentru o baz de date aceasta trebuie s fie mai nti nchis. Se selecteaz op iunea Open din meniul File, se caut baza de date i se selecteaz op iunea Copy din meniul contextual i pe urm op iunea Paste.

Verificarea cunotinelor
1. Deschide i programul Microsoft Access. 2. Identifica i 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. 4. Crea i cu ajutorul Wizard-ului o baz de date pentru managementul evenimentelor. Aduga i pe urm cinci nregistrri.

35

UNITATEA 3 TABELE
Sintez

1. Crearea tabelelor
Access organizeaz o baz de date n felul urmtor: Fiierul de baze de date 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).

Baza de date

Tabel

Cmp

Tip de date

Valoare

Fig. 12. Organizarea BD

Valoarea reprezint valoarea introdus ntr-un cmp. De exemplu, n cmpul Nume, de tip text, se poate stoca valoarea Ionescu. 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 36

pentru acest 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. 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. 13. Fereastra Database

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

37

n Access exist dou modaliti de vizualizare a tabelelor:

Datasheet View (

): permite introducerea de date (articole) n tabel.

Design View ( ): 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 judetext(30) acesta va putea fi afiat n dou moduri:

Fig. 14. Tabelul Judee deschis n mod Datasheet

Fig. 15. Tabelul Judee deschis n mod Design View

38

2. 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 cmpuri: 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.

Tip de date

TEXT Alfanumerice

MEMO

NUMBER

Numerice

Genereaz numere unice n mod automat de AUTONUMBER 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. CURRENCY 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). 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.

YES/NO Date calendaristice

DATE/TIME

39

Tip de date
Obiecte mari

Tip de date Access


OBJECT OLE

Descrierea tipului de date


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.

Adrese Internet

HYPERLINK

Tabel 1. Tipuri de date disponibile n Ms. Access

Dac din lista Data Type se alege Lookup Wizard se va crea un cmp a crui valori pot fi ncrcate dintr-o list derulant. Elementele listei pot fi valori tastate de utilizator sau valori con inute ntr-un cmp al unui tabel sau interogare existent.

3. 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:

40

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 (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

nlocuitorii de caractere pot fi: - 0 pentru numere (0-9); - 9 pentru numere sau pauze; - L pentru litere (A-Z). 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 permit 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. 41

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.

4. 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 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 pentru angajaii strini cod numeric personal are alt format. 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 se poate schimba 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 AutoNumber care s ndeplineasc rolul de cheie principal. Defini ie: se nume te cheie a unui tabel un subset de coloane care ndeplinesc urmtoarele condi ii: 1. valorile coloanelor care compun cheia identific n mod unic fiecare rnd din tabel. 2. subsetul de coloane este minimal, n sensul c eliminarea oricrei coloane din cheie duce la nerespectarea primei condiii. 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 42

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.

5. 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 Database. sau din bara de instrumente

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) 43

Se creeaz 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. 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. 16. 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. 44

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.

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.

) din meniul Pentru a aduga articolele se selecteaz Datasheet View ( View iar n fereastra care apare pe ecran se completeaz urmtoarele date:
Cod Nume Prenume client 1 2 3 4 5
Opri Plesan Sitaru Pascu Radu Sorin Adela John Popescu Adriana

Adresa
Str. Horea Nr. 4 Str. Cernei Nr.3

Localitate
Cluj-Napoca Cluj-Napoca

Jud
CJ CJ SB CJ CJ

Cod postal
23451 23780 34758 34214 34561

Telefon

Data nasterii

Str. Plopilor Nr. 6 Cluj-Napoca Str. Sibiului Nr 45 Medias Str. Alverna Nr 45 Cluj-Napoca

0264/552302 02/04/1968 0264/440016 03/05/1974 0269/667980 08/09/1959 0264/418788 06/09/1962 0275/938566 04/02/1976

45

Verificarea cunotinelor
1. Tipul de date currency este: a. Un format special pentru introducerea unor comentarii descriptive i a unor notie; b. Un format special pentru uniti monetare ; c. Un tip de date folosit pentru stocarea datelor calendaristice. 2. Care dintre caracterele /simbolurile de mai jos nu poate fi inclus n numele unui cmp al unei baze de date? a. y (caracterul y). c. _ ( underscore). b. 9 (cifra 9). d. . (caracterul punct)

3. Cum se aliniaz implicit datele introduse n tabel ntre marginile unui cmp de tip data calendaristic (Date/Time)? a. La stnga (Left). c. La centru (Center). 4. b. La dreapta (Right). d. ntre margini (Justify).

Precizai care dintre urmtoarele afirmaii sunt adevrate. a. b. c. d. Coloanele sunt cmpuri (fields). Rndurile sunt nregistrri (records). Coloanele sunt nregistrri (records). Rndurile sunt cmpuri (fields).

5. Care operaiune nu se efectueaz n cazul modificrii structurii unei baze de date? a. Modificarea lungimii unor cmpuri. c. Adugarea unor cmpuri. e. tergerea unor cmpuri. b. Modificarea tipului unor cmpuri. d. Adugarea unor articole. f. Modificarea denumirii cmpurilor.

6. Care dintre irurile de cifre si/sau caractere de mai jos este admis ntr-un cmp de tip numeric ntreg? a. +125H3 b. -196 3 c. 52.34 d. 99999 e. 9658 7. Dintre variantele de mai jos, care nu este o caracteristic a cmpurilor? a. Numele b. Tipul de date c. Dimensiunea d. Extensia 8. Ce rol are cheia primar? 46

9. Asupra cheii primare a unui tabel SGBD-ul impune anumite restricii: A. nu sunt admise valorile nedefinite (NULL) pentru atributele unei chei primare; B. nu este permis introducerea unor valori negative; C. nici o valoare a unui atribut dintr-o cheie primar nu poate fi modificat n cadrul operaiilor de actualizare. a) Variantele A si B. c) Variantele B i C b) Variantele A si C. d) Toate variantele (A, B, C).

Aplica ii practice
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 AA sau SO ) - text - 2 caractere BRS bursier - da sau nu (Yes/No) Media media studentului de tip numeric-zecimal 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. Pentru cmpul de date SCT se va impune condiia ca secia sa fie numai AA sau SO. 5. S se introduc cte 6 nregistrri, 3 studeni de la AA i 3 studeni de la SO. 6. S se ordoneze baza de date cresctor dup cmpul Nume. 7. S se ordoneze baza de date descresctor dup cmpul Media. 8. S se introduc un nou student, Popescu Ion de la secia AA. 9. S se tearg studentului de pe poziia a treia. 10. Modificai structura bazei de date prin adugarea unui nou cmp Loc. text (20), localitatea de unde provine studentul, dup cmpul adresa ADR. 11. S se completeze cmpul introdus cu informaiile corespunztoare pentru fiecare student. 47 1. 2. 3.

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 - ntreg 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.

Sumar
Un sistem de baze de date este un sistem computerizat de pstrare a nregistrrilor. Componentele principale ale unui sistem de baze de date sunt: datele, elementele hardware, elementele software i utilizatorii. Sistemul de baze de date ofer ntreprinderii un control centralizat asupra datelor sale. Datele sunt fapte culese din lumea real pe baz de observaii i msurtori. Baza de date este un sistem integrat, coerent i partajat de fi iere. Sistemul de gestiune a bazelor de date (SGBD) este software-ul care trateaz toate cererile de acces la baza de date. Microsoft Access 2000 este sistemul de gestiune a bazelor de date inclus n pachetul Microsoft Office 2000 Professional. 48

O baz de date Access - o colecie de obiecte: tabele (tables), cereri de interogare (query), formulare (forms), rapoarte (reports), pagini Web (pages), comenzi macro (macros) i module (modules). Tabelul este o colecie de date specifice unui anumit subiect, stocate pe linii i coloane O baz de date con ine unul sau mai multe tabele independente sau legate ntre ele. Coloanele tabelului reprezint cmpurile (fields) care se descriu prin nume, tip i alte atribute ale acestora. Liniile tabelului conin nregistrri (records) cu date corespunztoare coloanelor. 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. Formularul (FORM) este un obiect care permite introducerea datelor, afiarea acestora sau controlul ntregii aplicaii. Raportul (REPORT) este un obiect care permite formatarea i tiprirea, sub form de documente, a informaiilor obinute n urma consultrii bazei de date. Pagina Web de accesare a datelor (PAGES) permite vizualizarea datelor n mediul Internet. Comenzile Macro (MACRO) permit automatizarea diverselor evenimente fr ca realizatorul aplicaiei s fie nevoit s cunoasc un anumit limbaj de programare. Modulul (MODULE) reprezint un obiect care conine proceduri definite de utilizator i scrise n Visual Basic. 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. Cheia primar (Primary Key) - o coloan sau un set de coloane care identific n mod unic fiecare nregistrare din tabel. Cheia primar se alege dintre cheile candidat ale tabelului astfel nct aceasta s conin un numr minimal de coloane i s fie stabil. Nu sunt admise valorile nedefinite (NULL) pentru atributele unei chei primare.

Sarcini i teme ce vor fi notate


Studierea de ctre studeni a materialului teoretic aferent modulului, cuprins n suportul curs i n bibliografia suplimentar indicat. Participarea la aplicaiile practice, teme de laborator, care s determine: familiarizarea mediul Microsoft Access 2000; observarea, vizualizarea, exploatarea comparativ a altor versiuni de Microsoft Access 2003, prin vizualizarea comparativ a acestora; Lucrarea practic nr. 1.

49

Lucrarea practic 1 (LP1)


I. S se creeze o baza de date i s se salveze cu numele CLIENTI. Baza de date va conine un tabel InfoClienti n care se vor stoca informaiile referitoare la clien ii unei firme. Structura tabelului este urmtoarea: ClientID AutoNumber; Nume text 30 caractere Prenume text 30 caractere DN data naterii de tip dat calendaristic LN locul na terii text, 30 Cet enia text 50 Sex text 1 caracter ( M sau F) Adresa adresa clientului de tip text 100 caractere (n format Strada, Numr, Ap.) Localitate text, 50 Indicativ_judet text, 2 (SB Sibiu, BN Bistri a Nsud, etc.) CodTara numeric Long Integer, (1 Romania, 2 Ungaria, 3 Moldova, 4 Bulgaria, 5 Germania, 6 Italia) Telefon text 15 caractere TipActID numeric Long Integer (1 - Buletin identitate, 2 - Carte de identitate, 3 Pa aport, 4 Carnet de ofer) NrActID text - 15 caractere Emitent text, 30 DataExp data expirrii actului de identitate data calendaristic Email text, 50 S se creeze tabela InfoClienti cu cmpurile aferente. S se stabileasc cheia primar pentru tabelul InfoClienti. Cmpul de date CodTara s permit introducerea unor valori cuprinse intre 1 i 6. Valorile pentru acest cmp se vor alege dintr-o lista (Lookup).

1. 2. 3.

4. 5.

De asemenea, n cazul n care se introduc valori in afara intervalului s se afi eze urmtorul mesaj: Introducei valori ntre 1 i 6!. Cmpul de date SEX va con ine valoarea M pentru masculin sau F pentru feminin. S se introduc regula de validare corespunztoare. Cmpul de date TipActID s permit introducerea unor valori cuprinse intre 1 i 4. Valorile pentru acest cmp se vor alege dintr-o lista 50

(Lookup). n cazul n care se introduc valori in afara intervalului s se afi eze urmtorul mesaj: Introducei valori ntre 1 i 4!. 6. S se introduc 11 clien i din Romania i 3 din afara rii. Clien ii vor fi din localit i diferite. 7. S se ordoneze baza de date cresctor dup cmpul Nume. 8. S se ordoneze baza de date descresctor dup cmpul CodTara. 9. Modificai structura bazei de date prin adugarea unui nou cmp Cod_postal text (20), dup cmpul adresa. 10. S se completeze cmpul introdus cu informaiile corespunztoare pentru fiecare client. 11. Introduce i la final o nregistrare cu datele dumneavoastr. II. Comprimai (arhivai) baza de date cu utilitarul WinRAR (pute i s l descrca i gratuit de pe Internet) i transmite-i arhiva pe email la adresa veronica.rus@tbs.ubbcluj.ro sau pe portalul ID la adresa veronica.rus@portalid.ubbcluj.ro. Arhiva va avea numele format din numele i prenumele dumneavoastr urmat de textul LP1 (ex: pop_ana_lp1). n subiectul mesajului introduce i numele arhivei. Predarea lucrrii se face conform specificaiilor din seciunea Organizarea temelor n cadrul cursului, partea 1 a materialului. Bibliografia modulului 1. Avram-Nichi, R., Ghi oiu, N., et al., Elemente de baze de date i programare aplicate n economie, Ed. Risoprint, Cluj-Napoca, 2007. 2. Dollinger, Robert - Baze de date, Universitatea Tehnic Cluj-Napoca, 1994. 3. Harkins, S.S., Hansen, K., Gerhart, T., Utilizare Microsoft Access 2000, Teora, Bucureti, 1999. 4. Nstase, P., Mihai, F., Brbulescu, B., ova, R.A., Stanciu, A., Covrig, L., Baze de date n Microsoft Access 2000, Teora, Bucureti, 1999. 5. Mediul Internet.

51

Modulul II
Unitatea 4. Rela ii ntre tabele Unitatea 5. Interogri Unitatea 6. Limbajul SQL Scop i obiective Scop Acest modul urmre te familiarizarea studen ilor cu obiectele de tip interogare (Query) i cu limbajul standard de interogare (SQL). Cursan ii vor nv a cum s ob in informa iile de care au nevoie dintr-o baz de date folosind interogrile i limbajul SQL. Obiective Definirea noiunilor de cheie candidat i cheie strin; Clasificarea relaiilor ntre dou tabele; Crearea rela iilor ntre dou sau mai multe tabele; Definirea integrit ii refereniale; Identificarea tipurilor de interogri existente n Access; Utilizarea interogrilor pentru a obine diverse informaii din bazele de date; Proiectarea interogrilor folosind grila QBE; Prezentarea principalelor instruciuni ale limbajului SQL; Utilizarea instruciunilor SQL n Microsoft Access. Concepte de baz: Chei candidat, Chei strine, relaii, integritate referen ial, asociere (Join), Interogri (Queries), funcii, Interogri cu cmpuri calculate, Interogri cu parametru, Interogri de tip totaluri, Interogri de sintez, Interogri de aciune, SQL, instruciuni DDL, instruciuni DML, Create, Alter, Drop, Insert, Update, Delete i Select.

52

UNITATEA 4 RELAII NTRE TABELE


Sintez 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.

1. Tipuri de relaii n Access


a) Relaia One to One (unu la unu) - ntre dou tabele A i B exist o relaie de tipul One-to-One dac fiecrei nregistrri din tabelul A i 53

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. b) Relaia One to Many (unu la mai muli) - ntr-o relaie de tipul One-toMany, 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. c) 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 Manyto-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 legtur.

2. Integritatea referen ial: 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; 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.

54

3. 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

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.

55

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.

56

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. - 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.

57

Verificarea cunotinelor
1. S se creeze un nou tabel cu numele Pli n baza de date CLIENTI (Unitatea 3). Tabelul va avea urmtoarea structur: Cod_cl Data_platii Suma_platit Data_scadenta Numeric, ntreg Data calendaristic Currency Data calendaristic

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. 2. Opiunea Enforce Referential Integrity poate fi selectat numai daca se ndeplinesc condiiile: A. B. C. D. Cmpul selectat din tabelul primar are atributul de cheie strin; Cmpurile puse n coresponden au acelai tip de date; Cele dou tabele au acelai numr de cmpuri; Cele dou tabele sunt memorate n aceeai baz de date. b) Variantele B, C i D. d) Nici o variant nu este corect.

a) Variantele A, B i C. c) Variantele A, B i D.

3. Dac un articol din tabelul A poate avea mai multe articole asociate n tabelul B si un articol din B poate avea un singur articol asociat n tabelul A atunci relaia dintre cele dou tabele este de tipul: a) One-to-One b) One-to-Many c) Many-to-Many 4. Asupra cheii primare a unui tabel SGBD-ul impune anumite restricii: A. nu sunt admise valorile nedefinite (NULL) pentru atributele unei chei primare; B. nu este permis introducerea unor valori negative; C. nici o valoare a unui atribut dintr-o cheie primar nu poate fi modificat n cadrul operaiilor de actualizare. a) Variantele A si B. c) Variantele B i C b) Variantele A si C. d) Toate variantele (A, B, C).

58

UNITATEA 5 INTEROGRI
Sintez 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.

1. 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. 59

Se salveaz interogarea cu un anumit nume (File ->Save). Pentru a vizualiza rezultatele interogrii se selecteaz op iunea Run din meniul Query.

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.

2. 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.

60

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).

3. Operatori
a) Matematici: ^,-, *,/, \, Mod, + Operator Operaia realizat ^ * / \ Mod + Ridicare la putere nmulire mprire mprire fr rest (doar ctul) Restul mpririi unui numr la altul Adunare Scdere

b) Operatori rela ionali (de comparare): =, <>, <, >, <=, >= Operator = <> < > <= >= Operaia realizat Egalitate Diferit Mai mic Mai mare Mai mic sau egal Mai mare sau egal iruri de caractere: & (concatenare), LIKE, NOT

c) Operatori pentru LIKE

Operator Operaia realizat Concateneaz (lipete) dou expresii cu transformarea & rezultatului ntr-un ir de caractere. Like Compararea a dou iruri 61

d) Operatori logici: AND, OR, EQV, IMP, XOR, NOT. Operator Operaia realizat Not And Or Xor Eqv Imp Nu logic (negaia) i logic (conjuncia) Sau logic (disjuncia) Excluziunea logic Echivalen logic Implicaia logic

Evaluarea expresiilor - operatorul AND


Expresie 1 Expresie 2 Expresie 1 AND Expresie

True True True False False False Null Null Null

True False Null True False Null True False Null

True False Null False False False Null False Null

Evaluarea expresiilor - operatorul OR


Expresie 1 Expresie 2 Expresie1 OR Expresie 2

True True True False False False Null Null Null

True False Null True False Null True False Null

True True True True False Null True Null Null

62

Operaii de calcul predefinite n ACCESS


Operaia SUM AVG MIN MAX COUNT STDEV FIRST LAST Funcia Suma valorilor unui cmp. Media aritmetic Valoarea minim Tipul de cmpuri Numeric, Autonumber, Data i Logic Numeric, Autonumber, Data i Logic

Numeric, Autonumber, Data, Logic, Text Valoarea maxim Numeric, Autonumber, Data Logic, Text Numrul de valori dintr-un Toate tipurile cmp Varianta valorilor unui cmp Numeric, Autonumber, Data i Logic Prima valoare din cmp Ultima valoare din cmp Toate tipurile Toate tipurile

4. Funcii
Tipuri de func ii: de conversie, pentru date calendaristice, func ii financiare, matematice, pentru iruri de caractere. Func ii pentru conversia datelor: Str() transform o valoare numeric n ir de caractere; Str(921.23) returneaz 921.23. LCase() transform majusculele dintr-un text n litere mici LCase(Cluj Napoca) returneaz cluj napoca. UCase() transform literele mici din cadrul unui ir de caractere n litere mari UCase(Cluj Napoca) returneaz CLUJ NAPOCA. Val() converte te un ir de caractere ntr-o valoare numeric , Val(1234.56) returneaz 1234.56. CDate() converte te un text n dat calendaristic, CDate(04 Feb 07) returneaz 02/04/2007. CSTR() converte te o dat calendaristic n ir de caractere, CSTR(#Feb 04, 07#) returneaz 02/04/2007. Format() - are o serie de parametrii dintre care exemplificm: Format(Cluj,>) returneaz CLUJ. Format(40264123456, @-@@@@-@@@@@@) returneaz 4-0264-123456. Format(#4/25/08#,d-mmmm-yyyy) returneaz 25-April2008. Func ii pentru date calendaristice:

63

Now(): returneaz data curenta si ora curenta: 25/03/2008 12:22:34 PM dac suntem n 25 Martie 2008, ora 12, 22 minute i 34 secunde. Time(): ora curenta12:22:34 PM. Date(): returneaz data curenta. Month(): extrage luna din data specificata. Month(Now()) are ca rezultat 03 dac suntem n luna martie. Day(): extrage ziua din data specificat. Day(Date()) are ca rezultat 25 Weekday(): returneaz numrul zilei din sptmna. Weekday(Date()) Year(): returneaz anul dintr-o data calendaristica. Year(Date()) returneaz 2008 DateDiff(): calculeaz diferen a dintre doua date calendaristice. Diferen a 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(): returneaz o nou data calendaristic n func ie de un anumit interval. DateAdd(d,22, Date()) DateAdd(ww, 10, #01/01/2007#) Functii financiare: 1. DDB() - Depreciation double-declining balance: calculeaz amortizarea unui mijloc fix prin metoda balan ei dubluregresiv. DDB(Cost_Initial, Valoare_reziduala, durata_de_viata, perioada) 2. NPV() - Net Present Value: returneaz valoarea prezent actualizat pentru o investi ie (flux de venituri/cheltuieli). NPV(dobnd, valoare1, valoare2, ) Valorile trebuie s fie echidistante n timp si s fie valori pltite/ ncasate la sfr itul fiecrei perioade. Dobnda - reprezint dobnda anual. Func ia NPV este asemntoare cu PV, valorile utilizate de PV trebuie s fie constante, iar PV accept valori fie la nceputul, fie la sfr itul perioadei. Al doilea argument este negativ pentru c reprezint o cheltuial. 3. FV(): Future Value calculeaz valoarea viitoare pentru o serie de ncasri/ plti egale, fcute ntr-un numr de perioade, cu o anumit dobnd fix. 64

4.

5.

6.

7.

Func 1. 2.

FV(dobnd, perioada, plat, valoarea_prezenta, tip) Dobnda trebuie sa aib aceea i unitate de msura ca si perioada. Daca se cunoa te dobnda anuala si incasabile/pl ile sunt fcute lunar atunci dobnda trebuie sa se mpart la 12. Valoarea prezent este un argument op ional, este suma care se investe te/ mprumut in momentul ini ial. Val implicita e 0. Tip - 0 daca pl ile se fac la sfr itul perioadei sau 1 daca pl ile se fac la nceputul perioadei. Valoare implicita 0. Banii plti i sunt reprezenta i prin numere negative, iar cei ncasa i sunt reprezenta i prin numere pozitive. PV Present Value: calculeaz valoarea prezent a unui flux de ncasri/ plti viitoare. PV (dobnd, perioada, plat, vv, tip) Argumentul vv reprezint valoarea viitoare, ob inut dup efectuarea ultimei plti/ncasri. Exemplu: O persoan i permite s plteasc 200 EUR pe lun n urmtorii 4 ani. Dobnda curent de pia este de 9%. Ct de mare este mprumutul pe care i-l poate oferi banca? SYD - Sum-of-Years' Digits - calculeaza suma valorilor anuale amortizate pentru un mijloc fix, pe o perioad specificat SYD(cost_initial;val_reziduala;durata_utilizarii;per_am ortizarii) PMT- Periodic Payment for an annuity calculeaz suma care trebuie achitat periodic pentru un mprumut/economie, pentru o anumita dobnda cunoscnd numrul perioadelor de plat. PMT (dobnd, Perioada, vp, vv, tip) Exemple: Ce sum trebuie pltit lunar pentru un mprumut de 10000 EUR cu o dobnd anual de 9%, care trebuie achitat n 8 luni. Calcula i suma pe care cineva trebuie s o primeasc lunar,dac a mprumutat 5 000 EUR cu o dobnd anual de 10% pe o perioad de 5 luni. O persoan dore te s strng 50 000 $ n 18 ani prin economisirea unei sume lunare constante. Dobnda anual este de 6%. SLN (Straightline depreciation) - calculeaz amortizarea liniara a unui mijloc fix pe o perioada data SLN(cost_initial,val_reziduala,dur_amortizarii) ii matematice: Abs(): returneaz valoarea absoluta a unui numr Ex. Abs(-1) returneaz 1, Abs(1) = 1. INT(): returneaz valoarea ntreaga a unui numr; 65

3.

4. 5.

6.

Int(1234.55) returneaz 1234. Int(-55.1) returneaz -56. Round(): 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(): genereaz un numr aleatoriu; Sgn(): determina semnul unui numr; Sgn(-14) returneaz -1. Sgn(12) returneaz 1. Sgn(0) returneaz 0. Sqr(): determina radicalul unui numr.

Func ii pentru iruri de caractere 1. InStr(): are ca rezultat un numr care reprezint prima pozi ie a unui sir intr-un alt sir. Instr(abcd123efg234, 23) returneaz valoarea 6. Instr(7, abcd123efg234, 23) returneaz valoarea 11, cautarea se face dup pozi ia 7. 2. Left(): returneaz caracterele din partea stnga a unui ir de caractere : Left(abcdefg,4) are ca rezultat abcd. 3. Len(): determin lungimea unui ir de caractere Len(Cluj Napoca) returneaz 11. 4. LTrim(): nltur spa iile goale din fa a unui ir de caractere. LTrim( Cluj) returns Cluj. 5. Mid(): extrage caracterele din mijlocul unui ir Mid(abcdefgh,3,4) returneaz cdef 6. Right(): returneaz caracterele din partea dreapta a unui ir Right(abcdefg,4) are ca rezultat defg. 7. RTrim(): nltur spa iile de la sfr itul unui text RTrim(abcd ) are ca rezultat abcd. 8. Space(): Insereaz un anumit numr de spa ii Space(3) are ca rezultat 3 spa ii 9. Trim(): nltura spa iile de la nceputul i sfr itul unui ir de caractere: Trim( abcd ) returneaz abcd. 10. ASC (ir_de_caractere): returneaz codul primului caracter din irul de caractere specificat.

5. Cmpurile calculate
pot fi definite in interogri, rapoarte, formulare; se definesc astfel: Nume_camp: expresie 66

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 na terii) se vor introduce intre paranteze drepte ([data nasterii]). Expresiile - sunt construite cu ajutorul operanzilor si operatorilor, respectnd o anumita sintaxa.

6. 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. Pentru crearea interogrilor de tip total se va selecta op iunea Totals din meniul View. Aceast op iune va aduga in grila de proiectare a interogrii rndul Total. 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 ncruci ata CROSSTAB QUERY): totalizeaz datele i grupeaz aceste totaluri dup dou categorii. Sunt folosite pentru analiza multidimensionala a datelor si permit ob inerea unor situa ii sintetice asemntoare tabelelor Pivot din Excel. Gruparea si sortarea datelor se face pe rnduri si coloane iar la intersec ia 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 op iunea Make Table Query din meniul Query putem crea u or 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 pute i terge doar con inutul unui cmp ci se terg nregistrri ntregi. 67

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 ave i 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, PASSTHROUGH, 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 instruc iuni 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 instruc iune select din combina ie trebuie s genereze acela i numr de cmpuri. Cmpurile puse in coresponden trebuie sa aib acela i tip cu o singur excep ie: 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 indec ilor, modificarea structurii tabelelor, tergerea tabelelor sau a indec ilor prin intermediul instruc iunilor 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 apari ia unei subinterogri - setul de rezultate ob inut de la o interogare va constitui argument pentru o alta.

68

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. 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)

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) Pret_solicitat unitati monetare, EUR Pret_vanzare unitati monetare, EUR Data_vanzarii data calendaristica 1. S se stabileasc cheile primare pentru fiecare tabel. 2. S se salveze baza de date pe dischet cu denumirea Agen ie imobiliar. 3. Stabilii relaiile dintre tabelele bazei de date. 4. Introducei nregistrri n tabele. Interogri de selec ie 1. Lista apartamentelor cu 2 sau 3 camere, cu pre ul cuprins ntre 55000 Eur i 75000 Eur. Lista va con ine urmtoarele informa ii: cartierul, numrul de camere, confortul, pre ul solicitat.

69

2. Lista garsonierelor confort I din cartierul Grigorescu care au pre ul mai mic de 50000 Eur. Lista va cuprinde urmtoarele cmpuri: camere, adresa,pre solicitat, cartier.

Cereri de interogare utiliznd mai multe tabele 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.

Interogri de selec ie cu cmpuri calculate 1. S se calculeze pre ul apartamentelor exprimat in lei (1 EUR=3.7 RON).

2. S se calculeze preul solicitat/m2:

Interogri cu parametrii (PARAMETER QUERY) Lista imobilelor cu preurile cuprinse intre 50000 si 80000 EUR.

70

Interogri de tip totaluri 1. Sa se calculeze preul mediu solicitat - pentru fiecare tip de imobil. Rndul Total se adaug din meniul contextual (op iunea Totals).

2. S se calculeze pre ul minim i pre ul maxim solicitat pentru apartamentele cu dou camere confort I.

Interogri de ac iune: se creeaz la fel ca i interogrile de selec ie. Dup ce au fost adugate cmpurile care fac parte din lista se selecteaz din meniul Query tipul de interogare corespunztor.

Fig. 17 Op iunile meniului Query

1. Make table query: In baza de date agen ie imobiliara s se creeze un nou tabel vnzri care s conin apartamentele vndute.

71

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

3. Delete query : s se tearg din tabelul imobile toate imobilele vndute, din cartierul Mn tur.

4. Crosstab query : s se creeze o situa ie de sintez cu pre ul mediu solicitat pentru fiecare tip de imobil/cartiere. Situa ia va avea urmtoarea form:

Exemple de subinterogri 1. Numele proprietarului cu pre ul maxim solicitat pentru un apartament cu 3 camere. Rezolvare: se vor crea dou interogri prima pentru aflarea pre ului maxim solicitat pentru un apartament cu trei camere, iar a doua pentru determinarea numelui proprietarului.

72

2. Lista apartamentelor care au preturile de vnzare mai mici dect media.

Verificarea cunotinelor
1. Funcia AVG determin: a. b. c. d. Suma valorilor memorate ntr-un cmp Media valorilor memorate intr-un cmp. Numrul total al valorilor depuse ntr-un cmp. Diferena valorilor memorate intr-un cmp.

2. Interogrile constituite i aplicate unei baze de date permit: A. Vizualizarea nregistrrilor care ndeplinesc o anumit condiie; B. Modificarea, adugarea i chiar tergerea datelor din tabele; C. Sortarea nregistrrilor dup cmpuri sau grupuri. a. Numai varianta A si varianta B. c. Numai varianta B si varianta C. 73 b. Numai varianta A si varianta C. d. Toate variantele, adic A si B si C.

3. Funcia SUM determin: a. b. c. d. Deviaia standard a valorilor memorate ntr-un cmp Suma valorilor memorate ntr-un cmp. Numrul total al valorilor depuse ntr-un cmp. Diferena valorilor memorate intr-un cmp.

4. Intr-o interogare de tip total funcia COUNT determin: a. b. c. d. Suma valorilor memorate intr-un cmp in interiorul unei grupri Media valorilor depuse ntr-un cmp. Numrul valorilor depuse ntr-un cmp n interiorul unei grupri. Diferena valorilor memorate intr-un cmp.

5. Care este cea mai important activitate n proiectarea unei aplicaii n cadrul sistemelor de gestiune ale bazelor de date (SGBD)? a. b. c. d. Definirea secvenelor din programul principal. Definirea interogrilor (Queries). Concepia ecranelor (Forms). Elaborarea rapoartelor asociate bazei de date sau/si interogrilor (Reports). e. Crearea bazei de date. f. Crearea etichetelor (Labels).

74

UNITATEA 6 LIMBAJUL SQL


Sintez

1. 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 RDBMSurile 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 din punct de vedere sintactic printr-o construcie SELECT FROM WHERE (pe scurt construc ie SELECT). 75

2. 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;

3. Instruc iuni 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 76

ADD jud char; 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 valoare1 [and/or 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]];

77

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!

Verificarea cunotinelor
1. SQL este acronimul pentru: a. b. c. d. Standard Query Language. Structured Query Language. Select Query Language. Specifying Queries Relations.

2. Instruciunea SQL DROP DATABASE permite: Modificarea structurii unui tabel. b. tergerea unui tabel c. tergerea unei baze de date d. Modificarea nregistrrilor.
a.

3. Care dintre urmtoarele tipuri de asocieri nu este posibil in Access: 1. Inner Join 3. Cross Join 2. Left Outer Join 4. Right Outer Join

4. Instruciunea SQL ALTER TABLE permite: a. b. c. d. Modificarea structurii unui tabel. Crearea unei baze de date Modificarea nregistrrilor. tergerea unui tabel

Aplica ii practice
I. Se consider baza de date EVIDENTA STUDENTI. S se creeze tabelul STUDENTI cu structura urmtoare: NRMAT - text(3) (numr matricol ex. 100, 101,102.) NUME - text(20) PRENUME text(20) DN - dat calendaristic (data naterii ex. 03/04/81) SCT - text(2) - (sectia ex. AA si SO) AN numeric, ntreg (anul de studiu ex. 1, 2 ,3 sau 4) BRS da/nu (bursier ex. DA, NU) 78

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 STUDENTI astfel nct s se respecte urmtoarele cerine: a) S existe studeni i din alte localit i, nu numai din Cluj-Napoca. b) S existe studeni de la ambele secii AA i SO. c) S existe studeni cu vrste mai mici de 20. d) S existe studeni n diferii ani de studiu. 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 AA sau SO. Pentru cmpul SEX valorile permise vor fi F sau M. g) S se defineasc urmtoarele 30 de interogri pentru tabela STUDENTI. Interogrile se vor salva cu numele: inter1, inter2,, inter n. II. S se afieze folosind interogrile urmtoarele informaii din baza de date STUD: 1. o list cu numele i prenumele studenilor care au domiciliul n ClujNapoca, ordonai descresctor dup numrul matricol. 2. o list cu numele i prenumele studenilor din Cluj-Napoca, ordonai cresctor dup vrst. 3. o list cu numele studenilor bursieri din Cluj-Napoca. 4. o list cu numele studenilor a cror vrst este mai mare de 20 de ani i nu sunt bursieri. 5. o list cu numele studentelor bursiere care au domiciliul n ClujNapoca. 6. o list cu numele studenilor de sex masculin care au vrsta de 21 de ani i nu sunt bursieri. 7. o list cu numele studenilor nscui dup data de 03/06/88. 8. o list cu numele i localitatea studenilor care nu domiciliaz n ClujNapoca, ordonai dup cmpul secie. 9. lista studentelor de la secia SO. 10. lista studenilor (de sex masculin) de la sec ia AA. 11. o list cu numele studenilor (de sex masculin) de la SO care nu sunt bursieri. 12. o list cu numele studentelor de la SO ordonate descresctor dup vrst. 79

13. lista studenilor care nu au domiciliul n judeul Cluj i nu sunt bursieri, ordonai alfabetic dup nume. 14. lista studentelor fr burs din anul 2 de la secia SO. 15. lista studenilor bursieri, de sex masculin, din anul 2, de la sec ia SO, care domiciliaz n Cluj-Napoca. 16. lista studenilor de la ambele secii care nu sunt n anul 2. 17. lista cu numele studenilor bursieri de la secia SO din anul 2 care au numrul matricol mai mare dect 102. 18. Numele, prenumele studenilor cu vrsta cuprins ntre 20 i 25 de ani; 19. Studenii care locuiesc n oraele a cror denumire ncepe cu litere C. 20. Studenii a cror nume ncepe cu litera D; 21. Studenii din judeele a cror indicativ ncepe cu litera B; 22. Toate nregistrrile din baza de date; 23. Studenii din judeele SB, CJ, MM. 24. Studenii grupai dup cmpul media; 25. Media minim; 26. Numele i prenumele studenilor cu media cea mai mic; 27. Media maxim; 28. Numele i prenumele studenilor cu media cea mai mare; 29. Media aritmetic a mediilor; 30. Numrul total de studeni; 31. Vrsta medie, minim i maxim a studenilor; 32. Numrul studenilor bursieri i numrul studenilor nebursieri; 33. Numrul studenilor bursieri; 34. Numrul studenilor nebursieri; 35. Numrul studenilor bursieri/nebursieri pe secii; 36. Numrul studenilor din fiecare jude; 37. Lista localitilor; 38. Numrul studenilor din fiecare jude - reparti ia pe ora e; 39. Numrul de fete i numrul de biei; 40. Repartiia studenilor pe secii/an de studiu; 41. Media mediilor pe secii/an de studiu; 42. Repartiia studen ilor n funcie de vrsta; 43. Lista studenilor dint-un anumit jude. Indicativul judeului se va introduce ca i parametru. 44. Lista studenilor dintr-un anumit an de studiu. Anul de studiu se va introduce ca si parametru. 45. Lista studenilor dintr-o secie i dintr-un anumit an de studiu. Secia si anul se vor introduce ca i parametrii. 46. Lista studenilor cu vrsta cuprins ntre 18-20 ani. Se va folosi parametrii. 47. Numele studentului care are un anumit numr de telefon. Numrul de telefon se va introduce ca parametru. 80

48. Repartiia studenilor pe secii/an folosind Crosstab Query. 49. Repartiia studenilor pe jude e/localit i folosind Crosstab Query. 50. Repartiia studenilor n funcie de medie/secie. III. S se creeze un tabel cu numele Studeni_AA, pe baza tabelului Studenti, folosind interogrile Make Table. Tabelul va conine urmtoarele date referitoare la studenii din secia AA: nrmatr (numr matricol), nume, prenume), dn (data naterii) i media. IV. S se creeze un tabel cu numele Copie care s conin toate nregistrrile din tabelul Studenti. V. S se tearg din tabelul Studenti persoanele care sunt n anul 4 i au media mai mare ca 5. VI. S se tearg din tabelul Copie studenii din secia AA, 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 10% pentru acei studeni din secia SO, an 2 care au media <=8.50.

Sumar
Intr-o baz de date pot exista tabele independente sau tabele legate ntre ele. 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 (nu este condi ie obligatorie), tip de date i mrime. n Access exist trei tipuri de rela ii ntre tabele. Relaia One to One - fiecrei nregistrri din tabelul A i corespunde o singur nregistrare n tabelul B, i invers. Relaia One to Many - o nregistrare din tabelul A poate avea mai multe nregistrri asociate n tabelul B, i invers. Relaia Many to Many unei nregistrri din tabelul A i sunt asociate mai multe nregistrri n tabelul B, i invers. Integritatea reveren ial: un set de reguli care protejeaz datele prin stabilirea de restricii pentru adugarea i tergerea de nregistrri din tabelele relaionate. Asocierea (Join) determin modul n care legtura dintre dou tabele afecteaz rezultatul unei interogri care con ine informa ii din ambele tabele. Interogrile sunt obiectele bazei de date prin intermediul crora utilizatorul poate extrage informa ii din tabele. Crearea interogrilor se realizeaz folosind o gril de proiectare n cadrul creia sunt adugate tabele i cmpuri. Pe baza informaiilor introduse n gril programul ACCESS genereaz o instruciune SQL (Structured Query Language). SQL este limbajul standard de interogare al bazelor de date relaionale. 81

Sarcini i teme ce vor fi notate


Studierea de ctre studeni a materialului teoretic aferent modulului, cuprins n suportul curs i n bibliografia suplimentar indicat. Participarea la aplicaiile practice, teme de laborator; Lucrarea practic nr. 2.

Lucrarea practic 2 (LP2)


I. S se creeze o baza de date avnd denumirea HOTEL. S se copieze n aceast baz de date tabelul InfoClienti creat in cadrul Lucrrii Practice 1. S se adauge un nou tabel - Rezervari care s con in date referitoare la rezervrile camerelor unui hotel. Structura tabelului Rezervari este urmtoarea: RezervareID AutoNumber; ClientID numeric, Long Integer; DataRezervare data calendaristica; DataSosire data calendaristic; DataPlecare data calendaristic; NumarCamere numeric, ntreg; NumarAdul i numeric, ntreg; NumarCopii numeric, ntreg; TipCamer text 15 caractere; Status_anulare yes/no. II. S se introduc urmtoarele reguli de validare: a. Cmpul de date TipCamera s permit introducerea urmtoarelor valori: single, double, apartment, suite, apartament de lux. Valorile vor fi selectate dintr-o list (Lookup). b. Cmpurile DataRezervare, DataSosire i DataPlecare s permit introducerea unor date calendaristice cuprinse ntre 1/1/2007 i 12/31/2007. III. S se stabileasc cheia primar pentru tabelul rezervri. IV. S se creeze rela iile (legturile) dintre cele dou tabele i s se for eze integritatea referen ial. V. S se adauge 20 de rezervri, respectndu-se urmtoarele condi ii: fiecare client din tabelul InfoClien i s aib cel pu in o rezervare i n fiecare lun a anului (2007) s existe cel pu in o rezervare. S existe rezervri pentru fiecare tip de camer. VI. S se defineasc urmtoarele interogri pentru baza de date HOTEL. Interogrile se vor salva cu numele: inter1, inter2,, inter n.

82

1. o list cu numele, prenumele i numrul de telefon al clien ilor din jude ul Cluj, ordonat cresctor dup cmpul nume. 2. o list cu numele i localitatea clien ilor care nu domiciliaz n jude ul Cluj, ordonai cresctor dup cmpul localitate. 3. o list cu numele, prenumele clien ilor, data sosirii i data plecrii pentru acei clien i care au rezervat camere de tip Double. 4. o list cu numele i prenumele clien ilor (concatenate intr-un singur cmp), ordonat cresctor. 5. o list cu adresele de coresponden ale clien ilor. Se va concatena ntrun singur cmp adresa, localitatea i jude ul. 6. clien ii a cror nume ncepe cu litera P; 7. clien ii a cror nume ncepe cu litera R si este format din maxim 4 caractere; 8. numele si prenumele clien ilor care trebuiau s soseasc ntre 1 decembrie i 31 decembrie; 9. o list cu numele, prenumele clien ilor i numrul de zile pentru care au fcut rezervarea. 10. numele i prenumele clien ilor care au rezervat camere pentru o perioad cuprins ntre 3 i 5 zile. 11. o list cu numele i prenumele clien ilor de sex masculin. 12. numele si prenumele clien ilor nscu i n anul 1985. 13. numele si prenumele clien ilor nscu i n luna octombrie. 14. lista clien ilor care au fcut rezervarea nainte de luna mai 2007 sau dup luna octombrie 2007. 15. o list cu numele, prenumele i vrsta clien ilor. 16. numele, prenumele, ziua, luna, anul na terii, data na terii. 17. lista clien ilor romni dint-un anumit jude. Indicativul judeului se va introduce ca i parametru. 18. lista clien ilor al cror nume ncepe cu o anumit liter. Litera se va introduce ca si parametru. 19. Vrsta medie, minim i maxim a clien ilor. 20. Numrul clien ilor strini. 21. Numrul de clien i din fiecare tar. 22. Numrul clien ilor din Romnia. 23. Numrul rezervrilor anulate. 24. Perioada medie pentru care s-au fcut rezervri. 25. Numrul de rezervri pentru fiecare tip de camer. VII. S se creeze un nou tabel cu numele CHKINN_info, pe baza datelor din tabelul Rezervri folosind interogrile Make Table. Tabelul va conine urmtoarele cmpuri RezervareID, DataSosire, DataPlecare, NumarAdul i i NumrCopii. 83

VIII. S se creeze un tabel cu numele Copie care s conin toate nregistrrile din tabelul Rezervri. IX. S se tearg din tabelul Copie toate rezervrile neconfirmate. X. S se tearg din tabelul Copie rezervrile care au fost fcute n luna august. XI. In tabelul Copie s se dubleze numrul de camere rezervate pentru tipul de camera Apartment. Comprimai (arhivai) baza de date HOTEL cu utilitarul WinRAR i transmitei arhiva pe email la adresa veronica.rus@tbs.ubbcluj.ro sau pe portalul ID la adresa veronica.rus@portalid.ubbcluj.ro. Arhiva va avea numele format din numele i prenumele dumneavoastr urmat de textul LP2 (ex: pop_ana_lp2). n subiectul mesajului introduce i numele arhivei. Predarea lucrrii se face conform specificaiilor din seciunea Organizarea temelor n cadrul cursului, partea 1 a materialului. Bibliografia modulului 1. Avram-Nichi, R., Ghi oiu, N., et al., Elemente de baze de date i programare aplicate n economie, Ed. Risoprint, Cluj-Napoca, 2007. 2. Dollinger, Robert - Baze de date, Universitatea Tehnic Cluj-Napoca, 1994. 3. Harkins, S.S., Hansen, K., Gerhart, T., Utilizare Microsoft Access 2000, Teora, Bucureti, 1999. 4. Kovcs, Sndor, Access 2000 Implementarea bazelor de date, Editura Albastr, Cluj-Napoca, 2003. 5. Nstase, P., Mihai, F., Brbulescu, B., ova, R.A., Stanciu, A., Covrig, L., Baze de date n Microsoft Access 2000, Teora, Bucureti, 1999. 6. Teodorescu Alexandru, Lecii de Access, Editura Albastr, ClujNapoca, 2002. 7. Mediul Internet.

84

Modulul III
Unitatea 7. Formulare Unitatea 8. Rapoarte Scop i obiective Scop Acest modul urmre te familiarizarea studen ilor cu obiectele de tip formular i raport. Cursan ii vor nv a cum s creeze ecrane pentru introducerea datelor, cum s foloseasc ecranele pentru a vizualiza nregistrrile i cum s elaboreze situa ii de ie ire (rapoarte) n Access. Obiective Precizarea rolului ecranelor in vizualizarea si/sau modificarea datelor; Proiectarea formularelor n Access; Crearea subformularelor; Utilizarea controalelor; Precizarea rolului rapoartelor n cadrul sistemelor informatice; Proiectarea rapoartelor folosind Microsoft Access 2000; Sortarea i a gruparea datele n cadrul rapoartelor; Combinarea rapoartele (Rapoarte/Subrapoarte). Concepte de baz: formulare, cutii cu text, etichete, liste combinate, butoane radio, butoane de validare , butoane de comand, ferestre de dialog, rapoarte, gruparea datelor, sortarea datelor, controale.

85

UNITATEA 7 FORMULARE
Sintez 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.

4. Afiarea de mesaje formularele pot furniza informaii privind modul n care 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 cinci pri (zone): antetul de formular, antetul de pagin, zona de detaliu, subsolul de pagin i subsolul de formular.

86

1. 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. 1.1. Crearea automat a unui formular n fereastra Database se activeaz butonul New, pe ecran aprnd 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 (sau interogarea) 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 moduri este modul columnar pe care l vom utiliza i noi, mod n care datele sunt afiate pe coloane. Se poate 87

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.

1.2. Crearea formularului n fereastra de lucru 1. n fereastra Database se activeaz butonul New, pe ecran aprnd fereastra New Form.

2. Dintre opiunile disponibile se va alege Design View. n partea de jos a ferestrei New Form prin utilizarea listei derulante se va alege tabela pentru care se va crea noul formular. Apoi se activeaz OK.
Trusa cu instrumente

Lista cmpurilor Fereastra de proiectare a formularului

88

Pe ecran va aprea fereastra de proiectare a formularului, lista cmpurilor (Field List) i trusa cu instrumente (vezi imaginea anterioar). Principale controale care pot fi folosite n cadrul formularelor sunt: Etichetele - Label : obiecte care afieaz date de tip text, sunt folosite pentru descrieri. Casete cu text -Text Box: permit afiarea datelor din tabele, introducerea i editarea acestora. Butoane de comanda - Command button: butoane care au asociate o serie de aciuni. Casete de validare - Check Box: au doua stri Off si On Butoane de opiune - Option button se creeaz cu ajutorul lor grupuri de butoane de op iune. Utilizatorul nu se poate selecta dect un singur buton din cadrul grupului (o singur op iune), la un moment dat. Liste - List Box: afieaz o list de elemente Liste ascunse Combo Box: obiecte combinate format dintr-o caseta de text i o lista. 3. Zona de antet i subsol de formular se va adauga din meniul View op iunea Form Header/Footer. n antetul de formular se poate introduce un text prin intermediul obiectului Label. Dac formularele vor fi listate la imprimant se poate aduga i un antet i un subsol de pagin. n subsolul de pagin se poate introduce data curenta (Insert->Date and Time), numrul de pagin (Insert->Page Number), etc. 4. Cu ajutorul mouse-ului (Click+Ctrl) se selecteaz cmpurile care vor intra n componen a formularului. Prin drag-and-drop se vor pozi iona cmpurile selectate n zona Detail a formularului.

5. Foarmatarea formularului Format->AutoFormat; 6. Salvarea formularului - File->Save; 7. Vizualizarea formularului: View->Form View. 1.3. 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 89

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. 1.4. 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. O alt modalitate de creare a formularelor combinate: se creeaz cele dou formulare; se deschide formularul principal n Design View; din trusa de instrumente se adaug obiectul subform/subreport( ); se parcurg cei trei pa i ai Wizard-ului (dup cum se poate vedea n imaginile urmtoare). 90

91

1.5. Fereastra cu propriet ile obiectelor: poate fi activat pe ecran din meniul View->Properties.

Verificarea cunotinelor
1. Care sunt zonele importante ale unui formular? 2. Ce este un subformular? 3. Care sunt etapele crerii unui subformular? 4. Care sunt tipurile de controale care pot fi adugate intr-un formular? 5. Formularele construite in cadrul unei baze de date permit: a) Afiarea i editarea datelor; b) Introducerea datelor; c) Controlul operaiilor aplicaiei folosind comenzile Macro. 6. Care este cea mai simpla modalitate de creare a formularelor? a) Op iunea AutoForm din meniul Insert; b) Create Form by using Wizard; c) Create Form in Design View.

92

Aplica ii practice
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: a) Crearea tabelelor FIRMA i FACTURA. b) S se defineasc cheile primare pentru cele dou tabele (CODF, respectiv, NRF). c) S se creeze relaia de tipul One-to-Many ntre cele dou tabele. d) S se creeze prin intermediul wizard-ului un formular cu numele WFIRMA corespunztor tabelei FIRMA, de tip columnar i folosind stilul standard. S se adauge formularului eticheta - FEREASTRA INTRODUCERE DATE FIRMA. e) S se construiasc prin intermediul wizard-ului subformularul corespunztor tabelei FACTURA, de tip columnar i folosind stilul standard. S se adauge formularului eticheta - FEREASTRA INTRODUCERE DATE FACTUR. f) S se creeze un nou formular numit WWFIRMA care s conin un formular principal - ecranul WFIRMA i un subformular WFACTURA. g) S se verifice legtura dintre tabele, proprietile Link Child Fields i Link Master Fields.

93

UNITATEA 8 RAPOARTE
Sintez 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 obiectul 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.

94

1. Crearea rapoartelor
Modul de creare a rapoartelor este asemntor cu cel de creare a formularelor. Controalele care apar n corpul rapoartelor sunt 3 feluri: independente, dependente i calculate. n cadrul rapoartelor pot fi adugate etichete, csu e cu text, linii, subrapoarte, butoane de comand, etc. Cmpurile calculate: Se introduc n subsolul de grup (Group Footer) sau n subsolul raportului (Report Footer); Se introduc cu ajutorul obiectului Text Box; Sintaxa: =functie([camp]) 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 intrumente (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 95

tabelului, redimensionarea, deplasarea i modificarea acestora se fac ntr-o manier asemntoare ca i la formulare.

2. 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 implicit 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. 96

Pentru introducerea antetului de grup se va introduce n zona Group Properties - Group Header:Yes, iar pentru introducerea subsolului de grup Group Header:Yes.

3. 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 substitua ii (ca i ansamblul formular principal - subformular). Modul de lucru este asemntor cu cel de la formulare/subformulare.

Verificarea cunotinelor
1. Ce sunt rapoartele? 2. Care dintre operaiile de mai jos nu este caracteristic elaborrii rapoartelor? a) b) c) d) Gruparea datelor; Inserarea unui IF nlnuit; Numerotarea paginilor; Sintetizarea datelor.

3. Cmpurile calculate pot fi introduse ntr-un raport n: A. B. C. D. E. F. G. subsolul paginii antetul paginii antetul raportului subsolul raportului antetul de grup subsolul de grup n zona Detail (corpul propriu zis al raportului) b) Variantele B, C i D. d) Varianta G.

a) Variantele A, B i C. c) Variantele C, D, E sau F.

4. Pentru introducerea unor cmpuri calculate n cadrul rapoartelor se folosesc: a) b) c) d) Etichete (Label) Csu e de text (text box) Butoane radio (radio buttons) Csu e de validare (check box).

5. Gruparea datelor se face prin intermediul op iunii: a) b) c) d) Relationships din meniul Toos Sorting and grouping din meniul View Field List din meniul View Group din meniul format. 97

Aplica ii practice
1. 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: I. II. S se introduc 7 nregistrri cu diferite persoane din orae distincte. 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 S se utilizeze ambele moduri de lucru, Design View i Instrumentul wizard. S se realizeze un raport cu numele Raport_10 care s aib in componen un subraport. S se observe asemnrile dintre subraport i subformular. S se creeze un raport Raport_11 care s conin toate informaiile prezentate de Raport_1,, Raport_9.

III. IV. V. VI.

Sumar
Formularul este un obiect care permite introducerea datelor, afiarea acestora ntr-o manier atractiv i prietenoas sau controlul ntregii aplicaii. Formularul constituie interfaa dintre utilizator i datele stocate n baza de date. Formularele simplific vizualizarea, introducerea i modificarea datelor. Prin intermediul formularelor se pot realiza diverse operaii cum ar fi: sortarea, cutarea, actualizarea unor date. Rapoartele sunt obinute pe baza prelucrrii datelor din tabele i sunt create pentru a fi afi ate pe ecran sau tiprite la imprimant. 98

Utilizatorul folose te formularele pentru a introduce datele de intrare intr-o aplica ie informatica i rapoartele pentru a genera situa ii de ie ire. n cadrul rapoartelor datele pot fi ordonate i grupate dup diverse criterii iar la nivelul grupurilor se pot efectua diverse calcule. n cadrul formularelor i a rapoartelor pot fi adugate diverse controale: etichete, cutii cu text, liste, butoane de comand, casete de validare, butoane radio, liste ascunse, etc.

Sarcini i teme ce vor fi notate


Studierea de ctre studeni a materialului teoretic aferent modulului, cuprins n suportul curs i n bibliografia suplimentar indicat. Participarea la aplicaiile practice, teme de laborator; Lucrarea practic nr. 3.

Lucrarea practic 3 (LP3)


Deschide i baza de date Hotel, creat n cadrul Lucrrii practice 2. 1. S se creeze un formular pentru tabelul InfoClienti folosind op iunea AutoForm. Formularul va fi salvat cu numele EcranClienti. 2. S se construiasc prin intermediul wizard-ului formularul corespunztor tabelei Rezervri, de tip tabular i folosind stilul stone. S se adauge formularului eticheta - FEREASTRA INTRODUCERE DATE REZERVRI. Formularul va fi salvat cu denumirea EcranRezervri. 3. S se creeze urmtorul formular principal: i s se salveze cu denumirea Meniu

99

La selectarea op iunii Vizualizare/Modificare clienti se va deschide formularul EcranClienti, la selectarea op iunii Vizualizare/Modificare rezervri se va deschide formularul EcranRezervri iar la selec ia celui de-al treilea buton se va vizualiza interogarea 25. Ultimul buton va avea ca efect nchiderea formularului. 4. S se realizeze rapoarte prin intermediul crora s se afieze: a) Raport_1 - numele i prenumele si numrul de telefon al clien ilor. Raportul va fi creat folosind op iunea AutoReport; b) Raport_2 - numele, prenumele, adresa clien ilor, localitatea, jude ul pentru clien ii romni. Raportul va fi creat prin intermediul wizard-ului, datele vor fi grupate dup cmpul judet, si vor fi ordonate alfabetic dup cmpul nume. Alege i pentru acest raport Layout-ul Tabular, orientarea Landscape i stilul Standard. c) Raport_3 numele, prenumele i adresa clien ilor sub forma unor etichete po tale. d) S se realizeze un raport cu numele Raport_4 cu datele despre clien i care s aib in componen un subraport creat pe baza datelor din tabelul rezervri. e) Raport_5 numele, prenumele clientului, data sosirii, data plecrii, numrul de nop i. f) Raport_6 lista rezervrilor grupat dup tipul de camer. S se calculeze pentru fiecare tip de camer numrul de rezervri, numrul minim i maxim de nop i pentru care s-au fcut rezervri. n subsolul raportului s se afi eze numrul total de camere rezervate, numrul de total de rezervri. S se adauge n antetul raportului o imagine cu un hotel. III. Comprimai baza de date cu utilitarul WinRAR (pute i s l descrca i gratuit de pe Internet) i transmite-i arhiva prin email la adresa sau pe portalul ID la adresa veronica.rus@tbs.ubbcluj.ro veronica.rus@portalid.ubbcluj.ro . Arhiva va avea numele format din numele i prenumele dumneavoastr urmat de textul LP3 (ex: pop_ana_lp3). n subiectul mesajului introduce i numele arhivei. Predarea lucrrii se face conform specificaiilor din seciunea Organizarea temelor n cadrul cursului, partea 1 a materialului. Bibliografia modulului 1. Avram-Nichi, R., Ghi oiu, N., et al., Elemente de baze de date i programare aplicate n economie, Ed. Risoprint, Cluj-Napoca, 2007. 2. Dollinger, Robert - Baze de date, Universitatea Tehnic Cluj-Napoca, 1994. 100

3. Harkins, S.S., Hansen, K., Gerhart, T., Utilizare Microsoft Access 2000, Teora, Bucureti, 1999. 4. Kovcs, Sndor, Access 2000 Implementarea bazelor de date, Editura Albastr, Cluj-Napoca, 2003. 5. Nstase, P., Mihai, F., Brbulescu, B., ova, R.A., Stanciu, A., Covrig, L., Baze de date n Microsoft Access 2000, Teora, Bucureti, 1999. 6. Teodorescu Alexandru, Lecii de Access, Editura Albastr, ClujNapoca, 2002. 7. Mediul Internet.

101

Modulul IV
Unitatea 9. Macro Unitatea 10. Module Scop i obiective Scop Acest modul urmre te familiarizarea studen ilor cu obiectele de tip macro i module. Cursan ii vor nv a cum s creeze comenzi macro, cum s foloseasc comenzile macro n cadrul formularelor i cum creeze proceduri simple n Visual Basic prin intermediul modulelor. Obiective Identificarea aciunilor care pot fi efectuate prin intermediul comenzilor Macro; Crearea i rularea comenzilor Macro n Microsoft Access 2000; Exportul i importul datelor; Publicarea datele pe Internet prin intermediul obiectelor Pages; Editarea modulelor n Microsoft Access 2000; Prezentarea principalelor elemente ale limbajului Visual Basic; Utilizarea instruciunilor pentru introducerea i afiarea datelor, Utilizarea instruciunilor IF, While, Select, Do, For n cadrul modulelor. Concepte de baz: comenzi Macro,Module, import, export, Pagini web, Visual Basic, variabile, funcii, instruciuni secveniale.

102

UNITATEA 9

Macrouri
Sintez 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 103

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,)

1. 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

2. 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). 104

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

3. Exportul datelor
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).

105

4. 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 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

106

Verificarea cunotinelor
1. Ce nelegei prin MACRO: a. un obiect care conine o definiie structurat a uneia sau mai multor aciuni; b. un obiect care include un fiier HTML; c. un obiect care conine proceduri definite de utilizator; d. un obiect proiectat pentru a fi tiprit pe plicuri cu corespondent. 2. 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 3. Se va utiliza exportul de date din mediul Access n: 1) Microsoft Word 2000 2) Microsoft Excel 2000 3) HTML - document internet 4. 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.

107

UNITATEA 10 MODULE
Sintez 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.

108

Procedurile i funciile pot fi asamblate n module, n funcie de cerinele programatorului. O procedur sau o funcie este creat pentru a fi apelat dintrun obiect al bazei de date. 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.

1. 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 109

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.

2. 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 :

110

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

3. Variabile locale i variabile global


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. 111

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

112

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

4. Programarea 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

113

1. Instruciunea IF IF condiie THEN ELSE secvena_de_instruciuni_1 secvena_de_instruciuni_2

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 instruc iuni 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.

4. Instruciunea DOLOOP Varianta a) DO WHILE|UNTIL condiie secvena_de_instruciuni 114

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.

Verificarea cunotinelor
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 115

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 VI. Ce nelegei prin modul (n contextul programrii obiectuale n aplicaiile pentru bazele de date)? a) Un set de instruciuni scrise n limbaj de asamblare; b) O colecie de una sau mai multe proceduri; c) O list de aciuni coninut ntr-un macro; d) Toate variantele de mai sus.

Sumar
Automatizare a aplicaiilor realizate n Access: prin utilizarea limbajului Visual Basic for Applications VBA sau prin utilizarea comenzilor MACRO. Comanda Macro (MACRO): un obiect care conine o definiie structurat a uneia sau mai multor aciuni pe care Access le realizeaz ca rspuns la un anumit eveniment. Modulul (MODULE): un obiect care conine proceduri definite de utilizator i scrise n Visual Basic.

116

Visual Basic for Applications (VBA) este un limbaj de programare orientat pe obiecte i pe evenimente. Obiectele Access 2000 sunt caracterizate prin metode i proprieti.

Sarcini i teme ce vor fi notate


Studierea de ctre studeni a materialului teoretic aferent modulului, cuprins n suportul curs i n bibliografia suplimentar indicat. Participarea la aplicaiile practice, teme de laborator; Lucrarea practic nr. 4.

Lucrarea practic 4 (LP4)


I. S se construiasc baza de date ASIGURARI. Sa se creeze tabelul CONTRACTE cu urmtoarele cmpuri: NR_CONTRACT numeric, intreg NUME_PREN text, 30 TIP_ASIGURARE text, 1 DATA_CONTRACT - data calendaristica PERIOADA numeric, intreg perioada de asigurare (exprimat in ani) OBIECT text, 30 obiectul asigurrii VALOARE_A - numeric, long integer valoare asigurat (exprimat in USD) PRIMA_L - numeric, long integer prima lunar a) Sa se stabileasc cheia primara. b) S se introduc urmtoarea regul de validare: n cmpul TIP_ASIGURARE pot fi introduse doar valorile V (asigurare de via ), L (locuin), B(bunuri). c) Introducei 7 nregistrri. II. S se creeze o interogare cu ajutorul creia s se afieze numrul contractului, numele clientului, tipul i valoarea asigurat pentru toate asigurrile de locuine ncheiate ntre 1 februarie 2007 i 20 ianuarie 2008. III. S se majoreze cu 2% primele lunare pentru asigurrile de locuin . IV. S se elaboreze un raport cu numele Lista_contracte care s conin urmtoarele cmpuri: nume_pren, data_contract, valoare_a i prima_l. Sa se calculeze numrul total de contracte, prima lunar medie, totalul valorilor asigurate si valoarea totala a primelor lunare de asigurare. V. S se realizeze o machet (ecran, formular) care s permit introducerea datelor in tabelul ASIGURRI. Sa se adauge doua butoane de comanda cu urmtoarele etichete: LISTA CONTRACTE si IESIRE. Ac ionarea primului

117

buton va avea ca efect afi area raportul creat la punctul IV iar acionarea butonului IESIRE va avea ca efect nchiderea formularului. VI. Comprimai baza de date cu utilitarul WinRAR (pute i s l descrca i gratuit de pe Internet) i trimite i arhiva la adresa veronica.rus@tbs.ubbcluj.ro sau pe portalul ID la adresa veronica.rus@portalid.ubbcluj.ro. Arhiva va avea numele format din numele i prenumele dumneavoastr urmat de textul LP3 (ex: pop_ana_lp3). n subiectul mesajului introduce i numele arhivei. Predarea lucrrii se face conform specificaiilor din seciunea Organizarea temelor n cadrul cursului, partea 1 a materialului. Bibliografia modulului 1. Avram-Nichi, R., Ghi oiu, N., et al., Elemente de baze de date i programare aplicate n economie, Ed. Risoprint, Cluj-Napoca, 2007. 2. Dollinger, Robert - Baze de date, Universitatea Tehnic Cluj-Napoca, 1994. 3. Harkins, S.S., Hansen, K., Gerhart, T., Utilizare Microsoft Access 2000, Teora, Bucureti, 1999. 4. Kovcs, Sndor, Access 2000 Implementarea bazelor de date, Editura Albastr, Cluj-Napoca, 2003. 5. Nstase, P., Mihai, F., Brbulescu, B., ova, R.A., Stanciu, A., Covrig, L., Baze de date n Microsoft Access 2000, Teora, Bucureti, 1999. 6. Teodorescu Alexandru, Lecii de Access, Editura Albastr, ClujNapoca, 2002. 7. Mediul Internet.

118

3. Anexe Glosar de termeni 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. Un obiect este o parte component a unei baze de date. Un tabel este o colecie de date specifice unui anumit subiect, stocate pe linii i coloane. Relaia este coresponden a dintre cmpurile cheie a dou tabele. Cmpul reprezint o coloan n cadrul tabelului. Fiecare cmp are asociat un tip de date. O nregistrare reprezint un rnd n cadrul tabelului. Design View pune la dispozi ie instrumente pentru crearea (proiectarea) obiectelor. Datasheet View permite actualizarea, editarea, tergerea nregistrrilor din tabel. Bibliografia cursului: 1. Connolly, Thomas, Baze de date: proiectare, implementare, gestionare, Editura Teora, Bucureti, 2001. 2. Date, C. J. (2005), Baze de date, Editura Plus, Bucureti. 3. Date, C.J. (1985), An introduction to database systems, Vol.II, Edison Wessley Publishing Co., USA (disponibil la sala de lectura) 4. Date, C.J. (1990), An introduction to database systems, Vol.I, Edison Wessley Publishing Co., USA (disponibil la sala de lectura) 5. Dollinger, Robert, Andron, Luciana - Baze de date i gestiunea tranzaciilor, Editura Albastr, Cluj-Napoca, 2004. 6. Groh, R. M., Stockman C. J. et. all (2007), Access 2007 Bible, Wiley Publishing, Inc., USA. 7. Harkins, S. S., Hansen, K., Gerhart, T., Utilizare Microsoft Access 2000, Teora, Bucureti, 1999. (disponibil la sala de lectura) 8. Nstase, P., Mihai, F., Brbulescu, B., ova, R.A., Stanciu, A., Covrig, L., Baze de date n Microsoft Access 2000, Teora, Bucureti, 1999. (disponibil la sala de lectura) 9. Powell, G. (2006), Beginning Database Design, Wiley Publishing, Inc., USA. 10. Sndor, Kovcs, Access 2000 Implementarea bazelor de date, Editura Albastr, ClujNapoca, 2003. 11. Waine, H. (1992), Databases for Businees Users, Pitman Publishing London. (biblioteca Facultii de Business) 12. Access 2000 tutorial, disponibil online la http://www.fgcu.edu/SUPPORT/OFFICE2000/ACCESS/ 13. Microsoft, http://www.microsoft.com/romania/office/access/default.mspx.

119

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