Baze+de+date

  • Uploaded by: Ral Dy
  • 0
  • 0
  • January 2021
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Baze+de+date as PDF for free.

More details

  • Words: 28,773
  • Pages: 118
Loading documents preview...
Universitatea Babeş-Bolyai Cluj-Napoca Centrul de Formare Continuă şi Învăţământ la Distanţă

Facultatea de Business

SUPORT DE CURS

BAZE DE DATE

ANUL III, semestrul II Cluj-Napoca 2009 BAZE DE DATE 1

1. Informaţii generale Date de identificare a cursului Date de contact - titular curs Nume: Lector.univ. dr. Mihaela Tutunea Birou: Facultatea de Business, Str.Horea nr.7, etaj I, cam.122 Telefon: 0264599170, Fax: 0264 - 590110 Email: [email protected] Consultaţii: luni, marţi 14.00 15.00, cam 122 sau S3 răspunsuri la e-mail, max. 48 ore

Date de identificare curs şi contact tutori Denumire curs: BAZE DE DATE Cod: An III, Semestrul: II Tip curs: obligatoriu Pagina web: www.tbs.ubbcluj.ro Tutori: asist. univ. drd. Rus Veronica [email protected] Tutori: ing. drd. Muntean Alin [email protected]

Condiţionări şi cunoştinţe prerechizite: Pentru însuşirea rapidă şi eficientă a cunoştinţelor aferente acestei discipline este recomandabilă parcurgerea disciplinelor de Tehnologia Informaţiei I şi Tehnologia Informaţiei II din cadrul programului de nivel licenţă. Descrierea cursului Cursul vizează însuşirea de către studenţi a noţiunilor fundamentale legate de domeniul bazelor de date: sisteme de gestiune a bazelor de date, proiectarea bazelor de date, crearea şi manipulare bazelor de date. Competenţele dobândite prin parcurgerea acestei discipline se referă la: ™ Formarea abilităţilor de exploatare eficientă a computerelor; ™ Capacitatea de a defini şi a pune în practică noţiunile legate de baze de date; ™ Abilităţi legate de proiectarea bazelor de date si a aplicaţiilor pentru afaceri folosind Microsoft Access 2000; ™ Aptitudini de ordin practic - crearea şi manipularea obiectelor bazelor de date (tabele, interogări, formulare, rapoarte, comenzi macro şi module). Organizarea temelor în cadrul cursului Tematica cursului este structurată astfel încât să poată fi atinse obiectivele cursului, regăsite la finele cursului în competenţele dobândite de către studenţi. Cursul este structurat pe unităţi de studiu, logic succedate, cuprinzând noţiuni esenţiale ale Bazelor de dare, care trebuiesc însuşite de către studenţi; la finele fiecărei unităţi se regăsesc scurte teste de verificare a cunoştinţelor acumulate. De asemenea, la finele fiecărui modul sunt indicate lucrările practice care trebuiesc realizate de către studenţi; sunt patru lucrări, care vor fi transmise pe e-mail ([email protected]) sau pe portalul ID ([email protected]), cu specificarea clară a numelui studentului şi a numărului lucrării practice realizate (LP1, LP2, LP3, LP4 (LP - lucrare practică)). 2

Lucrările practice, se rezolvă în ordinea derulării studiului materiei, şi trebuie predate conform următoarelor planificări: Lucrare practica LP1 LP2 LP3 LP4

Termen predare 1-20 Martie 2009 21 Martie - 3 Aprilie 2009 4 Aprilie - 15 Mai 2009 16 - 21 Mai 2009

Nepredarea lor la timp, atrage după sine pierderea punctajului acordat, conform politicii de notare! Considerând natura domeniului tehnologiei informaţiei, rapiditatea upgradării acestuia şi a multitudinii de informaţii care-l caracterizează, materialul aferent cursului se va actualiza atât pe portalul ID, (https://portal.portalid.ubbcluj.ro) cât şi pe CD-urile cu materialele pentru ID. Detalierea temelor de studiu se regăseşte în calendarul cursului. Formatul şi tipul activităţilor implicate Datorită caracterului aplicativ al disciplinei, parcurgerea acestui curs necesită participarea studenţilor la cursurile şi laboratoarele programate pentru această disciplină; de asemenea, este necesar studiul individual aprofundat; în vederea fixării cunoştinţelor dobândite şi a formării unor bune abilităţi de exploatare şi aplicare practică a cunoştinţelor dobândite la cursuri şi laboratoare, sunt absolut necesare exerciţii suplimentare individuale. Metodele utilizate pe parcursul predării disciplinei sunt: expunerea interactivă bazată pe exemplificarea practică, concretă, în cadrul cursurilor, continuată cu exerciţii şi aplicaţii practice realizate în cadrul laboratoarelor, aferente temelor abordate în cursuri. Materiale bibliografice obligatorii Având în vedere multitudinea materialelor documentare aferente acestui domeniu, bibliografie obligatorie nu se impune, dar pentru eficientizarea cursului, este necesară dobândirea de către studenţi a unei baze de cunoştinţe pe care le pot acumula din bibliografia recomandată pentru fiecare unitate de studiu în parte. Materialele bibliografice se găsesc la Biblioteca Centrală Universitară, Biblioteca Fac. de Ştiinţe Economice şi Gestiunea Afacerilor Str. Teodor Mihali, Nr.58-60 sau biblioteca Fac. de Business. Pe lângă aceasta, se poate consulta orice bibliografie în format tipărit sau electronic, legată de temele abordate în cadrul cursului cât şi exploatarea aprofundată a help-ului aferent aplicaţiei MS. Access. Materialele şi instrumentele necesare pentru curs Pe lângă materialele puse la dispoziţie pe CD şi/sau în formă tipărită, studenţii vor lucra cu informaţiile disponibile (în mod gratuit) pe Internet, precum şi cu aplicaţiile realizate şi parcurse împreună cu cadrul didactic. Natura disciplinei impune utilizarea permanentă pentru prezentări şi laborator, a calculatoarelor conectate la reţeaua locală a facultăţii şi bineînţeles la Internet, cât şi a video-proiectorului. 3

Calendarul cursului În derularea acestei discipline sunt programate patru întâlniri cu studenţii, cu desfăşurarea următoare: ™ întâlnirea întâi - se vor parcurge unităţile 1, 2, 3 ™ întâlnirea a doua - se vor parcurge unităţile 4, 5, 6 ™ întâlnirea a treia - se vor parcurge unităţile 7, 8 ™ ultima întâlnire - parcurgerea unităţilor 9,10. Pentru eficientizarea acestor întâlniri, este indicat să fie parcurse în prealabil, de către studenţi, materialele aferente unităţilor studiate, pentru ca aceştia să fie capabili să ridice probleme, întrebări concrete, legate de noţiunile abordate în cursuri. Ulterior fiecărei întâlniri de curs şi laborator, studenţilor li se vor recomanda şi teme suplimentare care să ajute la clarificarea şi fixarea cunoştinţelor dobândite. Întâlnirile cu studenţii vor avea loc la sediul facultăţii, după o programare prealabil anunţată; prezentările şi aplicaţiile practice în laboratoarele de informatică ale facultăţii. Tematica cursurilor predate în cadrul acestei discipline, este divizată pe unităţi de studiu, şi cuprinde: Unitatea 1. Tematica cursului: Baze de date - Concepte de bază Implicarea studenţilor: Parcurgerea bibliografiei indicate. Exemple, întrebări, discuţii. Referinţe bibliografice: 1. Dollinger, Robert, Andron, Luciana (2004), Baze de date şi gestiunea tranzacţiilor, Editura Albastră, Cluj-Napoca, pag. 11-29. 2. Avram-Niţchi, 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 documentaţie aferentă temei, tipărită sau digitală, tutoriale, help-uri, etc.; Unitatea 2. Tematica cursului: Microsoft Access: Prezentare generală. Implicarea studenţilor: Parcurgerea bibliografiei indicate. Exerciţii practice. Referinţe bibliografice: 1. Avram-Niţchi, 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 documentaţie aferentă temei, tipărită sau digitală, tutoriale, help-uri, etc.; Unitatea 3. Tematica cursului: Tabele. Implicarea studenţilor: Parcurgerea bibliografiei indicate. Exerciţii practice. Referinţe bibliografice: 1. Avram-Niţchi, 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 tranzacţiilor, Editura Albastră, Cluj-Napoca, pag. 142-166 3. Orice documentaţie aferentă temei, tipărită sau digitală, tutoriale, help-uri, etc.; Realizarea şi predarea lucrării practice 1 (LP1)

4

Unitatea 4. Tematica cursului: Relaţii între tabele Implicarea studenţilor: Parcurgerea bibliografiei indicate. Aplicaţii practice, exemple, discuţii. Referinţe bibliografice: 1. Avram-Niţchi, R., Ghişoiu, N., et al., (2007), Elemente de baze de date şi programare aplicate în economie, Ed. Risoprint, Cluj-Napoca, pag 195-198. 2. Documentaţie aferentă temei cursului, via Internet, tutoriale, help-uri, etc. Unitatea 5. Tematica cursului: Interogări Implicarea studenţilor: Parcurgerea bibliografiei indicate. Exerciţii practice, întrebări, discuţii. Referinţe bibliografice: 1. Avram-Niţchi, 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. Sándor, Kovács (2003), Access 2000 – Implementarea bazelor de date, Editura Albastră, Cluj-Napoca. 3. Orice documentaţie tipărită sau digitală, tutoriale, etc.; Unitatea 6. Tematica cursului: Limbajul SQL Implicarea studenţilor: Parcurgerea bibliografiei indicate. Exerciţii practice, întrebări, discuţii. Referinţe bibliografice: 1. Avram-Niţchi, 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 tranzacţiilor, Editura Albastră, Cluj-Napoca, pag. 119-141. 3. Orice documentaţie aferentă temei, tipărită sau digitală, tutoriale, help-uri, etc.; Realizarea şi predarea lucrării practice 2 (LP2) Unitatea 7. Tematica cursului: Formulare Implicarea studenţilor: Parcurgerea bibliografiei indicate. Aplicaţii, exerciţii practice; teme individuale. Referinţe bibliografice: 1. Avram-Niţchi, 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 documentaţie tipărită sau digitală, help-uri şi tutoriale; Unitatea 8. Tematica cursului: Rapoarte Implicarea studenţilor: Parcurgerea bibliografiei indicate. Aplicaţii, exerciţii practice; teme individuale. Referinţe bibliografice: 1. Avram-Niţchi, 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 documentaţie tipărită sau digitală, help-uri şi tutoriale; Realizarea şi predarea lucrării practice 3 (LP3) Unitatea 9. Tematica cursului: Comenzi Macro. Comunicarea între aplicaţiile Microsoft Office. Implicarea studenţilor: Parcurgerea bibliografiei indicate. Aplicaţii, exerciţii practice. Referinţe bibliografice: 1. Orice documentaţie tipărită sau digitală, help-uri şi tutoriale; 5

Unitatea 10. Tematica cursului: Module. Implicarea studenţilor: Parcurgerea bibliografiei indicate. Exerciţii practice. Referinţe bibliografice: 1. Orice documentaţie tipărită sau digitală, help-uri şi tutoriale; Realizarea şi predarea lucrării practice 4 (LP4) Politica de evaluare şi notare Nota finală va fi compusă din: Componenta Lucrări 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 obţinute la această disciplină se vor anunţa la final, după susţinerea testului, prin comunicarea directă a notei finale, cât şi prin afişarea notelor (pe baza numărului 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 următoarele detalii de natură organizatorică: 1. Prezenţa la cursuri şi la laboratoare este indicată; 2. Plagiatul la lucrările practice se sancţionează cu pierderea punctajului acordat pentru aceste lucrări conform politicii de notare. Plagiatul la testele de verificare se sancţionează cu anularea evaluării testului şi vor fi luate în considerare şi alte sancţiuni prevăzute în regulamentele studenţeşti; (se poate ajunge până la neprimirea studentului în sesiunea de examene programată). 3. Contestaţiile vor fi făcute în maxim 24 de ore de la afişarea rezultatelor, şi se vor soluţiona în maxim 48 de ore. Contestaţiile la evaluările practice se rezolvă prin alegerea unui alt test şi rezolvarea lui în prezenţa examinatorului. Studenţii cu dizabilităţi Titularul cursului este disponibil, în limita posibilităţilor, la adaptarea conţinutului şi metodelor de transmitere a informaţiilor disciplinei în funcţie de tipul de dizabilităţi întâlnite în rândul cursanţilor. Se vor lua toate măsurile necesare în vederea facilitării accesului egal al tuturor cursanţilor la informaţie şi la activităţile didactice.

6

Strategii de studiu recomandate Este recomandată parcurgerea celor zece module, conform grupării lor pe întâlnirile programate conform calendarului cursului; Având în vedere tipologia disciplinei, multitudinea de informaţie şi caracterul preponderent practic, aplicat, trebuie pus accentul pe pregătirea individuală continuă, prin acumulare constantă a cunoştinţelor, precum şi pe realizarea de aplicaţii şi exerciţii individuale suficiente pentru dobândirea unor deprinderi în exploatarea şi aplicarea eficientă a cunoştinţelor teoretice, în practică. Numărul de ore necesare parcurgerii şi însuşirii cunoştinţelor necesare promovării acestei discipline este, în funcţie de bazele de cunoştinţe prealabile, abilităţile deja dobândite şi capacităţile fiecăruia, între 70-80 ore, concretizate în învăţarea practică, aplicată.

7

2. Suportul de curs Mo d u lu 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 9 Evidenţierea avantajelor utilizării bazelor de date; 9 Definirea bazelor de date, a sistemelor de gestiune a bazelor de date; 9 Prezentarea principalelor funcţii ale SGBD-urilor; 9 Prezentarea evoluţiei SGBD-urilor; 9 Identificarea elementelor mediului Microsoft Access 2000; 9 Utilizarea principalelor opţiuni din submeniurile sistemului Microsoft Access 2000. 9 Proiectarea structurii unei baze de date; 9 Recunoaşterea principalelor obiecte ale unei baze de date Access; 9 Crearea bazelor de date în Microsoft Access prin metodele prezentate; 9 Crearea şi lucrul cu tabelele în Microsoft Access 2000. Concepte de bază: date, integritatea datelor, redundanţa datelor, inconsistenţa datelor, partajarea datelor, sistem de gestiune a bazelor de date, bază de date, tabele, câmpuri, înregistrări, interogări, formulare, rapoarte, comenzi macro, module, pagini web, tipuri de date, chei, chei primare, chei candidat.

8

UNITATEA 1 CONCEPTE GENERALE Sinteză

1. Sisteme de baze de date Un sistem de baze de date este un sistem computerizat de păstrare a înregistrărilor al cărui scop principal este să stocheze informaţiile şi să permită utilizatorului să consulte şi să actualizeze la cerere aceste informaţii [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 aplicaţie

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 păstrarea 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 aplicaţii, utilizatorii finali care accesează baza de date prin intermediul unei aplicaţii, şi administratorul BD. In domeniul bazelor de date este important să se facă o distincţie clară între noţiunile de dată şi informaţie [Dollinger&Andron, 2004]:

9

1. Datele, materia primă a sistemelor informatice, sunt „fapte culese din lumea reală pe bază de observaţii şi măsurători”. Datele pot lua mai multe forme: date alfanumerice (formate din litere, cifre şi caractere speciale), date de tip text (propoziţii ş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.

Informaţia este rezultatul interpretării datelor de către un anumit subiect şi conferă acestuia capacitatea de a lua decizii. Datele devin informaţii doar în momentul în care acestea interacţionează cu un sistem capabil să le interpreteze. Informaţia are un caracter subiectiv deoarece aceeaşi dată poate fi interpretată diferit de către subiecţi diferiţi. Informaţiile sunt date prelucrate şi prezentate într-o formă (context) care să aibă o anumită semnificaţie pentru utilizatorul final şi reprezintă ieşirile sistemului informatic. În concluzie, se poate afirma faptul că sistemele informatice prelucrează date nu informaţii.

Informaţia reprezintă produsul final al sistemelor informatice şi, în funcţie de cele patru dimensiuni, timp, conţinut, forma de prezentare şi locaţie, aceasta trebuie să îndeplinească următoarele cerinţe pentru a fi utilă: A. În funcţie de elementul timp: − să fie oportună: informaţia trebuie să fie furnizată atunci când este nevoie de ea, să fie disponibile în timp util; − să fie nouă: informaţia nouă descrie cel mai bine prezentul situaţiei sau ultima verigă a evoluţiei unui fenomen; − să fie furnizată cu o anumită frecvenţa: informaţia trebuie să fie furnizată cu un ritm care să sprijine interesele utilizatorilor; − se facă referire la o anumită perioada de timp: informaţia poate să conţină elemente care să descrie evenimente din trecut, prezent sau viitor. B. În funcţie de conţinut: − să reducă gradul de incertitudine: cu cât informaţiile fac referire mai clară asupra unui fenomen, cu atât viziunea de ansamblu şi de amănunt a decidenţilor asupra respectivului fenomen va fi mai bună şi, pe cale de consecinţă, decizia va fi luată în cunoştinţă de cauză. − să fie corectă: informaţia nu trebuie să conţină erori; trebuie să facă referiri exacte asupra oricărui fenomen fără doze de relativism. − să fie pertinentă: informaţiile trebuie să facă referire la un anumit fapt, situaţie, eveniment şi în acelaşi timp să descrie realitatea de facto; − să fie relevantă: informaţia trebuie să satisfacă nevoile de informare ale utilizatorului cu privire la o anumită situaţie. 10

− să fie necontradictorie sau noncontradictorie – informaţiile descriptive care fac referire la o anumită situaţie trebuie să aibă aceeaşi valoare de adevăr în acelaşi moment temporal. − să fie neredundantă sau nonredundantă: de obicei o informaţie face referire la un anumit aspect. Dacă aceeaşi informaţie se repetă ea nu aduce nimic nou în raport cu aspectul descris. − să fie completă: informaţia trebuie să conţină toate elementele de care utilizatorul are nevoie; − să aibă caracter succint: vor fi furnizate doar acele informaţii de care este nevoie într-o anumită situaţie decizionala; C. În funcţie de forma de prezentare informaţia trebuie respecte următoarele caracteristici: − să fie clară: informaţia trebuie să fie prezentată într-o formă uşor de înţeles; − să fie furnizată în formă detaliată sau sintetizată în funcţie de necesităţi; − să fie prezentată într-o anumită succesiune, într-o anumită ordine; − să aibă o formă adecvată necesităţilor factorului de decizie – forma de prezentare a mesajelor poate să atragă sau nu atenţia decidenţilor. Informaţia poate fi furnizată sub forma unei relatări (expuneri), sub formă numerică, grafică, sub formă de tabel etc. Informaţia poate fi prezentată pe suport de hârtie, pe ecranul computerului sau folosind alte medii. D. În funcţie de locaţie: informaţia trebuie să fie disponibilă indiferent de locaţia în care se află utilizatorul (fie disponibilă oriunde). Informaţiile solicitate la nivel strategic şi tactic au următoarele 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 următoarele caracteristici: − sunt programate, se obţin la intervale de timp bine stabilite; − 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 restrânsă şi bine definită; 11

− − − −

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? Definiţii: „Baza de date este o colecţie de date persistente, care sunt folosite de către sistemele de aplicaţii ale unei întreprinderi” [Date, 2005]. Prin persistenţă înţelegem intuitiv că datele din baza de date diferă, ca tip, de alte date efemere, cum ar fi datele de intrare, datele de ieşire, rezultatele intermediare, şi în general, orice date care sunt de natură trecătoare. 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 organizaţie independentă de natură comercială, ştiinţifică, tehnică sau de alt tip. Întreprinderea poate fi o singură persoană sau o întreagă corporaţie. Exemple: un hotel, o fabrică, o bancă, o facultate, etc. Exemple de date persistente: date despre clienţi, date despre conturi, date despre studenţi, date despre rezervări, etc. [Date, 2005]. „Baza de date este un ansamblu structurat de date coerente, fără redundanţă inutilă, astfel încât acestea pot fi prelucrate eficient de mai mulţi 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 către 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 redundanţei datelor memorate: în situaţia în care fiecare aplicaţie informatică foloseşte fişiere proprii pentru stocarea datelor sale e posibil ca aceleaşi date să apară de mai multe ori în fişiere diferite aparţinând unor aplicaţii diferite. Dacă acea dată este modificată într-un fişier aceasta trebuie modificată şi în restul fişierelor pentru a nu apărea diferenţe. Este recomandabil ca aplicaţii diferite având aceleaşi date să 12

utilizeze, în comun, un singur fişier pentru memorarea acestora. Redundanţa este proprietatea unor date de a se repeta fără să fie necesar. ¾ Evitare inconsistenţei datelor: atunci când există mai multe copii ale aceleaşi date este posibil, prin actualizarea doar a unora dintre ele, să avem valori diferite pentru una şi aceeaşi dată, ceea ce atrage după sine inconsistenţa bazei de date. ¾ Posibilitatea partajării datelor: se referă la posibilitatea utilizării în comun a datelor de către mai multe aplicaţii precum şi la posibilitatea dezvoltării unor aplicaţii 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 aplicării constrângerilor de securitate: administratorul bazei de date poate introduce verificări de autorizare a accesului la date. Se pot impune restricţii diferite pentru fiecare tip de acces la date, pentru fiecare dată, pentru fiecare utilizator ¾ Menţinerea integrităţii datelor: integritatea datelor reflectă cerinţa ca baza de date să conţină date corecte. Aceasta presupune atât consistenţa datelor cât şi plauzibilitatea lor prin introducerea unor proceduri de validare corespunzătoare. ¾ Oferă suport pentru tranzacţii: tranzacţia este o unitate logică care presupune mai multe operaţii în baza de date, in particular, o serie de operaţii 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 biţi 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: 9 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; 9 Nivelul extern: este nivelul aflat cel mai aproape de utilizatori, se referă la modul în care sunt vizualizate datele de către utilizatori; 9 Nivelul conceptual: este un nivel intermediar dintre cele două. Independenta fizică a datelor este o măsura a imunităţii aplicaţiilor faţă de modificările în structura fizică de memorare a datelor. O modificare a structurii nu va afecta aplicaţia iar modificările efectuate asupra aplicaţiei nu vor afecta structura fizica de date. Pentru ca o aplicaţie să fie independenta faţă de structura fizică de date aceasta nu trebuie să conţină referiri la tipul fişierelor 13

folosite pentru memorarea datelor, la dispozitivele de stocare a datelor sau la strategia de acces la date. Independenţa logică a datelor: se referă la imunitatea modelului propriu al fiecărui utilizator faţă de modificări în structura logică globală a bazei de date [Dollinger&Andron, 2004]. Dacă se respectă independenţa logică a datelor se poate modifica structura bazei de date prin adăugarea unor noi unităţi logice (cum ar fi câmpuri, înregistrări) şi se pot modifica relaţiile existente între ele fără a afecta utilizatorii care nu au nevoie de aceste date. Fiecare utilizator poate să folosească datele fără a influenţa alţi utilizatori care folosesc aceleaşi 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 colecţie de fişiere care conţin datele fizice, la care se adaugă diverse structuri auxiliare menite să asigure accesul operativ la date (de ex. Indecşi, pointeri, etc). Vederea internă este descrisă prin intermediul schemei interne. Nivelul conceptual: este o abstractizare a unei părţi 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 unităţile logice din BD, împreună cu legăturile dintre acestea. Unităţile logice sunt concepte asemănătoare celor cu care operează utilizatorii bazei de date. Ex: în descrierea unei bd a unui hotel se lucrează cu următoarele concepte: client, camera, rezervări, etc.; iar pentru o BD a unei facultăţi: studenţi, profesori, discipline, plan de învăţământ, note, etc. Modelul conceptual integrează viziunile tuturor utilizatorilor asupra BD şi specifică constrângerile asupra datelor (ce poate face parte din bd, ce nu poate face parte din BD). Tot în modelul conceptual sunt specificate masuri de securitate şi integritate referitoare la anumite unităţi logice. Vederea conceptuală conţine o reprezentare abstractă a întregii baze de date iar vederea internă reprezintă baza de date aşa cum este stocată intern. Vederea conceptuală este definită prin intermediul schemei conceptuale. 14

Nivelul extern se referă la percepţiile utilizatorilor individuali asupra BD. Majoritatea utilizatorilor nu sunt interesaţi 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 reprezentând o anumită porţiune a bazei de date. Fiecărui 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 parţi bine definite din BD, existând posibilitatea ascunderii anumitor parţi 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. Vârsta clienţilor este o informaţie care poate fi folosita pentru realizarea unor statistici, etc. Daca se memorează in baza de date vârsta clienţilor atunci acest câmp trebuie sa fie actualizat zilnic, de aceea se va crea o vedere in care apare definit conceptul de vârsta 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. Funcţiile pe care le îndeplineşte un SGBD sunt următoarele: 9 Definiţia datelor: Sistemul SGBD trebuie sa fie capabil sa accepte definiţiile 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. 9 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ă funcţie poate fi realizată prin intermediul Limbajelor de manipulare a datelor. 9 Optimizarea cererilor de acces; 9 Asigurarea securităţii şi integrităţii datelor; 9 Refacerea datelor îşi asigurarea accesului concurent la date; 9 Trebuie să pună la dispoziţie o funcţie pentru dicţionarul de date. Dicţionarul conţine date despre datele din BD, (denumite si metadate) – adică definiţii ale unor obiecte din sistem. 15

9 SGBD trebuie să îndeplinească toate sarcinile într-un mod cat mai eficient posibil. Scopul general al unui SGBD este de a furniza interfaţa cu utilizatorul pentru sistemul de baze de date. Interfaţa 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. Evoluţia SGBD Istoria SGBD poate fi rezumată în trei generaţii: 9 Sisteme ierarhice şi reţea; 9 Sisteme relaţionale; 9 Sisteme avansate (orientate obiect, relaţionale OO, distribuite, multimedia, etc.) În cazul modelelor ierarhice şi reţea datele sunt reprezentate la nivel de articol prin legături ierarhice sau de tip graf. Administrarea şi manipularea datelor este dificilă datorită dependenţei fizice a datelor. A doua generaţie de SGBD-uri este legată de apariţia modelelor relaţionale care tratează entităţile ca nişte relaţii. 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 alcătuite 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 apărut ca urmare a îmbinării tehnicii limbajelor orientate obiect cu a bazelor de date.

Verificarea cunoştinţelor 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 utilizării 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? 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 16

c. Solaris f. Oracle.

4. Avantajele utilizării bazelor de date sunt: A. B. C. D.

Redundantă scăzută 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 următoarele afirmaţii sunt adevărate (încercuiţi răspunsurile 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 fără 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 iniţiala în 1992. Microsoft a vândut 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: 9 sistemul de gestiune a bazelor de date este relaţional şi lucrează sub sistemul de operare Windows; 9 este deschis comunicării cu alte sisteme de gestiune a bazelor de date cum ar fi Foxpro sau Paradox; 9 este compatibil cu tehnologia ActiveX care permite realizarea aplicaţiilor client/server; 9 permite realizarea de aplicaţii complexe prin utilizarea limbajului Visual Basic; 9 permite comunicarea cu SQL Server, alt produs Microsoft care gestionează baze de date; 9 permite accesul la baze de date din mediul Internet, fiind un instrument util pentru publicarea informaţiilor în paginile Web; 9 cerinţe hardware pentru instalare: computer Pentium cu 32 MB RAM, 200 MB spaţiu pe HDD, CD-ROM, monitor SVGA. 9 este prevăzut cu ajutor (help), apelabil contextual sau la cerere; 9 conţine instrumente tip wizard care permit utilizatorului crearea facilă a unor obiecte; 9 acceptă nume lungi în definirea fişierelor; 9 permite crearea de comenzi rapide (shortcuts) în vederea accesării obiectelor Access; 9 permite crearea de grupuri de obiecte definite de utilizator în cadrul bazei de date; 9 permite setarea proprietăţilor iniţiale ale bazei de date cum ar fi titlul aplicaţiei, ataşarea de pictograme (icons), precum şi forma de afişare iniţială; 9 oferă posibilitatea creării unei copii a bazei de date şi prin utilizarea aplicaţiei Briefcase, realizarea sincronizării între diferitele copii ale bazei de date; 9 permite utilizarea instrumentului asistent (wizard) în vederea creării a mai mult de 20 de tipuri comune de aplicaţii; 9 permite utilizarea de adrese şi legături Internet; 18

9

¾ ¾ ¾

¾

conţine exemple de baze de date care contribuie la o mai bună înţelegere a modului de construire a tabelelor, formularelor, rapoartelor, interogărilor, relaţiilor dintre tabele. Baza de date Northwind are un număr mare de înregistrări şi poate fi folosită pentru a crea propriile rapoarte, formulare, interogări. permite vizualizarea legăturilor dintre tabelele bazei de date prin intermediul unei interfeţe grafice – fereastra Relationships; are integrată facilitatea de Office Assistant (ajutor animat); permite comunicarea cu celelalte aplicaţii incluse în pachetul Microsoft Office: Word, Excel, FrontPage, etc. prin operaţii 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 execuţie a programului Microsoft Access se poate face prin următoarele 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 apărea pe ecran fereastra din figura de mai jos care pune la dispoziţie următoarele opţiuni: 1. Crearea unei baze de date vide; 2. Crearea unei baze de date cu ajutorul aplicaţiei Database Wizard; 3. Deschiderea unei baze de date existente. Căsuţa din partea de jos a ferestrei indică cele mai recent utilizate baze de date. Daca baza dorită nu se afla printre acestea, executând clic pe More Files se poate naviga prin structura de directoare în căutarea fişierului dorit. 19

1

2

3

Fig. 3. Fereastra Microsoft Access.

Fereastra de bază a aplicaţiei Access are acelaşi aspect general folosit în celelalte aplicaţii Office şi conţine următoarele elemente: •

Bara de titlu (Title bar): conţine numele aplicaţiei 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 iniţială o Close (închidere) – închide fereastra (închide folderul, respectiv aplicaţia).



Bara de meniuri (Menu bar): conţine următoarele meniuri - File (fişier), Edit (editare), View (vizualizare), Insert (inserare), Tools (instrumente), Window (fereastră) şi Help (ajutor); modul de lucru a opţiunilor din meniuri se învaţă cu ajutorul exerciţiilor aplicative!



Bara (trusa) cu instrumente Database (Database Tool bar): cuprinde butoane pentru execuţia rapidă a unor acţiuni: crearea ( ) şi deschiderea ( ) bazelor de date, salvarea ( ) , tipărirea ( ), previzualizarea ( ) obiectelor din baza de date. De asemenea, aşa cum eram obişnuiţi din aplicaţiile Microsoft, avem butoane pentru lucrul cu text: Spelling – face verificarea ), Paste (lipeşte gramaticală ( ), Cut (taie ), Copy (copiază ), Undo (anulare ). Tot pe bara Database avem butoane specifice aplicaţiei care realizează sarcini imediate pentru utilizatorii care doresc să realizeze la „repezeală” componentele 20

unei aplicaţii: adăugarea unui nou obiect( unui formular . •

), crearea rapidă a

Fereastra Database: conţine, la rândui ei, următoarele elemente: - Bara de titlu: conţine numele bazei de date deschise precum şi cele trei butoane "soft": Minimize, Restore şi Close; - Bara de obiecte: este situată în partea stângă a ferestrei şi are două butoane: Objects şi Groups. Pentru a actualiza conţinutul ferestrei Database, puteţi executa clic pe orice obiect din bara. Pentru a vedea toate tabelele din baza de date, executaţi clic pe butonul Objects, situat în partea de sus a barei de obiecte, apoi executaţi clic pe Tables; pentru a vedea toate formularele trebuie să executaţi clic pe Forms, şi aşa mai departe. Dacă executaţi clic pe butonul Groups, Access va afişa o listă cu grupurile definite de utilizator. Bara meniu

Bara de titlu

Bara cu instrumente Database

Bara de titlu a ferestrei Database Bara de meniu a ferestrei Database Conţinutul ferestrei Database

Bara cu obiecte

Bara de stare

Fig. 4. Fereastra de bază a aplicaţiei Access

-

Bara de meniu a ferestrei Database are următoarele opţiuni: Open (

) – deschide un obiect în mod de afişare curent; )– deschide un obiect în mod de afişare design;

Design ( New ( Delete (

)– creează un nou obiect; ) – şterge un obiect;

Large Icons ( Small Icons (

)– afişează obiectele sub forma unor pictograme mari; ) – afişează obiectele sub forma unor pictograme mici;

21

List (

) – modul de afişare prestabilit, afişează o listă cu obiectele;

Details ( ) – listează pentru fiecare obiect mai multe informaţii: descriere, data la care a fost creat, data ultimei modificări şi tipul obiectului.

-

Bara de stare (Status bar): aşa cum spune şi numele său, ea indică starea în care ne găsim la un moment dat. De exemplu, dacă deschidem un tabel în mod proiectare ( ) în partea stângă 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 regăsirii rapide a acestora. Pentru a interacţiona cu datele cuprinse în baza de date, Access se foloseşte de obiecte: interogări, rapoartele, formularele, controale. Toate elementele din Access, cu excepţia datelor din înregistrări, sunt obiecte. Astfel, o bazã de date Access poate fi definită ca o colecţie 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 relaţional). Mai precis, un tabel este o colecţie de date "legate" între ele, care sunt stocate pe linii şi coloane. Coloanele reprezintă câmpurile (fields) care se descriu prin nume, tip şi alte atribute ale acestora. Fiecare câmp trebuie să fie legat de destinaţia tabelului din care face parte. Fiecare linie a tabelului conţine o înregistrare (record) cu date corespunzătoare coloanelor şi reprezintă o entitate completă de date. De exemplu, atunci când creaţi un tabel pentru stocarea datelor referitoare la clienţi puteţi avea câmpuri pentru cod client, nume, prenume, adresa, cod poştal, număr de telefon, data naşterii etc. În acest caz, o înregistrare va consta din toate aceste informaţii pentru o anumită persoană (client). O bază de date poate conţine unul sau mai multe tabele independente sau legate între ele. Câmpuri (fields) Cod client

Nume

Prenume

Adresa

Cod postal

Data nasterii

Oltean

Radu

Str. Mehedinti Nr. 61 3400

4/2/1968

2

Popescu

Adriana

Str. Aurel Vlaicu Nr. 4 3400

5/3/1974

3

Plesan

Sorin

Str. Sibiului Nr 45

3125

9/8/1959

4

Sitaru

Adela

Str. Cernei Nr.3

3400

9/6/1962

5

Patterson

John

27 Newpoint Street

GM80AN 2/4/1976

22

Înregistrări (records)

1

Interacţiunea cu datele stocate în tabele nu se face în mod direct. De regulă, fiecărui tabel îi sunt asociate alte obiecte (formulare, rapoarte, interogări), iar atunci când utilizatorul are nevoie de anumite date va apela un formular sau un raport care va găsi datele şi le va afişa pe ecran în forma cerută. Interogarea (QUERY) este un obiect care permite vizualizarea informaţiilor obţinute 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, puteţi folosi o interogare pentru a genera o listă cu telefoanele anumitor clienţi sau pentru a determina suma încasată de la clienţi, de asemenea, puteţi obţine date din mai multe tabele legate între ele. Practic, numărul întrebuinţărilor care se pot da acestor obiecte este nelimitat: ¾ puteţi vizualiza înregistrările care îndeplinesc o anumită condiţie prin intermediul interogărilor de selecţie (Select Query); ¾ puteţi modifica, adăuga şi chiar şterge date din tabele folosind tipurile de interogări specifice acestor operaţii: Update, Append şi Delete Query; ¾ puteţi sorta înregistrările după câmpuri sau grupuri; ¾ puteţi efectua calcule pe grupuri de înregistrări; ¾ puteţi combina mai multe tabele sau interogări. Interogarea este, în esenţă, o întrebare sau o cerere stocată. Aşa 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 câte orie este nevoie. Formularul (FORM) este un obiect care permite introducerea datelor, afişarea acestora sau controlul întregii aplicaţii. Formularul constituie interfaţa 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 puteţi gândi la ele ca fiind reprezentări pe ecran ale formularelor pe hârtie, cu care sunteţi deja obişnuiţi să lucraţi. Modul de completare al datelor în formularul Access este asemănător cu completarea unui formular pe hârtie, numai că datele introduse pe ecran vor fi stocate in unul sau mai multe tabele şi pot fi folosite ulterior la întocmirea diferitelor situaţii. Prin intermediul formularelor se pot realiza diverse operaţii cum ar fi: sortarea, căutarea, actualizarea unor date dar pot fi folosite şi ca parte a interfeţei aplicaţiei dumneavoastră. Folosind butoanele de comandă puteţi deschide alte formulare sau rapoarte atunci când este nevoie. Raportul (REPORT) este un obiect care permite formatarea şi tipărirea, sub formă de documente, a informaţiilor obţinute în urma consultării bazei de date. 23

Cu toate că formularele reprezintă un instrument excelent pentru introducerea şi afişarea datelor pe ecran, rapoartele sunt principalele „dispozitive” de ieşire in Access. Rapoartele pot fi previzualizate pe ecran, tipărite la imprimanta, vizualizate într-un navigator Internet (browser), etc. Sunt foarte uşor de creat şi sunt instrumente puternice de prezentare a datelor. Puteţi crea cu ajutorul acestor obiecte diverse situaţii de ieşire pentru aplicaţia dumneavoastră, de exemplu, lista clienţilor firmei pe localităţi sau judeţe. Pagina Web de accesare a datelor (PAGES) reprezintă un obiect care include un fişier HTML şi alte fişiere suport în vederea furnizării accesului la date prin intermediul browser-elor Internet. Acest obiect permite vizualizarea datelor în mediul Internet. Comanda Macro (MACRO) reprezintă un obiect care conţine o definiţie structurată a uneia sau mai multor acţiuni pe care Access le realizează ca răspuns la un anumit eveniment. Aceste obiecte sunt foarte utile deoarece permit automatizarea diverselor evenimente fără ca realizatorul aplicaţiei să trebuiască să cunoască limbajul VBA (Visual Basic for Applications). Modulul (MODULE) reprezintă un obiect care conţine proceduri definite de utilizator şi scrise în Visual Basic. Astfel, introduceţi într-un modul codul procedurii, apoi folosiţi obiectele eveniment (sau alte proceduri) pentru a executa procedura. Toate obiectele descrise mai sus vor fi detaliate in capitolele următoare.

3. Meniurile şi opţiunile lor Opţiunile din cadrul meniurilor au următoarele caracteristici [Avram-Niţchi et al.]: 9 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ă; 9 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. 9 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ă atâta timp cât nu există o bază de date deschisă. 9 Dacă în dreptul unei opţiuni apare un vârf de săgeată (►), prin selectarea opţiunii respective se va deschide un alt nivel de submeniuri; 24

9 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ă. 9 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.) 9 Dacă la finalul listei de opţiuni apar două vârfuri de săgeată ( ) anumite opţiuni nu sunt afişate - pentru a vizualiza lista completă de opţiuni utilizatorul trebuie să poziţioneze mouse-ul pe aceste săgeţ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 tipărirea, 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. ƒ Page Setup – setarea paginii – permite setarea marginilor (sus, jos, stânga, dreapta), selectarea formatului de pagină şi a orientării acesteia şi întroducera numărului de coloane pentru fiecare pagină; ƒ Print Preview – previzualizare înainte de tipărire; ƒ Print (Ctrl+P) – afişarea ferestrei de dialog Print care permite selectarea imprimantei, introducerea intervalului paginilor care urmează a fi listate şi numărul de copii; 25

ƒ 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 creării, modificării, data ultimei accesări, 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 scurtături 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 date. Vizualizarea obiectelor bazei de date Afişarea obiectelor sub forma unor pictograme mari Afişarea 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 creării, data actualizării 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 Reîmprospătarea imaginii de pe ecran

Fig. 7. Op iunile meniului View

3.4. Meniul Insert: permite inserarea unor obiecte noi (tabele, interogări, formulare, rapoarte, pagini web, macro-uri sau module) în baza de date. După selectarea unei opţiuni pe ecran va apărea fereastra pentru crearea unui obiect nou de tipul respectiv (fereastra New Table pentru tabele, etc.). AutoForm şi AutoReport sunt opţiuni cu ajutorul cărora se poate crea rapid un formular sau un raport pe baza datelor dintr-un tabel. Este 26

cea mai simplă şi formularelor/rapoartelor.

mai

rapidă

modalitate

de

creare

a

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 legăturii cu Microsoft Word

i Microsoft Excel

Asigurarea colaborării online cu al i utilizatori Crearea legăturilor î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 Adăugarea controalelor ActiveX Adăugarea unor programe Add-In Adăugarea/ 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 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 27

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 urmărit. Pentru a realiza acest lucru trebuie să răspundeţi la următoarele întrebări: Ce informaţii veţi stoca? Cine le va folosi? De ce fel de ieşiri aveţi nevoie? Atunci când proiectaţi o bază de date trebuie să urmaţi o serie de paşi: 1. Determinaţi scopul bazei de date. Acest lucru vă ajută să stabiliţi ce fel de date vreţi să stocaţi în baza de date pe care o veţi crea (ex. gestiunea personalului, evidenţa stocurilor). 2. Determinaţi tabelele de care aveţi nevoie. Odată ce aveţi un scop clar stabilit, puteţi împărţi informaţiile în subiecte separate, ca se exemplu „Angajaţi”, „Clienţi”, sau „Comenzi”. Fiecare subiect va fi un tabel în baza de date. Numele tabelului trebuie să fie sugestiv pentru informaţiile pe care le va conţine. 3. Determinaţi câmpurile de care o să aveţi nevoie în tabele. Hotărâţi ce fel de informaţii vor fi stocate în cadrul tabelelor. Fiecare categorie de informaţii dintr-un tabel poartă denumirea de câmp (field) şi fiecare câmp va fi afişat pe o coloană în tabel. De exemplu, un tabel cu denumirea Angajaţi poate să aibă următoarele câmpuri: Nume, Prenume, Data angajării, Salar_brut, Impozit. 4. Determinaţi relaţiile dintre tabele. Analizaţi cu atenţie tabelele şi stabiliţi legăturile care există între datele conţinute în tabele diferite. În cazul în care nu puteţi stabili relaţii între tabele, introduceţi tabele sau câmpuri de legătură. 5. Îmbunătăţirea proiectului. Analizaţi proiectul pentru a găsi eventuale erori. Creaţi tabelele şi adăugaţi câteva înregistrări de probă. Vedeţi dacă puteţi obţine din tabele rezultatele de care aveţi nevoie, faceţi modificări dacă este nevoie. Pentru a parcurge etapele de mai sus puteţi folosi o tablă de scris sau hârtie şi creion pentru că veţi face multe modificări până veţi ajunge la o formă de proiectare acceptabilă. Experimentaţi modelul proiectat, introduceţi date de test, creaţi formulare şi rapoarte de probă. Asiguraţi-vă că datele sunt stocate în mod corespunzător în baza de date şi că puteţi obţine toate informaţiile şi 28

situaţiile finale dorite. Este mult mai dificil să modificaţi tabelele, formularele, rapoartele după ce au fost introduse date reale. 4.1. Proiectarea tabelelor Datele sunt stocate în înregistrările tabelelor, iar pentru a putea fi regăsite uşor acestea trebuie să fie bine organizate în cadrul lor. De aceea, trebuie acordată o atenţie deosebită fazei de proiectare a bazei de date. Aspectele care trebuie să le urmăriţi atunci când începeţi să lucraţi cu tabele sunt: − Împărţiţi informaţiile lungi în unităţi mai mici. De exemplu, în loc să stocaţi numele clienţilor într-un singur câmp, folosiţi două câmpuri, unul pentru nume şi altul pentru prenume având astfel posibilitatea să sortaţi sau să selectaţi datele separat atât după nume cât şi după prenume. − Datele stocate în fiecare câmp trebuie să constituie cea mai mică unitate de informaţie, ceea ce înseamnă ca ele să nu mai poată fi împărţite în componente mai mici. Stocarea corectă a adreselor clienţilor se va face în câmpuri diferite: strada şi număr, oraş, judeţ şi cod poştal. −

Evitaţi redundanţa. Nu introduceţi aceeaşi informaţie în mai mult de un câmp. De exemplu, dacă aveţi în tabel un câmp data_naşterii nu mai trebuie să stocaţi in tabel şi vârsta persoanei pentru că aceasta se poate calcula din data naşterii. De asemenea, nu repetaţi aceleaşi date în mai multe tabele.

− Folosiţi câmpuri de tip text pentru a stoca numere de telefon, codul numeric personal sau codul poştal. Aceste numere sunt secvenţe arbitrare de caractere folosite pentru identificare, nu sunt valori numerice. Un număr de telefon poate să înceapă cu 0 şi poate să conţină caractere despărţitoare (0745-466789) de aceea, cea mai bună formă de stocare o reprezintă câmpul 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 aseamănă cu cota care se atribuie cărţilor într-o bibliotecă: aceasta este un identificator unic ce controlează ordonarea şi înregistrarea cărţilor, identifică duplicatele şi evită confuziile care pot să apară atunci când două volume au acelaşi autor sau au acelaşi titlu. − Toate datele trebuie să fie mutual dependente. Cu alte cuvinte, nici un câmp nu trebuie să depindă de informaţiile aflate în alt câmp al aceluiaşi tabel. De exemplu, dacă un tabel de evidenţă a vânzărilor conţine preţul unitar, cantitatea vândută şi încasări, avem de a face cu un câmp dependent. Astfel, dacă schimbăm valoarea preţului unitar, sau valoarea cantităţii vândute, trebuie să actualizăm şi valoarea din câmpul încasări pentru ca datele să fie consistente. 29

Pentru a înlătura dependenţa, câmpul încasări trebuie eliminat din structura tabelului şi trebuie înlocuit cu un control calculat sau cu o expresie de interogare. − Urmăriţi cu atenţie câmpurile rămase necompletate. Dacă un câmp rămâne necompletat înseamnă că datele nu se aplică la acea înregistrare. − Toate câmpurile trebuie să aibă o legătură cu câmpul cheie primară.

5. Crearea unei baze de date Există două posibilităţi 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ă următoarele operaţii: 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ă următorii paşi: ). În urma − se selectează lista Save in (prin clic pe butonul acestei operaţii apare lista unităţilor 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 apărea o listă cu directoarele (folderele) disponibile. − se selectează folderul unde va fi stocată baza de date; − se introduce numele bazei de date în lista File Name; − se activează butonul Create.

se selectează directorul

aici se introduce numele BD

Fig. 10. Fereastra File New Database

30

O bază de date nouă se mai poate crea şi folosind meniul sistem Access, alegând opţiunea New din meniul File, urmată de introducerea numelui corespunzător bazei de date ce urmează a fi creată. Crearea unei baze de date folosind asistenţii Database Wizard este mult mai simplă şi rapidă dar prezintă dezavantajul de a nu fi aşa de flexibilă. Un vrăjitor este un instrument complex (program specializat) cu ajutorul căruia se realizează în mod automat o bază de date sau anumite obiecte (tabele, formulare, rapoarte, interogări, pagini web pentru prezentarea datelor) luând în considerare preferinţele utilizatorului. Vrăjitorul prezintă o serie de casete de dialog pentru fiecare etapa. La fiecare pas utilizatorul trebuie să aleagă o serie de opţiuni din grupul de opţiuni posibile pentru a trece la următorul pas. Database Wizard creează o aplicaţie „la cheie”, generând toate tabelele, formularele şi rapoartele necesare pentru realizarea unei anumite funcţii. Vrăjitorul oferă posibilitatea de a alege din mai multe baze de date predefinite, destinate fie utilizării în scop personal, fie utilizării în cadrul unei firme. Pentru a vedea lista acestor baze de date selectaţi opţiunea New din meniul File şi apoi executaţi clic pe categoria Databases din fereastra de dialog New. Utilizarea Database Wizard: 1. Lansarea în execuţie a instrumentului Database Wizard: deschideţi programul Access. Din fereastra de dialog (fig.1) care apare pe ecran selectaţi opţiunea: Access database wizards, pages and projects şi executaţi clic pe OK. Pe ecran va apărea următoarea casetă de dialog: Modalităţi de vizualizare

Fereastra Preview

Baze de date disponibile Fig. 11. Fereastra New

31

Se selectează o bază de date şi se execută clic pe butonul OK. 2. Cea de-a doua fereastră a vrăjitorului este o fereastră de dialog File (Fig. 10). Vrăjitorul î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 operaţia se execută clic pe butonul Cancel. 4. Vrăjitorul afişează o fereastră în care descrie tipul de informaţii pe care baza de date le conţine. De exemplu, BD Asset Tracking include date referitoare la active, amortizare, întreţinere, angajaţi, departamente şi vânzători. BD Contact Management conţine informaţii de contact şi date referitoare la convorbiri. Dacă executaţi clic pe butonul Finish vrăjitorul va închide fereastra Database Wizard şi va deschide noua aplicaţie; dacă executaţi clic pe Cancel, vrăjitorul va şterge tot ce aţi realizat până în acest moment şi se va închide. Dacă doriţi să mergeţi mai departe, executaţi clic pe butonul (soft) Next.

5. Fiecare tabel din noua aplicaţie conţine anumite câmpuri prestabilite. Se

pot adăuga sau şterge câmpuri prin intermediul ferestrei de dialog:

Câmpurile din tabelul selectat

Tabelele aplicaţiei

6. Următoarea fereastră de dialog vă permite să alegeţi stilul de afişare al

ecranelor dintr-o listă de valori predefinite. 32

7. În următoarea 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.

33

9.

În ultima casetă de dialog a vrăjitorului lăsaţi selectată opţiunea Yes, Start the Database, confirmând astfel că doriţi să vedeţi baza de date. Cea de-a doua opţiune Display Help on using Database deschide o fereastră Help. Pentru a finaliza aplicaţia executaţi 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 urmăreşte consultarea, modificarea sau actualizarea unei baze de date creată anterior, aceasta va trebui, mai întâi, să fie deschisă prin intermediul opţiunii Open An Existing File (din fereastra de dialog care apare pe ecran la intrarea în aplicaţia Ms. Access). O bază de date mai poate fi deschisă şi folosind meniul sistem Access, alegând opţiunea Open din meniul File. 6.2. Salvarea modificărilor unei baze de date Prin modificarea unei baze de date Access se înţelege 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 întâi î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 întâi î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 cunoştinţelor 1. Deschideţi programul Microsoft Access. 2. Identificaţi elementele ferestrei de bază a aplicaţiei Microsoft Access. 3. Explicaţi efectul tuturor opţiunilor din meniurile: File, Edit, View şi Window. Pentru rezolvarea acestui exerciţiu vă puteţi folosi de Help. 4. Creaţi cu ajutorul Wizard-ului o bază de date pentru managementul evenimentelor. Adăugaţi pe urmă cinci înregistrări. 34

UNITATEA 3 TABELE Sinteză

1. Crearea tabelelor Access organizează o bază de date în felul următor: Fişierul de baze de date – este fişierul principal care cuprinde pe lângă datele cuprinse în tabele şi obiecte: interogări pentru analiza datelor, formulare pentru interacţiunea cu datele, rapoarte pentru tipărirea rezultatelor, macro şi module pentru extinderea funcţionalităţii aplicaţiilor şi pagini web. Fişierul este salvat cu extensia .mbd (ex. Agentie.mbd).

Baza de date

Tabel

Tabelul – (Table) este o colecţie de date specifice unui anumit subiect, stocate pe linii şi coloane. În baza de date pot exista mai multe tabele. (ex.: Clienţi, Comenzi).

Câmp

Câmpul – (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)

Tip de date

Tipul de date – (Datatype) este o proprietate a fiecărui câmp. O coloană poate stoca doar date de un anumit tip, de ex. câmpul data_nasterii va conţine doar date calendaristice iar câmpul nume va conţine doar tipul text).

Valoare

Fig. 12. Organizarea BD

Valoarea – reprezintă valoarea introdusă într-un câmp. De exemplu, în câmpul Nume, de tip text, se poate stoca valoarea „Ionescu”. Crearea structurii tabelelor se referă la definirea câmpurilor (coloanelor) tabelelor şi, după cum se observă în fereastra Database ( fig. 11), acest lucru se poate face în trei moduri: 1. Utilizând fereastra de proiectare - CREATE TABLE IN DESIGN VIEW 2. Prin introducerea datelor - CREATE TABLE BY ENTERING DATA 3. Utilizând 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 întâi pe scurt celelalte două moduri. Crearea unei tabele utilizând instrumentul wizard permite adăugarea unor câmpuri standard ce există deja în cadrul bibliotecilor de tabele standard. De exemplu dacă se doreşte realizarea unei tabele cu clienţi (CUSTOMERS) utilizându-se instrumentul wizard, se pot selecta anumite câmpuri standard 35

pentru acest tabel precum şi relaţiile pe care acestea le au cu alte tabele. Nu se recomandă aceasta modalitate deoarece câmpurile din cadrul tabelelor standard au fost create pentru sistemul de lucru anglo-saxon care în unele privinţe nu corespunde cu sistemul românesc. 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 realizării de aplicaţii 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 apărea fereastra Table. În această fereastră se definesc numele câmpurilor – FIELD NAME, tipul de date – DATA TYPE şi opţional o descriere a câmpului respectiv – DESCRIPTION.

Fig. 13. Fereastra Database

Puteţi să creaţi un tabel şi apelând opţiunea New din bara de meniu a ferestrei Database.

36

În Access există două modalităţi de vizualizare a tabelelor: •

Datasheet View (

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



Design View ( ): este modul de vizualizare în care se defineşte structura tabelului bazei de date (modul care permite introducerea câmpurilor cu tipul de data asociat şi descrierea corespunzătoare). Pentru a comuta între modurile datasheet view şi design view, se executa clic pe butonul din colţul stânga-sus al ferestrei aplicaţiei Microsoft Access. De exemplu dacă avem un tabel Judeţe cu următoarele câmpuri: cod_judeţ – text(2) şi judeţtext(30) acesta va putea fi afişat în două moduri:

Fig. 14. Tabelul Judeţe deschis în mod Datasheet

Fig. 15. Tabelul Judeţe deschis în mod Design View

37

2. Caracteristicile câmpurilor •

Numele: Microsoft Access 2000 permite ca numele de câmp să fie format din mai multe cuvinte, de exemplu “Nume client”. În versiunile mai vechi de Access denumirea unui astfel de câmp ar fi putut fi scrisă cu simbolul underscore (_) adică “Nume_client”. Numele câmpului poate fi stabilit după dorinţă însă se recomandă alegerea unui nume scurt care să indice rolul câmpului respectiv.



Tipul de date: este o caracteristică ce stabileşte modul în care datele sunt înregistrate pe suportul de memorare şi modul în care acestea sunt interpretate şi prelucrate. De exemplu, dacă avem un câmp de tip date/time vom putea introduce în acest câmp doar date calendaristice iar operaţiile pe care Access le poate efectua asupra informaţiilor stocate în acest câmp sunt specifice tipului de date date/time. În continuare prezentăm tipurile de date disponibile pentru câmpuri:

Tip de date

Tip de date Access

TEXT

Cel mai des folosit tip de date. Un câmp de tip text poate conţine până la 255 caractere alfanumerice. Numerele care nu sunt folosite pentru calcule vor fi stocate în câmpuri de tip text (nr. telefon, cod poştal, CNP, numerele de înregistrare, nr. matricol).

MEMO

Poate conţine cantităţi mari de text sau numere cel mult 64.000 caractere. Se folosesc pentru a oferi comentarii descriptive şi notiţe.

NUMBER

Conţine mai multe subtipuri de date: Long Integer, Byte, Integer, Single Double, Replication ID. Se utilizează atunci când dorim să stocăm date numerice care vor fi folosite pentru calcule matematice.

Alfanumerice

Numerice

Date calendaristice

Descrierea tipului de date

Generează numere unice în mod automat de AUTONUMBER fiecare dată când se introduce un nou articol în tabel. Poate îndeplini rolul de cheie primară atunci când nu mai există în tabel o altă cheie. CURRENCY

Format special pentru unităţi monetare, proiectat pentru a preveni erorile de rotunjire care ar afecta operaţiile contabile.

YES/NO

Câmpurile logice (booleene) folosesc valori logice numerice de tip întreg 1 pentru câmpurile YES (TRUE) şi 0 pentru NO (FALSE).

DATE/TIME

Stochează data calendaristică şi ora într-un format special fix. Se foloseşte formatul englez de data lună/zi/an, spre deosebire de cel românesc zi/lună/an.

38

Tip de date Obiecte mari

Adrese Internet

Tip de date Access OBJECT OLE

HYPERLINK

Descrierea tipului de date Include elemnte grafice realizate din puncte (bitmap), desene vectoriale, fişiere cu semnale audio şi alte tipuri de date ce pot fi create de o aplicaţie OLE SERVER. Este un text sau o combinaţie de text cu numere stocată ca un text şi folosită ca adresă a unei pagini Web. Conţine 3 parti: textul afişat, adresa şi subadresa. Fiecare parte poate avea maxim 2048 caractere.

Tabel 1. Tipuri de date disponibile în Ms. Access

Dacă din lista Data Type se alege Lookup Wizard se va crea un câmp a cărui valori pot fi încărcate dintr-o listă derulantă. Elementele listei pot fi valori tastate de utilizator sau valori conţinute într-un câmp al unui tabel sau interogare existentă.

3. Proprietăţile câmpurilor 1. Field size (Dimensiunea câmpului): în această zonă se introduce numărul maxim de caractere permis pentru câmpul respectiv, în funcţie de tipul de date al acestuia. Putem crea un câmp de tip text cu dimensiune fixă introducând în celula Field Size valoarea corespunzătoare lungimii fixe dorite (un număr de la 1 la 255). În mod prestabilit Access creează un câmp de tip text care poate cuprinde 50 de caractere. Dacă importăm câmpuri de date cu lungime mai mare Access le va trunchia astfel se vor pierde caracterele cele mai din dreapta care depăşesc limita indicată. 2. Format (Formatul în care sunt afişate datele): - în Access fiecare tip de date are mai multe opţiuni predefinite de afişare. De exemplu, o dată de tip dată/oră poate fi afişată în mai multe forme:

39

3. Decimal places (Numărul de zecimale): în cadrul acestei proprietăţi se stabileşte numărul de zecimale ce pot fi atribuite unui câmp. 4. Input Mask (Formatul de introducere): se referă la impunerea unui anumit format pentru toate datele incluse în cadrul acestui câmp. O mască de intrare este folosită într-un câmp pentru a formata informaţia şi a controla ce valori pot fi introduse. De exemplu masca >LLLL este formată din două părţi: simbolul > care transformă toate caracterele introduse de utilizator în majuscule şi şirul de caractere LLLL ce reprezintă înlocuitori pentru litere (A-Z, fără spaţii). Utilizatorul va putea introduce în câmp exact patru litere, în caz contrar Access va afişa un mesaj de eroare. Pot fi folosite pentru tipurile de date: Text, Date/Time, Number, Currency. Iată câteva exemple: -

pentru formatul datei: 00-00-00 pentru număr 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 câmpului, nume care va fi afişat în cadrul rapoartelor, formularelor, tabelelor. 6. Default value (Valoare automată): este valoarea atribuită automat atunci când utilizatorul nu introduce nici o valoare în acel câmp. 7. Validation rule (Regulile de validare): testează prin intermediul unui criteriu (expresie Access) valorile introduse în câmpurile bazei de date şi nu lasă introducerea de date care nu respectă acel criteriu. De exemplu, regula >0 permite doar introducerea numerelor pozitive, iar >= 10 AND <100 permite introducerea numerelor cuprinse între 10 şi 99. 8. Validation TEXT (Text de validare): Conţine textul care va apărea pe ecran în cazul în care valoarea introdusă în câmp nu respectă criteriul impus de regula de validare. 9. Required (Cerinţe): se stabileşte dacă prin introducerea unei înregistrări în cadrul tabelei este obligatorie şi completarea respectivului câmp. 40

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 câmpului să fie unică.

4. Noţiunea de cheie primara - PRIMARY KEY Cheile principale (primary keys) reprezintă o componentă esenţială a oricărei baze de date relaţionale. Pentru a se încadra în modelul relaţional fiecare tabel al bazei de date trebuie să aibă un identificator unic. Asigurarea unicităţii se poate realiza prin desemnarea unei chei primare – o coloană sau un set de coloane care identifică în mod unic un rând 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 conţine valori unice. Aceste coloane sunt chei candidat. Din aceste chei candidat se alege o cheie primară, aceasta trebuie să conţină un număr minimal de coloane şi să fie stabilă. De exemplu într-un tabel Angajati cu următoarele câmpuri: CNP (codul numeric personal), Nume, Prenume, Data_angajării, Salar avem două chei candidat - CNP şi cheia compusă din câmpurile Nume, Prenume. Codul numeric personal este unic pentru fiecare persoana deci el ar poate asigura unicitatea înregistrărilor. Singura problemă este că pentru angajaţii străini cod numeric personal are alt format. Cea de-a doua cheie îndeplineşte condiţia de cheie primară atât timp cât nu există în baza de date doi angajaţi cu acelaşi nume şi prenume. Când apar două persoane cu acelaşi nume şi prenume, pentru a se asigura unicitatea, se poate adăuga câmpul data_angajării la cheia primară, dar atunci numărul câmpurilor din componenţa acesteia este prea mare. Câmpul numele nu este un câmp stabil pentru că, în cazul angajatelor, acesta se poate schimba prin căsătorie, de aceea nu e bine să intre în componenţa cheii primare. Deoarece nu am putut găsi o cheie primară naturală trebuie să creăm o cheie artificială, o cheie derivată. Putem adăuga un câmp 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 următoarele condiţii: 1. valorile coloanelor care compun cheia identifică în mod unic fiecare rând din tabel. 2. subsetul de coloane este minimal, în sensul că eliminarea oricărei coloane din cheie duce la nerespectarea primei condiţii. Cheia primară are un rol deosebit de important în implementarea strategiilor de căutare şi de regăsire a datelor. Este folosită de SGBD pentru identificarea unică a înregistrărilor. Câmpul marcat cu PRIMARY KEY 41





nu permite introducerea valorilor duplicat. Asupra cheii primare a SGBD -urile impun restricţii : nu sunt admise valorile nedefinite (NULL) pentru atributele unei chei primare, orice altă cheie a unei relaţii 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 operaţiilor de actualizare.

Stabilirea cheii primare se poate face prin două modalităţi, după cum urmează: 1. se selectează câmpul cod_cl; din trusa de instrumente Database; 2. a) se selectează butonul b) se activează opţiunea Primary Key din meniul Edit.

5. Sortarea înregistrărilor În modul de vizualizare Datasheet View puteţi vizualiza înregistrările unui tabel într-o anumită ordine. Pentru a sorta înregistrările se efectuează următorii paşi: ) 1. Se trece pe modul de vizualizare Datasheet View ( 2. Se selectează coloana după care se face ordonarea 3. Se selectează opţiunea 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 Infoclienţi, din baza de date Clienţi, care va conţine informaţii referitoare la clienţii unei firme. Tabelul are următoarea 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) 42

Se creează baza de date Clienţi astfel: 1. se porneşte aplicaţia Microsoft Access: Start->Programs->Microsoft Access; 2. se selectează opţiunea 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 Infoclienţi selectaţi opţiunea Create table in Design ) din bara de meniu a aceleiaşi ferestre view, sau selectaţi opţiunea New ( şi apoi opţiunea Design view. Pe ecran va apărea o fereastră în care veţi introduce numele câmpurilor, tipul acestora şi o scurtă descriere după cum urmează:

1. Aici se introduce numele câmpului.

2. Se selectează tipul de date din listă.

3. Se introduce o scurtă descriere.

4. Se selectează mărimea câmpului

Fig. 16. Modul de introducere a structurii unui tabel

Se repetă cei patru paşi pentru fiecare câmp în parte. În secţiunea Field Properties se pot introduce informaţii legate de câmpuri, reguli de validare, valori implicite ale datelor ce vor fi introduse în tabel. După ce aţi introdus toate categoriile trebuie să stabiliţi o cheie primară pentru tabelul creat. Cheia trebuie să identifice în mod unic fiecare înregistrare din tabel şi să prevină apariţia duplicatelor, în cazul nostru câmpul care îndeplineşte condiţiile de cheie primară este cod_cl. 43

Stabilirea cheii primare se poate face prin două modalităţi, după cum urmează: 1. se selectează câmpul cod_cl; 2. se selectează butonul din trusa de instrumente Database sau (folosind meniul sistem Access) se activează opţiunea Primary Key din meniul Edit.

1. Se selectează câmpul 2. Selectaţi fie simbolul iconic - cheie, din trusa standard, fie opţiunea Primary Key din meniul Edit

Se salvează tabelul, selectând opţiunea Save din meniul File, iar în fereastra care apare se introduce denumirea tabelului – InfoClienti.

) din meniul Pentru a adăuga articolele se selectează Datasheet View ( View iar în fereastra care apare pe ecran se completează următoarele date: Cod Nume Prenume client 1

Opriş

2

Radu

Adresa

Localitate

Jud

Cod postal

Data nasterii

Str. Plopilor Nr. 6 Cluj-Napoca

CJ

Popescu Adriana

Str. Horea Nr. 4

CJ

23780

0264/440016 03/05/1974

3

Plesan

Str. Sibiului Nr 45 Medias

SB

34758

0269/667980 08/09/1959

4

Sitaru

Adela

Str. Cernei Nr.3

Cluj-Napoca

CJ

34214

0264/418788 06/09/1962

5

Pascu

John

Str. Alverna Nr 45 Cluj-Napoca

CJ

34561

0275/938566 04/02/1976

Sorin

Cluj-Napoca

44

23451

Telefon

0264/552302 02/04/1968

Verificarea cunoştinţelor 1. Tipul de date currency este: a. Un format special pentru introducerea unor comentarii descriptive şi a unor notiţe; b. Un format special pentru unităţi 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 câmp 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 câmp de tip data calendaristică (Date/Time)? a. La stânga (Left). c. La centru (Center).

b. La dreapta (Right). d. Între margini (Justify).

4. Precizaţi care dintre următoarele afirmaţii sunt adevărate. a. b. c. d.

Coloanele sunt câmpuri (fields). Rândurile sunt înregistrări (records). Coloanele sunt înregistrări (records). Rândurile sunt câmpuri (fields).

5. Care operaţiune nu se efectuează în cazul modificării structurii unei baze de date? a. Modificarea lungimii unor câmpuri. c. Adăugarea unor câmpuri. e. Ştergerea unor câmpuri.

b. Modificarea tipului unor câmpuri. d. Adăugarea unor articole. f. Modificarea denumirii câmpurilor.

6. Care dintre şirurile de cifre si/sau caractere de mai jos este admis într-un câmp 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 câmpurilor? a. Numele b. Tipul de date c. Dimensiunea d. Extensia 8. Ce rol are cheia primară? 45

9. Asupra cheii primare a unui tabel SGBD-ul impune anumite restricţii: 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 operaţiilor 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 având numele STUDENT şi să se salveze în directorul personal. Baza de date va conţine un tabel InfoStudent în care se vor stoca informaţiile referitoare la studenţi. Structura tabelului este următoarea: NRMAT – numărul matricol – de tip text – 3 caractere Nume – numele studentului – de tip text – 20 caractere Prenume – prenumele studentului – tip text – 20 caractere DN – data naşterii – de tip dată calendaristică ADR – adresa studentului – de tip text – 30 caractere SCT – secţia (se va introduce AA sau SO ) - text - 2 caractere BRS – bursier - da sau nu (Yes/No) Media – media studentului – de tip numeric-zecimal 1. 2. 3.

Să se creeze tabela InfoStudent cu câmpurile aferente. Să se stabilească cheia primară pentru tabelul InfoStudent. Câmpul 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 afişeze următorul mesaj de eroare: „Introduceţi valori mai mici decât 10!”. 4. Pentru câmpul de date SCT se va impune condiţia ca secţia sa fie numai AA sau SO. 5. Să se introducă câte 6 înregistrări, 3 studenţi de la AA şi 3 studenţi de la SO. 6. Să se ordoneze baza de date crescător după câmpul Nume. 7. Să se ordoneze baza de date descrescător după câmpul Media. 8. Să se introducă un nou student, Popescu Ion de la secţia AA. 9. Să se şteargă studentului de pe poziţia a treia. 10. Modificaţi structura bazei de date prin adăugarea unui nou câmp Loc. – text (20), localitatea de unde provine studentul, după câmpul adresa – ADR. 11. Să se completeze câmpul introdus cu informaţiile corespunzătoare pentru fiecare student. 46

II. Să se creeze o bază de date având numele CADRE şi să se salveze în directorul personal. Baza de date va conţine un tabel InfoCadre în care se vor stoca informaţiile referitoare la cadrele didactice. Structura tabelului este următoarea: 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 naşterii - 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 funcţii de tip Yes/No NRO - număr de ore - numeric - întreg Se cere: 1. Să se creeze tabelul InfoCadre cu câmpurile aferente. 2. Să se stabilească cheia primară a tabelului. 3. Să nu se poată introduce în câmpul NRO valori mai mari de 50. 4. Să se introducă 4 înregistrări (4 cadre didactice din catedre diferite). 5. Să se sorteze tabela InfoCadre crescător după câmpul nume. 6. Să se sorteze tabela InfoCadre descrescător după câmpul NRO. 7. Să se şteargă câmpul DN şi în locul lui să se introducă un nou câmp 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 păstrare a înregistrărilor. 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 observaţii şi măsurători”. 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. 47

O bază de date Access - o colecţie de obiecte: tabele (tables), cereri de interogare (query), formulare (forms), rapoarte (reports), pagini Web (pages), comenzi macro (macros) şi module (modules). Tabelul este o colecţie 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ă câmpurile (fields) care se descriu prin nume, tip şi alte atribute ale acestora. Liniile tabelului conţin înregistrări (records) cu date corespunzătoare coloanelor. Interogarea (QUERY) este un obiect care permite vizualizarea informaţiilor obţinute prin prelucrarea datelor din una sau mai multe tabele şi/sau alte cereri de interogare. Formularul (FORM) este un obiect care permite introducerea datelor, afişarea acestora sau controlul întregii aplicaţii. Raportul (REPORT) este un obiect care permite formatarea şi tipărirea, sub formă de documente, a informaţiilor obţinute în urma consultării bazei de date. Pagina Web de accesare a datelor (PAGES) permite vizualizarea datelor în mediul Internet. Comenzile Macro (MACRO) permit automatizarea diverselor evenimente fără ca realizatorul aplicaţiei să fie nevoit să cunoască un anumit limbaj de programare. Modulul (MODULE) reprezintă un obiect care conţine proceduri definite de utilizator şi scrise în Visual Basic. Tipul de date: este o caracteristică ce stabileşte 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 încât aceasta să conţină un număr 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 9 Studierea de către studenţi a materialului teoretic aferent modulului, cuprins în suportul curs şi în bibliografia suplimentară indicată. 9 Participarea la aplicaţiile 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; 9 Lucrarea practică nr. 1.

48

Lucrarea practică 1 (LP1) I. Să se creeze o baza de date şi să se salveze cu numele CLIENTI. Baza de date va conţine un tabel InfoClienti în care se vor stoca informaţiile referitoare la clienţii unei firme. Structura tabelului este următoarea:

1. 2. 3.

4. 5.

ClientID – AutoNumber; Nume – text – 30 caractere Prenume – text – 30 caractere DN – data naşterii – 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, Număr, Ap.) Localitate – text, 50 Indicativ_judet – text, 2 (SB – Sibiu, BN – Bistriţa Năsăud, 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 expirării actului de identitate– data calendaristică Email – text, 50 Să se creeze tabela InfoClienti cu câmpurile aferente. Să se stabilească cheia primară pentru tabelul InfoClienti. Câmpul de date CodTara să permită introducerea unor valori cuprinse intre 1 şi 6. Valorile pentru acest câmp se vor alege dintr-o lista (Lookup).

De asemenea, în cazul în care se introduc valori in afara intervalului să se afişeze următorul mesaj: „Introduceţi valori între 1 şi 6!”. Câmpul de date SEX va conţine valoarea M pentru masculin sau F pentru feminin. Să se introducă regula de validare corespunzătoare. Câmpul de date TipActID să permită introducerea unor valori cuprinse intre 1 şi 4. Valorile pentru acest câmp se vor alege dintr-o lista (Lookup). 49

În cazul în care se introduc valori in afara intervalului să se afişeze următorul mesaj: „Introduceţi 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 crescător după câmpul Nume. 8. Să se ordoneze baza de date descrescător după câmpul CodTara. 9. Modificaţi structura bazei de date prin adăugarea unui nou câmp Cod_postal – text (20), după câmpul adresa. 10. Să se completeze câmpul introdus cu informaţiile corespunzătoare pentru fiecare client. 11. Introduceţi la final o înregistrare cu datele dumneavoastră. II. Comprimaţi (arhivaţi) baza de date cu utilitarul WinRAR (puteţi să îl descărcaţi gratuit de pe Internet) şi transmite-ţi arhiva pe email la adresa sau pe portalul ID la adresa [email protected] [email protected]. 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 lucrării se face conform specificaţiilor din secţiunea „Organizarea temelor în cadrul cursului”, partea 1 a materialului. Bibliografia modulului 1. Avram-Niţchi, 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, Bucureşti, 1999. 4. Năstase, P., Mihai, F., Bărbulescu, B., Şova, R.A., Stanciu, A., Covrig, L., Baze de date în Microsoft Access 2000, Teora, Bucureşti, 1999. 5. Mediul Internet.

50

Modulul II ƒ ƒ ƒ

Unitatea 4. Relaţii între tabele Unitatea 5. Interogări Unitatea 6. Limbajul SQL

Scop şi obiective Scop Acest modul urmăreş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 interogările şi limbajul SQL. Obiective 9 Definirea noţiunilor de cheie candidat şi cheie străină; 9 Clasificarea relaţiilor între două tabele; 9 Crearea relaţiilor între două sau mai multe tabele; 9 Definirea integrităţii referenţiale; 9 Identificarea tipurilor de interogări existente în Access; 9 Utilizarea interogărilor pentru a obţine diverse informaţii din bazele de date; 9 Proiectarea interogărilor folosind grila QBE; 9 Prezentarea principalelor instrucţiuni ale limbajului SQL; 9 Utilizarea instrucţiunilor SQL în Microsoft Access. Concepte de bază: Chei candidat, Chei străine, relaţii, integritate referenţială, asociere (Join), Interogări (Queries), funcţii, Interogări cu câmpuri calculate, Interogări cu parametru, Interogări de tip totaluri, Interogări de sinteză, Interogări de acţiune, SQL, instrucţiuni DDL, instrucţiuni DML, Create, Alter, Drop, Insert, Update, Delete şi Select.

51

UNITATEA 4 RELAŢII ÎNTRE TABELE Sinteză Într-o bază de date relaţională datele pot fi stocate în unul sau mai multe tabele. Se recomandă folosirea mai multor tabele între care există legături decât proiectarea unui singur tabel cu multe câmpuri. Unul din scopurile principale ale proiectării bazelor de date relaţionale este de a grupa câmpurile în tabele astfel încât să se minimizeze redundanţa datelor, şi prin aceasta să se reducă spaţiul de stocare necesar bazei de date. Tabelele care conţin 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 puţin a treia formă normală. În cadrul unei baze de date nu este obligatoriu ca între toate tabelele să existe relaţii. Este posibil ca în cadrul unei aplicaţii să utilizăm şi tabele independente şi/sau de lucru (tabele temporare). Între două tabele dintr-o bază de date există o relaţie atunci când unul sau mai multe câmpuri cheie dintr-un tabel se potrivesc cu unul sau mai multe câmpuri cheie din celălalt tabel. De obicei câmpurile corespondente din ambele tabele au acelaşi nume, tip de date şi mărime. Din punct de vedere al momentului creării acestora avem două tipuri de relaţii între tabelele unei baze de date Access : - relaţii permanente - se stabilesc după definirea tabelelor şi sunt cerute de modelul relaţional făcând parte din structura bazei de date. Acestea se realizează de obicei prin corespondenţele cheie primară - cheie externă şi sunt memorate în baza de date. - relaţii temporare - se stabilesc între tabele cu ocazia definirii unor cereri de interogare, nefiind înregistrate în structura bazei de date. Avantajele utilizării relaţiilor 1. Atunci când creaţi relaţii între tabele, Access asociază automat câmpurile respective din tabele. Puteţi crea astfel formulare, rapoarte, interogări care să conţină date din mai multe tabele. 2. Se pot crea subformulare şi subrapoarte. 3. Un alt avantaj este posibilitatea de forţare a integrităţii referenţiale.

1. Tipuri de relaţii în Access a) Relaţia One to One (unu la unu) - Între două tabele A şi B există o relaţie de tipul One-to-One dacă fiecărei înregistrări din tabelul A îi 52

corespunde o singură înregistrare în tabelul B şi invers, fiecărei înregistrări din tabelul B îi corespunde o singură înregistrare în tabelul A. Acest tip de relaţie se foloseşte foarte rar. b) Relaţia One to Many (unu la mai mulţi) - Într-o relaţie de tipul One-toMany, o înregistrare din tabelul A poate avea mai multe înregistrări 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) Relaţia Many to Many (mai mulţi la mai mulţi) – Într-o relaţie de tipul Many-to-Many unei înregistrări din tabelul A îi sunt asociate mai multe înregistrări în tabelul B, şi unei înregistrări din tabelul B îi sunt asociate mai multe înregistrări în tabelul A. Acest tip de relaţie poate fi reprezentat numai când se defineşte şi un al treilea tabel C, denumit tabel de joncţiune. Rolul acestui tabel este spargerea relaţiei “Manyto-Many” în două relaţii de tipul “One-to-Many”. Tabelul părinte este tabelul care conţine cheia principală iar tabelele copil sunt tabelele corelate. Pentru a implementa relaţiile dintre tabele se folosesc cheile externe. Relaţiile de tip one-to-one şi one-to-many se implementează introducând în una din tabele o cheie externă (străină), care va face legătura cu cheia primară din tabela corespunzătoare. O legătură de tip many-to-many se implementează introducând o tabelă suplimentară care are in structura sa cheile celor doua tabele puse in legătură.

2. Integritatea referenţială: se referă la un set de reguli care protejează datele prin stabilirea de restricţii pentru adăugarea şi ştergerea de înregistrări din tabelele relaţionate: 1. fiecare valoare a cheii externe trebuie să se găsească printre mulţimea valorilor cheii candidat corespondente, cu alte cuvinte nu putem adaugă înregistrări în tabelul copil fără ca acestea să aibă corespondent în tabelul părinte; 2. nu putem şterge o înregistrare din tabelul părinte dacă există înregistrări 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 câmp component al unei chei externe trebuie să aibă acelaşi tip de date şi dimensiune cu al câmpului corespondent din cheia candidat; 3. o valoare a unei chei externe reprezintă o referinţă către o înregistrare care conţine aceeaşi valoare pentru cheia candidată corespondentă.

53

3. Crearea relaţiilor între tabele (Relationships) Pentru a realiza relaţii între tabelele Access se alege opţiunea Relationships din meniul Tools.

Pe ecran va apărea următoarea fereastră:

Se selectează fiecare tabel pe care doriţi să-l includeţi în relaţie şi se activează butonul Add şi apoi se închide fereastra Show Table.

Cheie primară

Cheie externă

O relaţie între două tabele se realizează prin operaţia drag and drop de la cheia primară a tabelului principal la cheia externă a tabelului secundar. În fereastra Edit Relationships se selectează opţiunea Enforce Referential Integrity pentru a se asigura integritatea referenţială.

54

In Access opţiunea Enforce Referential Integrity poate fi selectată numai daca se îndeplinesc condiţiile: 1. Câmpul selectat din tabelul primar are atributul de cheie primară; 2. Câmpurile puse în corespondenţă au acelaşi tip de date; 3. Cele două tabele sunt memorate în aceeaşi bază de date. Dacă selectaţi opţiunea Cascade Update Related Fields atunci când veţi actualiza cheia primară din tabelul “1” (tabelul părinte), Access va actualiza automat toate cheile externe corespondente din tabelul “n” (tabelul copil). Dacă dezactivaţi această opţiune, Access nu vă permite să schimbaţi valoarea câmpului cheie principală din tabelul “1” atâta timp cât există înregistrări corespondente în tabelul “n”. Opţiunea Cascade Delete Related Fields este similară opţiunii Cascade Update Related Fields numai că afectează modul în care se face ştergerea înregistrărilor. Când această opţiune este selectată, Access va şterge toate înregistrările corelate din tabelul/tabelele copil atunci când ştergeţi înregistrarea cu cheia primară corespunzătoare din tabelul părinte. Dacă nu este selectată, Access nu va permite ştergerea înregistrării ce conţine cheia primară din tabelul părinte atâta timp cât există înregistrări corespondente în tabelul/tabelele copil. În cazul în care relaţia a fost definită în mod corect în fereastra Relationships va apărea o linie care leagă cele două tabele după cum se poate vedea în figura de mai jos.

55

Relaţia poate fi modificată ulterior prin dublu-click asupra legăturii dintre cele două tabele. De asemenea se poate şterge o relaţie între tabele: se selectează linia de asociere şi se apasă tasta DEL. Pentru ştergere se poate folosi şi opţiunea Delete din meniul contextual (clic dreapta pe linia de asociere). Editarea ulterioară mai poate fi făcută şi alegând opţiunea Edit Relationship din meniul contextual. Dacă executaţi clic pe butonul Join Type pe ecran va apărea următoarea casetă de dialog: Creează o asociere internă Creează o asociere externă la stânga Creează o asociere externă la dreapta

Fig. 11. Fereastra de dialog Join Properties

Această casetă de dialog vă permite să definiţi tipul de asociere produsă de relaţie. Asocierea (Join) determină modul în care corelaţia dintre două tabele afectează rezultatul unei interogări legate. Există două tipuri de asocieri: - Asociere internă (INNER JOIN): este tipul prestabilit de asociere în care înregistrările provenite din două tabele sunt combinate şi adăugate la rezultatele unei interogări numai când valorile din câmpurile asociate sunt egale. - Asociere externă (OUTER JOIN) care poate fi de două tipuri: asociere externă la stânga (LEFT OUTER JOIN) şi asociere externă la dreapta (RIGHT OUTER JOIN). - LEFT OUTER JOIN: O asociere în care toate înregistrările provenite din membrul stâng al relaţiei sunt adăugate la rezultatele unei interogări indiferent daca ele au sau nu înregistrări asociate. - RIGHT OUTER JOIN: O asociere în care toate înregistrările provenite din membrul drept al relaţiei sunt adăugate la rezultatele unei interogări,chiar dacă există înregistrări care nu corespund nici unei înregistrări din tabelul primar. Relaţiile dintre tabele pot fi tipărite selectând opţiunea Print Relationships din meniul File.

56

Verificarea cunoştinţelor 1. Să se creeze un nou tabel cu numele Plăţi în baza de date CLIENTI (Unitatea 3). Tabelul va avea următoarea 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 relaţie de tip 1:n între tabelul Infoclienţi şi tabelul Plăţi. Să se forţeze integritatea referenţială. c) Să se introducă 8 articole în tabelul Plăţi. 2. Opţiunea Enforce Referential Integrity poate fi selectată numai daca se îndeplinesc condiţiile: A. B. C. D.

Câmpul selectat din tabelul primar are atributul de cheie străină; Câmpurile puse în corespondenţă au acelaşi tip de date; Cele două tabele au acelaşi număr de câmpuri; Cele două tabele sunt memorate în aceeaşi bază de date.

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

b) Variantele B, C şi D. d) Nici o variantă nu este corectă.

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 relaţia 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 restricţii: 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 operaţiilor de actualizare. a) Variantele A si B. c) Variantele B şi C

b) Variantele A si C. d) Toate variantele (A, B, C).

57

UNITATEA 5 INTEROGĂRI Sinteză Esenţa oricărui SGBD constă în selecţia datelor din tabele şi prezentarea acestora în diferite forme prin intermediul interogărilor sau al rapoartelor. Orice firmă îşi construieşte 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 interogărilor Se realizează folosind o grilă de proiectare în cadrul căreia sunt adăugate tabele şi câmpuri. Acest procedeu este cunoscut sub numele de “Query By Example” (QBE). Pe baza informaţiilor depuse în grilă programul ACCESS generează o instrucţiune în limbajul de interogare al datelor SQL (Structured Query Language). Pentru lucrul cu interogări avem următoarele două posibilităţi : 1) Prin intermediul modului de lucru Design View. În secţiunea Objects se va alege opţiunea 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 adăuga 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 următorii paşi: - se aleg câmpurile necesare interogării; - se specifică condiţiile de selecţie; - se precizează criteriile de filtrare impuse de cerinţa interogării; - se stabileşte modul de grupare; - se stabileşte modul de ordonare. 58

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

2) Cu ajutorul wizard-ului de interogări. Access generează codul SQL pentru fiecare interogare, fie că este realizată cu Design View sau cu wizard-ul. Codul SQL poate fi văzut prin selectarea opţiunii SQL View din meniul View. Se poate vizualiza astfel clauza select – from – where corespunzătoare interogării. De asemenea este posibilă scrierea unei interogări într-o astfel de fereastră acest lucru presupunând cunoaşterea temeinică a sintaxei SQL.

2. Criteriile de selecţie Se introduc în celula aflată la intersecţia coloanei câmpului 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.

59

Principalele criterii simple sunt : - apartenenţa la un interval de valori : BETWEEN valoare_inferioară AND valoare_superioară;

- apartenenţa la o listă de valori : IN (valoare 1, valoare2, …., valoare_n); - utilizarea operatorilor de comparaţii : <, >, <=, >=, <>, = ; - utilizarea operatorilor de negaţie : NOT valoare; - selecţia înregistrărilor care conţin sau nu valori : NOT NULL, IS NOT NULL sau NULL, IS NULL. Se pot specifica criterii de selecţie după un anumit text care, dacă va conţine spaţii, trebuie pus în ghilimele. În interiorul textului se pot folosi caractere generice "?" (orice în poziţia în care apare) ,"*" (orice în poziţia în care apare şi în următoarele) şi "#" (pentru caractere numerice).

3. Operatori a) Matematici: ^,-, *,/, \, Mod, + Operator Operaţia realizată ^ * / \ Mod + -

Ridicare la putere Înmulţire Împărţire Împărţire fără rest (doar câtul) Restul împărţirii unui număr la altul Adunare Scădere

b) Operatori relaţionali (de comparare): =, <>, <, >, <=, >= Operator = <> < > <= >=

Operaţia realizată Egalitate Diferit Mai mic Mai mare Mai mic sau egal Mai mare sau egal

c) Operatori pentru şiruri de caractere: & (concatenare), LIKE, NOT LIKE Operator Operaţia realizată Concatenează (lipeşte) două expresii cu transformarea & rezultatului într-un şir de caractere. Like Compararea a două şiruri 60

d) Operatori logici: AND, OR, EQV, IMP, XOR, NOT. Operator Operaţia realizată Not

Nu logic (negaţia)

And

Şi logic (conjuncţia)

Or

Sau logic (disjuncţia)

Xor

Excluziunea logică

Eqv

Echivalenţă logică

Imp

Implicaţia logică

Evaluarea expresiilor - operatorul AND Expresie 1

Expresie 2

Expresie 1 AND Expresie

True

True

True

True

False

False

True

Null

Null

False

True

False

False

False

False

False

Null

False

Null

True

Null

Null

False

False

Null

Null

Null

Evaluarea expresiilor - operatorul OR Expresie 1

Expresie 2

Expresie1 OR Expresie 2

True

True

True

True

False

True

True

Null

True

False

True

True

False

False

False

False

Null

Null

Null

True

True

Null

False

Null

Null

Null

Null

61

Operaţii de calcul predefinite în ACCESS Operaţia

Funcţia

Tipul de câmpuri

SUM

Suma valorilor unui câmp.

Numeric, Autonumber, Data şi Logic

AVG

Media aritmetică

Numeric, Autonumber, Data şi Logic

MIN

Valoarea minimă

STDEV

Numeric, Autonumber, Data, Logic, Text Valoarea maximă Numeric, Autonumber, Data Logic, Text Numărul de valori dintr-un Toate tipurile câmp Varianta valorilor unui câmp Numeric, Autonumber, Data şi Logic

FIRST

Prima valoare din câmp

Toate tipurile

LAST

Ultima valoare din câmp

Toate tipurile

MAX COUNT

4. Funcţii 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 exemplificăm: 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:

62

ƒ

ƒ ƒ ƒ ƒ ƒ ƒ ƒ

ƒ

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ă numărul zilei din săptămâna. 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”, săptămâni – “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(dobândă, valoare1, valoare2, …) Valorile trebuie să fie echidistante în timp si să fie valori plătite/ încasate la sfârşitul fiecărei perioade. Dobânda - reprezintă dobânda anuală. Funcţia NPV este asemănătoare cu PV, valorile utilizate de PV trebuie să fie constante, iar PV acceptă valori fie la începutul, fie la sfârşitul perioadei. Al doilea argument este negativ pentru că reprezintă o cheltuială. 3. FV(): Future Value – calculează valoarea viitoare pentru o serie de încasări/ plăti egale, făcute într-un număr de perioade, cu o anumită dobândă fixă. 63

FV(dobândă, perioada, plată, valoarea_prezenta, tip) Dobânda trebuie sa aibă aceeaşi unitate de măsura ca si perioada. Daca se cunoaşte dobânda anuala si incasabile/plăţile sunt făcute lunar atunci dobânda 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 sfârşitul perioadei sau 1 daca plăţile se fac la începutul perioadei. Valoare implicita 0. Banii plătiţi sunt reprezentaţi prin numere negative, iar cei încasaţi sunt reprezentaţi prin numere pozitive. 4. PV – Present Value: calculează valoarea prezentă a unui flux de încasări/ plăti viitoare. PV (dobândă, perioada, plată, vv, tip) Argumentul vv reprezintă valoarea viitoare, obţinută după efectuarea ultimei plăti/încasări. Exemplu: O persoană îşi permite să plătească 200 EUR pe lună în următorii 4 ani. Dobânda curentă de piaţă este de 9%. Cât de mare este împrumutul pe care i-l poate oferi banca? 5. 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) 6. PMT- Periodic Payment for an annuity calculează suma care trebuie achitată periodic pentru un împrumut/economie, pentru o anumita dobânda cunoscând numărul perioadelor de plată. PMT (dobândă, Perioada, vp, vv, tip) Exemple: Ce sumă trebuie plătită lunar pentru un împrumut de 10000 EUR cu o dobândă 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 dobândă anuală de 10% pe o perioadă de 5 luni. O persoană doreşte să strângă 50 000 $ în 18 ani prin economisirea unei sume lunare constante. Dobânda anuală este de 6%. 7. SLN (Straightline depreciation) - calculează amortizarea liniara a unui mijloc fix pe o perioada data SLN(cost_initial,val_reziduala,dur_amortizarii) ¾ Funcţii matematice: 1. Abs(): returnează valoarea absoluta a unui număr Ex. Abs(-1) returnează 1, Abs(1) = 1. 2. INT(): returnează valoarea întreaga a unui număr; Int(1234.55) returnează 1234. 64

3.

4. 5.

6.

Int(-55.1) returnează -56. Round(): returnează un număr rotunjit la un anumit număr de zecimale; Round(14.245, 2) returnează 14.24. Round(17.1351, 2) returnează 17.14 Rnd(): generează un număr aleatoriu; Sgn(): determina semnul unui număr; Sgn(-14) returnează -1. Sgn(12) returnează 1. Sgn(0) returnează 0. Sqr(): determina radicalul unui număr.

¾ Funcţii pentru şiruri de caractere 1. InStr(): are ca rezultat un număr 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 stânga 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(): Înlătură 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(): înlătură spaţiile de la sfârşitul unui text RTrim(“abcd “) are ca rezultat “abcd”. 8. Space(): Inserează un anumit număr de spaţii Space(3) are ca rezultat 3 spaţii 9. Trim(): înlătura spaţiile de la începutul şi sfârşitul unui şir de caractere: Trim(“ abcd “) returnează “abcd”. 10. ASC (şir_de_caractere): returnează codul primului caracter din şirul de caractere specificat.

5. Câmpurile calculate − pot fi definite in interogări, rapoarte, formulare; − se definesc astfel: Nume_camp: expresie 65

− puteţi introduce in expresiile calculate doar câmpuri numerice, currency, data calendaristica, text; − pot avea asociate nume si proprietăţi; − expresiile calculate se introduc in grila QBE in rândul field si se respecta următoarele cerinţe: pot conţine valori numerice si text, operatori matematici, denumirile câmpurilor, funcţii (IIF, ABS, DATE(), DatePart, DLOOKUP, TRIM, LEFT, RIGHT, MID, NOW() ) OBS: numele câmpurilor care conţin spatii (ex: data naşterii) se vor introduce intre paranteze drepte ([data nasterii]). Expresiile - sunt construite cu ajutorul operanzilor si operatorilor, respectând o anumita sintaxa.

6. Tipuri de interogări 1. Interogări de selecţie (SELECT QUERY): se folosesc pentru regăsirea datelor care îndeplinesc anumite condiţii, pentru gruparea înregistrărilor şi pentru efectuarea unor calcule pe baza datelor selectate. 2. Interogări de tip totaluri: permit crearea grupurilor de articole precum şi efectuarea de calcule cu valorile unor câmpuri din interiorul grupurilor. Pentru crearea interogărilor de tip total se va selecta opţiunea Totals din meniul View. Această opţiune va adăuga in grila de proiectare a interogării rândul Total. 3. Interogări cu parametri (PARAMETER QUERY): în acest tip de interogare valorile necesare la stabilirea criteriilor utilizate de interogare vor fi introduse de către utilizator. 4. Interogări de sinteză (interogări 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 asemănătoare tabelelor Pivot din Excel. Gruparea si sortarea datelor se face pe rânduri si coloane iar la intersecţia rândului cu coloana se pot efectua calcula diverse. 5. Interogări de acţiune: au ca efect localizarea şi modificarea datelor. Există patru interogări de tip acţiune: 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 adăugarea unor înregistrări într-un tabel existent în baza de date. c. Interogarea DELETE: şterge înregistrări din una sau mai multe tabele. Prin utilizarea unei interogări delete nu puteţi şterge doar conţinutul unui câmp ci se şterg înregistrări întregi. 66

d. Interogarea UPDATE: modifică conţinutul câmpurilor dintr-un tabel specificat. In general opţiunea Update Query din meniul Query este folosită pentru actualizarea unui număr mare de înregistrări care se află în unul sau mai multe tabele. Dacă aveţi de actualizat un număr mic de înregistrări dintr-un singur tabel atunci aceste modificări se pot face direct în foaia de date. 6. Interogări SQL (SQL QUERY): necesită pentru interogarea datelor comenzi SQL. Interogările specifice SQL sunt: UNION, PASSTHROUGH, DATA-DEFINITION, SUBQUERY. Interogările din această categorie nu pot fi create folosind grila de proiectare a interogării, fiind necesara tastarea directa, intr-o fereastra de proiectare a diferitelor instrucţiuni SQL. a. Union: Combină doua sau mai multe interogări clasice de tip select într-o singura interogare, articolele livrate de aceste interogări vor fi amestecate. Deoarece articolele unei interogări Union sunt returnate sub forma unui set de articole fiecare instrucţiune select din combinaţie trebuie să genereze acelaşi număr de câmpuri. Câmpurile puse in corespondenţă trebuie sa aibă acelaşi tip cu o singură excepţie: pot fi puse in corespondenţă câmpuri de tip numeric si câmpuri de tip text. b. Pass–Through: permite transmiterea instrucţiunilor SQL direct spre un calculator server de tip ODBC – de exemplu SQL Server; cu ajutorul interogărilor de acest tip se lucrează direct cu tabele memorate pe calculatorul server. c. Interogările 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 interogări in cadrul alteia duce la apariţia unei subinterogări - setul de rezultate obţinut de la o interogare va constitui argument pentru o alta.

67

Exemple de interogări Să se creeze o bază de date pentru o agenţie imobiliară. Baza de date va stoca informaţii despre agenţii imobiliari, despre imobile şi proprietarii acestora. Structura tabelelor este următoarea: 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 Suprafaţa – 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. 2. 3. 4.

Să se stabilească cheile primare pentru fiecare tabel. Să se salveze baza de date pe dischetă cu denumirea Agenţie imobiliară. Stabiliţi relaţiile dintre tabelele bazei de date. Introduceţi înregistrări în tabele.

¾ Interogări 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 următoarele informaţii: cartierul, numărul de camere, confortul, preţul solicitat.

68

2. Lista garsonierelor confort I din cartierul Grigorescu care au preţul mai mic de 50000 Eur. Lista va cuprinde următoarele câmpuri: camere, adresa,preţ solicitat, cartier.

¾ Cereri de interogare utilizând mai multe tabele Ofertă de imobile, ordonată după tip apartament si număr de camere. Interogarea va conţine următoarele câmpuri: Numele si prenumele proprietarului, Tip imobil, Localitate, Cartier, Număr de camere, Preţ solicitat.

¾ Interogări de selecţie cu câmpuri calculate 1. Să se calculeze preţul apartamentelor exprimat in lei (1 EUR=3.7 RON).

2. Să se calculeze preţul solicitat/m2:

¾ Interogări cu parametrii (PARAMETER QUERY) Lista imobilelor cu preţurile cuprinse intre 50000 si 80000 EUR.

69

¾ Interogări de tip totaluri 1. Sa se calculeze preţul mediu solicitat - pentru fiecare tip de imobil. Rândul 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.

¾ Interogări de acţiune: se creează la fel ca şi interogările de selecţie. După ce au fost adăugate câmpurile care fac parte din lista se selectează din meniul Query tipul de interogare corespunzător.

Fig. 17 Op iunile meniului Query

1. Make table query: In baza de date agenţie imobiliara să se creeze un nou tabel vânzări care să conţină apartamentele vândute.

70

2. Update query : Să se modifice cu 2% preţul solicitat pentru apartamentele din cartierele Gheorgheni si Mărăşti.

3. Delete query : să se şteargă din tabelul imobile toate imobilele vândute, din cartierul Mănăş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 următoarea formă:

¾ Exemple de subinterogări 1. Numele proprietarului cu preţul maxim solicitat pentru un apartament cu 3 camere. Rezolvare: se vor crea două interogări – prima pentru aflarea preţului maxim solicitat pentru un apartament cu trei camere, iar a doua pentru determinarea numelui proprietarului.

71

2. Lista apartamentelor care au preturile de vânzare mai mici decât media.

Verificarea cunoştinţelor 1. Funcţia AVG determină: a. b. c. d.

Suma valorilor memorate într-un câmp Media valorilor memorate intr-un câmp. Numărul total al valorilor depuse într-un câmp. Diferenţa valorilor memorate intr-un câmp.

2. Interogările constituite şi aplicate unei baze de date permit: A. Vizualizarea înregistrărilor care îndeplinesc o anumită condiţie; B. Modificarea, adăugarea şi chiar ştergerea datelor din tabele; C. Sortarea înregistrărilor după câmpuri sau grupuri. a. Numai varianta A si varianta B. c. Numai varianta B si varianta C.

b. Numai varianta A si varianta C. d. Toate variantele, adică A si B si C. 72

3. Funcţia SUM determină: a. b. c. d.

Deviaţia standard a valorilor memorate într-un câmp Suma valorilor memorate într-un câmp. Numărul total al valorilor depuse într-un câmp. Diferenţa valorilor memorate intr-un câmp.

4. Intr-o interogare de tip total funcţia COUNT determină: a. b. c. d.

Suma valorilor memorate intr-un câmp in interiorul unei grupări Media valorilor depuse într-un câmp. Numărul valorilor depuse într-un câmp în interiorul unei grupări. Diferenţa valorilor memorate intr-un câmp.

5. Care este cea mai importantă activitate în proiectarea unei aplicaţii în cadrul sistemelor de gestiune ale bazelor de date (SGBD)? a. b. c. d.

Definirea secvenţelor din programul principal. Definirea interogărilor (Queries). Concepţia ecranelor (Forms). Elaborarea rapoartelor asociate bazei de date sau/si interogărilor (Reports). e. Crearea bazei de date. f. Crearea etichetelor (Labels).

73

UNITATEA 6 LIMBAJUL SQL Sinteză

1. Scurt istoric Limbajul SQL (întâlnit ş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 relaţionale, bazate pe System R dar cu un limbaj puţin diferit de SEQUEL. Astfel că l-a botezat SQL, eliminând vocalele din SEQUEL şi trecând la pronunţia "es-qu-el". Expresiile din SEQUEL seamănă cu propoziţiile din limba engleză, fiind desigur mai structurate. SEQUEL a evoluat din predecesorul său 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ţă aceleaşi, deosebirea principală dintre ele fiind aceea că limbajul SQUARE are o sintaxă bazată în mare măsură pe notaţii matematice, în timp ce SQL are o sintaxă mai apropiată de limba engleză aşa cum arată şi denumirea limbajului (SQL sau SEQUEL – Structured English Query Language). Această sintaxă este mai adecvată programării pe computer şi totodată mai uşor de asimilat de către utilizatori. La ora actuală SQL este una din cele mai răspândite interfeţe pentru SGBD-urile relaţionale. În afară de System R limbajul SQL este disponibil şi sub alte SGBD-uri relaţionale cum ar fi SQBD ORACLE (pentru sisteme mari, dar şi computere personale profesionale) sau chiar dBASE (într-o variantă simplificată începând cu versiunea IV). In 1979, Corporaţia 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 relaţionale. Organizaţia Internaţională de Standarde (ISO) a adoptat deasemenea SQL ca limbaj standard pentru RDBMS. Toate RDBMSurile suportă unele forme de SQL şi toţi vânzătorii de astfel de sisteme s-au aliniat sau intenţionează să se alinieze la standardele ANSI. Asta nu înseamnă că nu mai apar diferenţe. Chiar şi la produsele aceleaşi firme, Microsoft Access şi SQL Server, pot fi semnalate diferenţe în implementarea limbajului. SQL este limbajul de interogare al unui sistem de gestiune al bazelor de date (SGBD. Operaţia fundamentală în SQL este maparea reprezentata din punct de vedere sintactic printr-o construcţie SELECT – FROM – WHERE (pe scurt construcţie SELECT). 74

2. Caracteristici ¾ SQL, ca şi majoritatea limbajelor de programare, foloseşte 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 informaţiile dorite, nu cum se obţin acestea. Cu alte cuvinte, SQL nu cere să fie specificată metoda de acces la date. ¾ Execuţia comenzilor SQL asupra înregistrărilor nu se poate face decât secvenţial, asupra câte unei singure înregistrări. Setul de înregistrări fiind văzut ca set de linii ale unui tabel. ¾ SQL poate fi folosit de un şir de utilizatori, incluzând administratorul bazei de date, programatorii de aplicaţii, personalul de management şi multe alte tipuri de utilizatori. ¾ SQL include comenzi pentru o varietate de sarcini, incluzând: - selecţia unor date; - inserarea, extragerea şi ştergerea rândurilor 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 consistenţei bazei de date;

3. Instrucţiuni SQL ¾ Instrucţiuni DDL (Data Definition Language) • Instrucţiunea CREATE – CREATE DATABASE CREATE DATABASE nume_baza_de_date; Ex: CREATE DATABASE vanzari; -



CREATE TABLE CREATE TABLE nume_tabel (câmp1 tip_data [constrangere] , câmp2 tip_data [constrangere] , câmp3 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);

Instrucţiunea ALTER TABLE – ALTER TABLE nume_tabel ADD nume_câmp tip_data [constrangere]; Ex: ALTER TABLE vanzari 75

ADD jud char; •

Instrucţiunea DROP • •

DROP TABLE nume_tabelă; DROP DATABASE nume_baza_de_date;

¾ INSTRUCŢIUNILE DML (Data Manipulation Language) •

Instrucţiunea 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#);



Instrucţiunea 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];



Instrucţiunea DELETE



DELETE FROM nume_tabel WHERE nume_coloana1 OPERATOR valoare1 [and/or nume_coloana2 OPERATOR valoare2]; Instrucţiunea 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]];

76

– 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 cunoştinţelor 1. SQL este acronimul pentru: a. b. c. d.

Standard Query Language. Structured Query Language. Select Query Language. Specifying Queries Relations.

2. Instrucţiunea SQL DROP DATABASE permite: Modificarea structurii unui tabel. b. Ştergerea unui tabel c. Ştergerea unei baze de date d. Modificarea înregistrărilor. a.

3. Care dintre următoarele tipuri de asocieri nu este posibilă in Access: 1. Inner Join 3. Cross Join

2. Left Outer Join 4. Right Outer Join

4. Instrucţiunea SQL ALTER TABLE permite: a. b. c. d.

Modificarea structurii unui tabel. Crearea unei baze de date Modificarea înregistrărilor. Ştergerea unui tabel

Aplicaţii practice I. Se consideră baza de date EVIDENTA STUDENTI. Să se creeze tabelul STUDENTI cu structura următoare: NRMAT - text(3) (număr matricol ex. 100, 101,102….) NUME - text(20) PRENUME – text(20) DN - dată calendaristică (data naşterii 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) 77

SEX – text(1) – (sexul f, m) TEL – text(15) (telefon ex. 094123456) ADR – text(25) (adresa ex. str. Gorunului nr. 5) OR – text(15) (oraşul ex. Turda, Gherla, ….) JUD - text(2) (judeţul ex. Cluj-CJ, Satu-Mare - SM) MEDIA – numeric, zecimal, media generala a studentului Să se introducă 10 înregistrări în tabela STUDENTI astfel încât să se respecte următoarele cerinţe: a) Să existe studenţi şi din alte localităţi, nu numai din Cluj-Napoca. b) Să existe studenţi de la ambele secţii AA şi SO. c) Să existe studenţi cu vârste mai mici de 20. d) Să existe studenţi în diferiţi ani de studiu. e) Să se definească regulile de validare pentru câmpul AN astfel încât să se poată introduce în tabel doar valorile 1, 2, 3 sau 4. f) Să se definească regulile de validare pentru câmpul SCT astfel încât să fie permise doar valorile AA sau SO. Pentru câmpul SEX valorile permise vor fi F sau M. g) Să se definească următoarele 30 de interogări pentru tabela STUDENTI. Interogările se vor salva cu numele: inter1, inter2,…, inter n. II. Să se afişeze folosind interogările următoarele informaţii din baza de date STUD: 1. o listă cu numele şi prenumele studenţilor care au domiciliul în ClujNapoca, ordonaţi descrescător după numărul matricol. 2. o listă cu numele şi prenumele studenţilor din Cluj-Napoca, ordonaţi crescător după vârstă. 3. o listă cu numele studenţilor bursieri din Cluj-Napoca. 4. o listă cu numele studenţilor a căror vârstă 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 studenţilor de sex masculin care au vârsta de 21 de ani şi nu sunt bursieri. 7. o listă cu numele studenţilor născuţi după data de 03/06/88. 8. o listă cu numele şi localitatea studenţilor care nu domiciliază în ClujNapoca, ordonaţi după câmpul secţie. 9. lista studentelor de la secţia SO. 10. lista studenţilor (de sex masculin) de la secţia AA. 11. o listă cu numele studenţilor (de sex masculin) de la SO care nu sunt bursieri. 12. o listă cu numele studentelor de la SO ordonate descrescător după vârstă. 78

13. lista studenţilor care nu au domiciliul în judeţul Cluj şi nu sunt bursieri, ordonaţi alfabetic după nume. 14. lista studentelor fără bursă din anul 2 de la secţia SO. 15. lista studenţilor bursieri, de sex masculin, din anul 2, de la secţia SO, care domiciliază în Cluj-Napoca. 16. lista studenţilor de la ambele secţii care nu sunt în anul 2. 17. lista cu numele studenţilor bursieri de la secţia SO din anul 2 care au numărul matricol mai mare decât 102. 18. Numele, prenumele studenţilor cu vârsta cuprinsă între 20 şi 25 de ani; 19. Studenţii care locuiesc în oraşele a căror denumire începe cu litere C. 20. Studenţii a căror nume începe cu litera D; 21. Studenţii din judeţele a căror indicativ începe cu litera B; 22. Toate înregistrările din baza de date; 23. Studenţii din judeţele SB, CJ, MM. 24. Studenţii grupaţi după câmpul media; 25. Media minimă; 26. Numele şi prenumele studenţilor cu media cea mai mică; 27. Media maximă; 28. Numele şi prenumele studenţilor cu media cea mai mare; 29. Media aritmetică a mediilor; 30. Numărul total de studenţi; 31. Vârsta medie, minimă şi maximă a studenţilor; 32. Numărul studenţilor bursieri şi numărul studenţilor nebursieri; 33. Numărul studenţilor bursieri; 34. Numărul studenţilor nebursieri; 35. Numărul studenţilor bursieri/nebursieri pe secţii; 36. Numărul studenţilor din fiecare judeţ; 37. Lista localităţilor; 38. Numărul studenţilor din fiecare judeţ - repartiţia pe oraşe; 39. Numărul de fete şi numărul de băieţi; 40. Repartiţia studenţilor pe secţii/an de studiu; 41. Media mediilor pe secţii/an de studiu; 42. Repartiţia studenţilor în funcţie de vârsta; 43. Lista studenţilor dint-un anumit judeţ. Indicativul judeţului se va introduce ca şi parametru. 44. Lista studenţilor dintr-un anumit an de studiu. Anul de studiu se va introduce ca si parametru. 45. Lista studenţilor dintr-o secţie şi dintr-un anumit an de studiu. Secţia si anul se vor introduce ca şi parametrii. 46. Lista studenţilor cu vârsta cuprinsă între 18-20 ani. Se va folosi parametrii. 47. Numele studentului care are un anumit număr de telefon. Numărul de telefon se va introduce ca parametru. 79

48. Repartiţia studenţilor pe secţii/an folosind Crosstab Query. 49. Repartiţia studenţilor pe judeţe/localităţi folosind Crosstab Query. 50. Repartiţia studenţilor în funcţie de medie/secţie. III. Să se creeze un tabel cu numele Studenţi_AA, pe baza tabelului Studenti, folosind interogările Make Table. Tabelul va conţine următoarele date referitoare la studenţii din secţia AA: nrmatr (număr matricol), nume, prenume), dn (data naşterii) şi media. IV. Să se creeze un tabel cu numele Copie care să conţină toate înregistrările 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 studenţii din secţia AA, an 3. VII. Să se modifice valorile din câmpul AN cu o unitate pentru studenţii care au media mai mare ca 5. VIII. Să se mărească media cu 10% pentru acei studenţi din secţia 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 relaţie atunci când unul sau mai multe câmpuri cheie dintr-un tabel se potrivesc cu unul sau mai multe câmpuri cheie din celălalt tabel. De obicei câmpurile corespondente din ambele tabele au acelaşi nume (nu este condiţie obligatorie), tip de date şi mărime. În Access există trei tipuri de relaţii între tabele. Relaţia One to One - fiecărei înregistrări din tabelul A îi corespunde o singură înregistrare în tabelul B, şi invers. Relaţia One to Many - o înregistrare din tabelul A poate avea mai multe înregistrări asociate în tabelul B, şi invers. Relaţia Many to Many –unei înregistrări din tabelul A îi sunt asociate mai multe înregistrări în tabelul B, şi invers. Integritatea reverenţială: un set de reguli care protejează datele prin stabilirea de restricţii pentru adăugarea şi ştergerea de înregistrări din tabelele relaţionate. Asocierea (Join) determină modul în care legătura dintre două tabele afectează rezultatul unei interogări care conţine informaţii din ambele tabele. Interogările sunt obiectele bazei de date prin intermediul cărora utilizatorul poate extrage informaţii din tabele. Crearea interogărilor se realizează folosind o grilă de proiectare în cadrul căreia sunt adăugate tabele şi câmpuri. Pe baza informaţiilor introduse în grilă programul ACCESS generează o instrucţiune SQL (Structured Query Language). SQL este limbajul standard de interogare al bazelor de date relaţionale. 80

Sarcini şi teme ce vor fi notate 9 Studierea de către studenţi a materialului teoretic aferent modulului, cuprins în suportul curs şi în bibliografia suplimentară indicată. 9 Participarea la aplicaţiile practice, teme de laborator; 9 Lucrarea practică nr. 2.

Lucrarea practică 2 (LP2) I.

Să se creeze o baza de date având denumirea HOTEL. Să se copieze în această bază de date tabelul InfoClienti creat in cadrul Lucrării Practice 1. Să se adauge un nou tabel - Rezervari care să conţină date referitoare la rezervările camerelor unui hotel. Structura tabelului Rezervari este următoarea: 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ă următoarele reguli de validare: a. Câmpul de date TipCamera să permită introducerea următoarelor valori: single, double, apartment, suite, apartament de lux. Valorile vor fi selectate dintr-o listă (Lookup). b. Câmpurile 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 rezervări. IV. Să se creeze relaţiile (legăturile) dintre cele două tabele şi să se forţeze integritatea referenţială. V. Să se adauge 20 de rezervări, respectându-se următoarele 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 rezervări pentru fiecare tip de cameră. VI. Să se definească următoarele interogări pentru baza de date HOTEL. Interogările se vor salva cu numele: inter1, inter2,…, inter n. 1. o listă cu numele, prenumele şi numărul de telefon al clienţilor din judeţul Cluj, ordonată crescător după câmpul nume. 81

2. o listă cu numele şi localitatea clienţilor care nu domiciliază în judeţul Cluj, ordonaţi crescător după câmpul localitate. 3. o listă cu numele, prenumele clienţilor, data sosirii şi data plecării – pentru acei clienţi care au rezervat camere de tip Double. 4. o listă cu numele şi prenumele clienţilor (concatenate intr-un singur câmp), ordonată crescător. 5. o listă cu adresele de corespondenţă ale clienţilor. Se va concatena într-un singur câmp adresa, localitatea şi judeţul. 6. clienţii a căror nume începe cu litera P; 7. clienţii a căror 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 numărul de zile pentru care au făcut 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 născuţi în anul 1985. 13. numele si prenumele clienţilor născuţi în luna octombrie. 14. lista clienţilor care au făcut rezervarea înainte de luna mai 2007 sau după luna octombrie 2007. 15. o listă cu numele, prenumele şi vârsta clienţilor. 16. numele, prenumele, ziua, luna, anul naşterii, data naşterii. 17. lista clienţilor români dint-un anumit judeţ. Indicativul judeţului se va introduce ca şi parametru. 18. lista clienţilor al căror nume începe cu o anumită literă. Litera se va introduce ca si parametru. 19. Vârsta medie, minimă şi maximă a clienţilor. 20. Numărul clienţilor străini. 21. Numărul de clienţi din fiecare tară. 22. Numărul clienţilor din România. 23. Numărul rezervărilor anulate. 24. Perioada medie pentru care s-au făcut rezervări. 25. Numărul de rezervări pentru fiecare tip de cameră. VII. Să se creeze un nou tabel cu numele CHKINN_info, pe baza datelor din tabelul Rezervări folosind interogările Make Table. Tabelul va conţine următoarele câmpuri RezervareID, DataSosire, DataPlecare, NumarAdulţi şi NumărCopii. VIII. Să se creeze un tabel cu numele Copie care să conţină toate înregistrările din tabelul Rezervări. 82

IX. Să se şteargă din tabelul Copie toate rezervările neconfirmate. X. Să se şteargă din tabelul Copie rezervările care au fost făcute în luna august. XI. In tabelul Copie să se dubleze numărul de camere rezervate pentru tipul de camera Apartment. Comprimaţi (arhivaţi) baza de date HOTEL cu utilitarul WinRAR şi transmiteţi arhiva pe email la adresa [email protected] sau pe portalul ID la adresa [email protected]. 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 lucrării se face conform specificaţiilor din secţiunea „Organizarea temelor în cadrul cursului”, partea 1 a materialului. Bibliografia modulului 1. Avram-Niţchi, 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, Bucureşti, 1999. 4. Kovács, Sándor, Access 2000 – Implementarea bazelor de date, Editura Albastră, Cluj-Napoca, 2003. 5. Năstase, P., Mihai, F., Bărbulescu, B., Şova, R.A., Stanciu, A., Covrig, L., Baze de date în Microsoft Access 2000, Teora, Bucureşti, 1999. 6. Teodorescu Alexandru, Lecţii de Access, Editura Albastră, ClujNapoca, 2002. 7. Mediul Internet.

83

Modulul III ƒ ƒ

Unitatea 7. Formulare Unitatea 8. Rapoarte

Scop şi obiective Scop Acest modul urmăreş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 înregistrările şi cum să elaboreze situaţii de ieşire (rapoarte) în Access. Obiective 9 Precizarea rolului ecranelor in vizualizarea si/sau modificarea datelor; 9 Proiectarea formularelor în Access; 9 Crearea subformularelor; 9 Utilizarea controalelor; 9 Precizarea rolului rapoartelor în cadrul sistemelor informatice; 9 Proiectarea rapoartelor folosind Microsoft Access 2000; 9 Sortarea şi a gruparea datele în cadrul rapoartelor; 9 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.

84

UNITATEA 7 FORMULARE Sinteză Formularele reprezintă interfaţa principală între utilizator şi o aplicaţie Microsoft Access, fiind obiecte ale bazei de date ce permit introducerea şi afişarea datelor într-o manieră atractivă şi prietenoasă. În cadrul unei aplicaţii, formularele pot îndeplini mai multe funcţii: 1. Afişarea şi editarea (corectarea) datelor – este cea mai des întâlnită formă de utilizare a formularului. De fapt, formularul permite afişarea datelor în forma dorită de proiectantul aplicaţiei. De asemenea, datele afişate în cadrul formularelor pot fi modificate sau chiar şterse. 2. Controlul operaţiilor realizate de aplicaţie – se pot proiecta formulare care, împreună cu comenzi macro sau cu proceduri Visual Basic, să realizeze afişarea automată a anumitor date sau executarea automată a unui şir de operaţii cum ar fi deschiderea unui subformular dintr-un formular. 3. Introducerea de date. 4. Afişarea de mesaje – formularele pot furniza informaţii privind modul în care aplicaţia poate fi utilizată sau despre operaţiile ce urmează a fi executate. 5. Tipărirea informaţiilor – formularele pot fi folosite si pentru tipărirea de informaţii la imprimantă. Un formular este compus din cinci părţi (zone): antetul de formular, antetul de pagină, zona de detaliu, subsolul de pagină şi subsolul de formular.

85

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 apărând fereastra New Form.

Dintre opţiunile 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 apărea pe ecran o alta fereastra Form Wizard din care se vor alege câmpurile tabelei asupra cărora va opera noul formular care dorim să îl construim.

Prin intermediul butonului Next putem trece de la o fereastră la alta. În următoarea 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 afişate pe coloane. Se poate 86

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 afişare. 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 apărând fereastra New Form.

2. Dintre opţiunile 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 câmpurilor Fereastra de proiectare a formularului

87

Pe ecran va apărea fereastra de proiectare a formularului, lista câmpurilor (Field List) şi trusa cu instrumente (vezi imaginea anterioară). Principale controale care pot fi folosite în cadrul formularelor sunt: Etichetele - Label : obiecte care afişează date de tip text, sunt folosite pentru descrieri. Casete cu text -Text Box: permit afişarea datelor din tabele, introducerea şi editarea acestora. Butoane de comanda - Command button: butoane care au asociate o serie de acţiuni. Casete de validare - Check Box: au doua stări Off si On Butoane de opţiune - Option button – se creează cu ajutorul lor grupuri de butoane de opţiune. Utilizatorul nu se poate selecta decât un singur buton din cadrul grupului (o singură opţiune), la un moment dat. Liste - List Box: afişează 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 adăuga şi un antet şi un subsol de pagină. În subsolul de pagină se poate introduce data curenta (Insert->Date and Time), numărul de pagină (Insert->Page Number), etc. 4. Cu ajutorul mouse-ului (Click+Ctrl) se selectează câmpurile care vor intra în componenţa formularului. Prin drag-and-drop se vor poziţiona câmpurile 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 afişarea datelor din mai multe tabele sau cereri de interogare, aflate în general în relaţii de tipul unu la unu sau unu la mai mulţi. Astfel în 88

formularul principal vor fi afişate datele din partea unu a relaţiei, iar în subformular cele din partea mai mulţi. Legătura dintre un formular şi un subformular reflectă legătura dintre tabelele pe care se bazează. Posibilităţile de creare ale unui ansamblu de tip formular-subformular sunt : - crearea formularului si subformularului concomitent; - crearea subformularului şi adăugarea 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 legătura între formularul principal şi subformular; - se verifică legătura şi apoi rezultatul. 1.4. Metoda drag & drop în cazul formularelor Pentru aducerea unui subformular într-un formular principal se parcurg următorii paşi: 9 se deschide formularul principal în modul Design View; 9 se trece în fereastra Database, prin activarea tastei F11, se activează butonul Forms, care va afişa lista tuturor formularelor din baza de date; 9 se deplasează pictograma corespunzătoare subformularului din fereastra Database în spaţiul formularului principal, ceea ce va avea ca efect adăugarea unui control de tip subformular; 9 dacă este cazul se deplasează controlul în locul dorit şi se redimensionează în funcţie de necesităţi; 9 se execută dublu-click pe bordura controlului ce reprezintă subformularul, pentru a afişa lista de proprietăţi a acestuia; 9 se verifică legătura dintre formularul principal şi subformular prin intermediul proprietăţilor Link Child Fields şi Link Master Fields care sunt automat definite de Access pe baza legăturilor dintre tabele; în caz contrar se stabilesc cele două câmpuri de legătură se trece în modul Form View pentru verificarea rezultatului; 9 pentru a aduce modificări î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 următoare). 89

90

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

Verificarea cunoştinţelor 1. Care sunt zonele importante ale unui formular? 2. Ce este un subformular? 3. Care sunt etapele creării unui subformular? 4. Care sunt tipurile de controale care pot fi adăugate intr-un formular? 5. Formularele construite in cadrul unei baze de date permit: a) Afişarea şi editarea datelor; b) Introducerea datelor; c) Controlul operaţiilor aplicaţiei 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.

91

Aplicaţii practice Se consideră baza de date FACTF . Câmpurile care intra în definiţia 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 următoarele câmpuri : NRF - număr 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 relaţia de tipul One-to-Many între cele două tabele. d) Să se creeze prin intermediul wizard-ului un formular cu numele WFIRMA corespunzător 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 corespunzător 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ă conţină un formular principal - ecranul WFIRMA şi un subformular WFACTURA. g) Să se verifice legătura dintre tabele, proprietăţile Link Child Fields şi Link Master Fields.

92

UNITATEA 8 RAPOARTE Sinteză Vizualizarea datelor dintr-o bază de date se poate face pe ecran sau hârtie (la imprimantă) prin intermediul foilor de date, formularelor şi situaţiilor finale. Ultima reprezintă cea mai potrivită posibilitate de prezentare a datelor pe hârtie. O situaţie finală (REPORT) este o grupare de date prezentate într-un anumit format şi o structură de pagină în funcţie de necesităţile utilizatorilor şi care servesc diverselor scopuri de subtotaluri (după anumite criterii), subformulare grafice şi obiecte de tip OLE. Sursa datelor unei situaţii finale o constituie în principal cererile de interogare sau tabelele, restul făcând parte din structura acestora. În general dacă datele ce trebuie introduse în situaţia finală au ca sursă mai mult de un tabel, se creează mai întâi o cerere de interogare (care reuneşte datele din tabele) şi apoi situaţia finală bazată pe aceasta. Elementele de legătură între sursa de date şi situaţiile finale sunt controalele, zonele de text (pentru datele numerice şi alfanumerice), cadrele (pentru imagini şi grafice) şi etichetele (pentru titluri, linii separatoare şi pătrate decorative. Din punct de vedere al formei de prezentare, situaţiile finale sunt de trei feluri: 1) Pe o singură coloană simplă; 2) Gen tabel – cu posibilităţi de a genera mai multe grade de totaluri; 3) Etichetă poştală. Crearea unei situaţii finale (REPORT) se poate face în două moduri: 1) Fară instrumentul wizard, utilizând 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 doreşte afişarea unor situaţii finale.

93

1. Crearea rapoartelor Modul de creare a rapoartelor este asemănător cu cel de creare a formularelor. Controalele care apar în corpul rapoartelor sunt 3 feluri: independente, dependente şi calculate. În cadrul rapoartelor pot fi adăugate etichete, căsuţe cu text, linii, subrapoarte, butoane de comandă, etc. Câmpurile 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 parţial sau total. Vizualizarea parţială (un eşantion) 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 fişier. Rezultatul unui raport poate fi tipărit sau salvat într-un fişier, în vederea conservării. Înainte de tipărire este necesară definirea parametrului de orientare a paginii. Utilizarea instrumentului wizard permite crearea unor situaţii finale cu o structură standard care nu ţine seama în totalitate de cerinţele utilizatorului. Această structură poate fi ulterior modificată cu ajutorul instrumentelor disponibile (trusa cu instrumente). Trusa cu intrumente (Toolbox) şi tipurile de controale au acelaşi conţinut şi funcţionalitate ca şi cele de la formulare. Prin urmare, toate operaţiile de aducere a câmpurilor din lista de câmpuri a 94

tabelului, redimensionarea, deplasarea şi modificarea acestora se fac într-o manieră asemănătoare ca şi la formulare.

2. Sortarea şi regruparea datelor Operaţiile de sortare şi regrupare a datelor apar foarte des în cadrul aplicaţiilor economice care utilizează un volum mare de date. Pentru sortarea datelor se trece pe modul de lucru Design View - se alege care va afişa pe ecran o fereastră dialog:

-

în prima linie din coloana Field/Expression se selectează un nume de câmp sau se introduce o expresie; se continuă cu linia a doua, etc. - în coloana Sort Order se stabileşte ordinea de sortare: crescătoare (Ascending) sau descrescătoare (Descending); valoarea implicită fiind crescătoare. - se închide fereastra de dialog. Prima linie din fereastra de dialog corespunde primului nivel de sortare, a doua celui de-al doilea etc. 95

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 situaţii finale, una dintre acestea trebuie să fie definită ca şi situaţie principală iar celelalte substituaţii (ca şi ansamblul formular principal - subformular). Modul de lucru este asemănător cu cel de la formulare/subformulare.

Verificarea cunoştinţelor 1. Ce sunt rapoartele? 2. Care dintre operaţiile de mai jos nu este caracteristică elaborării rapoartelor? a) b) c) d)

Gruparea datelor; Inserarea unui IF înlănţuit; Numerotarea paginilor; Sintetizarea datelor.

3. Câmpurile 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)

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

b) Variantele B, C şi D. d) Varianta G.

4. Pentru introducerea unor câmpuri calculate în cadrul rapoartelor se folosesc: a) b) c) d)

Etichete (Label) Căsuţe de text (text box) Butoane radio (radio buttons) Căsuţ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. 96

Aplicaţii practice 1. Considerăm baza de date ANGAJAT.MDB având în componenţă câmpurile: NrOrd - numeric - întreg Nume - text - 10 Prenume - text - 10 Oras – text - 10 Varsta – numeric - întreg Salariu – numeric - întreg Se cere: I. II.

III. IV. V. VI.

Să se introducă 7 înregistrări cu diferite persoane din oraşe distincte. Să se realizeze rapoarte prin intermediul cărora să se afişeze: a) Raport_1 - numele şi prenumele angajaţilor b) Raport_2 - numele, prenumele şi salariul angajaţilor c) Raport_3 - numărul de ordine, numele, prenumele şi oraşul de provenienţă al persoanelor respective. d) Raport_4 - numele, prenumele angajaţilor şi totalul lor e) Raport_5 - media de vârsta a angajaţilor 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 asemănările dintre subraport şi subformular. Să se creeze un raport Raport_11 care să conţină toate informaţiile prezentate de Raport_1,…, Raport_9.

Sumar Formularul este un obiect care permite introducerea datelor, afişarea acestora într-o manieră atractivă şi prietenoasă sau controlul întregii aplicaţii. Formularul constituie interfaţa dintre utilizator şi datele stocate în baza de date. Formularele simplifică vizualizarea, introducerea şi modificarea datelor. Prin intermediul formularelor se pot realiza diverse operaţii cum ar fi: sortarea, căutarea, actualizarea unor date. Rapoartele sunt obţinute pe baza prelucrării datelor din tabele şi sunt create pentru a fi afişate pe ecran sau tipărite la imprimantă. 97

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 adăugate 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 9 Studierea de către studenţi a materialului teoretic aferent modulului, cuprins în suportul curs şi în bibliografia suplimentară indicată. 9 Participarea la aplicaţiile practice, teme de laborator; 9 Lucrarea practică nr. 3.

Lucrarea practică 3 (LP3) Deschideţi baza de date Hotel, creată în cadrul Lucrării 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 corespunzător tabelei Rezervări, de tip tabular şi folosind stilul stone. Să se adauge formularului eticheta - FEREASTRA INTRODUCERE DATE REZERVĂRI. Formularul va fi salvat cu denumirea EcranRezervări. 3. Să se creeze următorul formular şi să se salveze cu denumirea Meniu principal:

98

La selectarea opţiunii Vizualizare/Modificare clienti se va deschide formularul EcranClienti, la selectarea opţiunii Vizualizare/Modificare rezervări se va deschide formularul EcranRezervări 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 cărora să se afişeze: a) Raport_1 - numele şi prenumele si numărul 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 români. Raportul va fi creat prin intermediul wizard-ului, datele vor fi grupate după câmpul judet, si vor fi ordonate alfabetic după câmpul 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 rezervări. e) Raport_5 – numele, prenumele clientului, data sosirii, data plecării, numărul de nopţi. f) Raport_6 – lista rezervărilor grupată după tipul de cameră. Să se calculeze pentru fiecare tip de cameră numărul de rezervări, numărul minim şi maxim de nopţi pentru care s-au făcut rezervări. În subsolul raportului să se afişeze numărul total de camere rezervate, numărul de total de rezervări. Să se adauge în antetul raportului o imagine cu un hotel. III. Comprimaţi baza de date cu utilitarul WinRAR (puteţi să îl descărcaţi gratuit de pe Internet) şi transmite-ţi arhiva prin email la adresa sau pe portalul ID la adresa [email protected] [email protected] . 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 lucrării se face conform specificaţiilor din secţiunea „Organizarea temelor în cadrul cursului”, partea 1 a materialului. Bibliografia modulului 1. Avram-Niţchi, 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. 99

3. Harkins, S.S., Hansen, K., Gerhart, T., Utilizare Microsoft Access 2000, Teora, Bucureşti, 1999. 4. Kovács, Sándor, Access 2000 – Implementarea bazelor de date, Editura Albastră, Cluj-Napoca, 2003. 5. Năstase, P., Mihai, F., Bărbulescu, B., Şova, R.A., Stanciu, A., Covrig, L., Baze de date în Microsoft Access 2000, Teora, Bucureşti, 1999. 6. Teodorescu Alexandru, Lecţii de Access, Editura Albastră, ClujNapoca, 2002. 7. Mediul Internet.

100

Modulul IV ƒ ƒ

Unitatea 9. Macro Unitatea 10. Module

Scop şi obiective Scop Acest modul urmăreş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 9 Identificarea acţiunilor care pot fi efectuate prin intermediul comenzilor Macro; 9 Crearea şi rularea comenzilor Macro în Microsoft Access 2000; 9 Exportul şi importul datelor; 9 Publicarea datele pe Internet prin intermediul obiectelor Pages; 9 Editarea modulelor în Microsoft Access 2000; 9 Prezentarea principalelor elemente ale limbajului Visual Basic; 9 Utilizarea instrucţiunilor pentru introducerea şi afişarea datelor, 9 Utilizarea instrucţiunilor IF, While, Select, Do, For în cadrul modulelor. Concepte de bază: comenzi Macro,Module, import, export, Pagini web, Visual Basic, variabile, funcţii, instrucţiuni secvenţiale.

101

UNITATEA 9

Macrouri Sinteză Până în prezent s-a ilustrat modul de construcţie a principalelor obiecte care compun o aplicaţie Access. Se poate observa cu uşurinţă că o aplicaţie complexă presupune un număr mare de obiecte (formulare, interogări, rapoarte, etc.). Toate aceste obiecte trebuiesc legate într-un flux continuu de operaţii, trecerea de la un obiect la altul realizându-se automat. Cu alte cuvinte, în cadrul unei aplicaţii Access o importanţă deosebită o prezintă automatizarea acesteia. Prin automatizare înţelegem că pe baza unei acţiuni a utilizatorului (o apăsare pe buton de pe ecran sau de la tastatură, un dublu click) determină realizarea uneia sau a mai multor operaţii (deschiderea unuia sau mai multor obiecte, rularea unor interogări, etc.). Această automatizare a aplicaţiilor 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 fără ca realizatorul aplicaţiei să fie nevoit să cunoască un anumit limbaj de programare. Prin evenimente înţelegem: - modificări ale datelor; - deschiderea sau închiderea unui formular sau raport; - sau chiar diferite selecţii asupra obiectelor de control în cadrul unor formulare. În cadrul comenzilor MACRO pot fi incluse un număr mare de acţiuni a căror derulare poate fi condiţionată de anumite valori afişate în formulare sau rapoarte. Microsoft Access oferă un număr mare de acţiuni ce pot fi executate în cadrul unor comenzi macro: - deschiderea sau închiderea de tabele, interogări, formulare sau rapoarte - vizualizarea şi tipărirea rapoartelor - rularea interogărilor - apelarea altor comenzi macro - efectuarea condiţionată a anumitor acţiuni - căutarea anumitor date în tabele - deschiderea sau includerea diferitelor meniuri din Access 102

-

afişarea de mesaje de atenţionare sau chiar sunete de atenţionare ştergerea, redenumirea, copierea sau salvarea diferitelor obiecte ale aplicaţiei 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ă părţi: - Lista de acţiuni cu comentarii - Descrierea fiecărei acţiuni din cadrul listei

2. Comunicarea între aplicaţiile Office 2000 Pachetul Office 2000 produs de Microsoft s-a dorit a fi un instrument util şi foarte performant cu ajutorul căruia să se poată realiza un număr mare de sarcini în cadrul biroului unei firme sau chiar acasă. Creşterea popularităţii produsului Office se datorează, pe lângă gradul sporit de complexitate, facilităţii sale deosebite de a permite diferitelor aplicaţii ce-l compun să comunice între ele. Astfel, date ce se găsesc într-o aplicaţie Access pot fi transferate (exportate) într-un document Word în vederea realizării 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 informaţiei între diferite aplicaţii Windows sub formă de obiecte. Metoda OLE oferă un mare avantaj aplicaţiilor realizate în ACCESS, putând fi create baze de date de tip multimedia în care pot fi stocate fişiere audio (WAV, MID), fotografii şi desene (BMP, TIF), animaţie şi filme (AVI). 103

Access introduce 3 facilităţi: 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 funcţii, precum şi transmiterea de date între Access şi orice altă aplicaţie Windows care suportă facilitatea DDE. 2) ActiveX - permite crearea unor anumite legături î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), incluzând următoarele 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 fişier către care se efectuează exportul de date din tabelă (.rtf, .xls, .htm).

104

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 concurenţial, 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 anunţat, înainte de lansarea efectivă - produsului să i se aducă permanente îmbunătăţiri - să ocupe o piaţă cât mai largă, dacă e posibil la nivel mondial - să urmărească pătrunderea pe noi pieţe SERVERUL WEB - reprezintă sistemul pe care rulează un program, numit demon httpd, ce are ca scop distribuţia informaţiei stocate sub forma unor documente. Accesul la informaţia de pe un server Web se obţine prin intermediul unui program-client numit navigator sau browser. Navigatorul şi serverul Web cooperează după modelul client-server. Secţiunea 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

105

Verificarea cunoştinţelor 1. Ce înţelegeţi prin MACRO: a. un obiect care conţine o definiţie structurată a uneia sau mai multor acţiuni; b. un obiect care include un fişier HTML; c. un obiect care conţine proceduri definite de utilizator; d. un obiect proiectat pentru a fi tipărit pe plicuri cu corespondentă. 2. Să se creeze macro-uri pentru: a) deschiderea unei tabele - MACRO-1 b) deschiderea unui raport - MACRO-2 c) ieşirea dintr-o aplicaţie Access- MACRO-3 d) rularea unei interogări- 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.

Utilizând baza de date ANGAJAT, creaţi un document Internet care prezintă conţinutul acesteia. Să se deschidă documentul astfel creat cu ajutorul browser-ului Microsoft Internet Explorer. Observaţi denumirea fişierului nou creat şi mai ales extensia acestuia.

106

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 proprietăţi. Prin intermediul metodelor se acţionează asupra stării unui obiect, în timp ce proprietăţile indică starea acestuia. Editarea modulelor în Access: Limbajul Visual Basic constituie instrumentul de programare pentru aplicaţiile 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 alcătuite din: - declaraţii de variabile - tipuri de date utilizator - proceduri şi/sau funcţii - declaraţii API Pentru a scrie o procedură sau o funcţie Access se alege din fereastra unei baze de date ultima secţiune denumita simbolic Modules.

107

Procedurile şi funcţiile pot fi asamblate în module, în funcţie de cerinţele programatorului. O procedură sau o funcţie 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 făcut modificări 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 facilităţi de colorare a unor cuvinte, declaraţii sau fraze scrise eronat.

1. Instrucţiuni de afişare şi introducere a datelor Formularele şi rapoartele reprezintă o formă elegantă de introducere şi afişare a datelor. În VBA există instrucţiuni pentru introducerea unor date şi afişarea de mesaje. InputBox (<mesaj>, [], [], [<x>], [], [, []) - permite introducerea datelor sub forma unei secvenţe de caractere de la tastatură 108

MsgBox (<mesaj>, [], [] [], []) - permite afişarea unui mesaj şi opţional poate returna o constantă în funcţie 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 Număr memorat pe 64 de biţi, virgulă mobilă. Valori de la – 1,797*10308 pâna la +1,797*10308 Număr memorat pe 32 de biţi, virgulă mobilă. Valori de la – 3,4*1038 pâna la +3,4*1038 Număr memorat pe 64 de biţi. Valori posibile : 922337203685477,5808 până la 922337203685477,5808 Număr întreg pe 8 biţi. Valori posibile 0-255. Număr întreg pe 16 biţi. Valori posibile : -32768 pâna la 32767. Număr întreg pe 32 de biţi. Valori posibile : -2147483648 până la 217483647. Conţine 2 valori logice : TRUE (adevărat –1) sau FALSE ( fals 0) Conţine date calendaristice şi timp. Se utilizează între diez(#) Şir de caractere. Poate conţine 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 funcţie - într-un modul - în toate modulele (publice) Variabilele active se specifică cu ajutorul declaraţiei 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 afişarea rezultatului :

109

Execuţia unui modul VBA se face alegând opţiunea 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. 110

-

procedură se apelează cu CALL nume_procedură. Procedurile pot fi definite în module diferite. Exemplu de apel pentru o procedură în cazul nostru pentru împărţire.

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

111

În urma execuţiei modulului 1 se vor afişa cele două rezultate, înmulţirea urmată apoi de împărţire. Declararea tablourilor: Un tablou este o mulţime de elemente de acelaşi tip care pot fi referite prin intermediul indicilor. Numărul de indici constituie dimensiunea tabloului. Numărarea elementelor pentru un indice începe de la 0 şi se termină cu numărul maxim pentru care este definit. Numărul de elemente dintr-un tablou se pot specifica în momentul declarării (tablouri alocate static), acest număr rămânând neschimbat pe toată durata de existenţă a variabilei tablou sau în momentul redimensionării 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 număr 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 instrucţiunii 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 conţinute de elementele tabloului se pierd prin acest apel, iar în a doua variantă se păstrează valorile elementelor până î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 instrucţiuni : 1. instrucţiunea IF 2. instrucţiunea SELECT… CASE 3. instrucţiunea WHILE….WEND 4. instrucţiunea DO…LOOP 5. instrucţiunea FOR…NEXT

112

1. Instrucţiunea IF IF

condiţie

THEN ELSE

secvenţa_de_instrucţiuni_1 secvenţa_de_instrucţiuni_2

ENDIF Efect: se evaluează condiţia, dacă este adevarată se execută secvenţa de instrucţiuni 1, iar dacă e falsă se execută secvenţa de instrucţiuni 2. 2. Instrucţiunea SELECT CASE SELECT CASE expresie_selectoare CASE lista_expresii_case_1 secvenţa_de_instrucţiuni_1 CASE lista_expresii_case_2 secvenţa_de_instrucţiuni_2 CASE lista_expresii_case_3 secvenţa_de_instrucţiuni_3 … CASE ELSE secvenţa_de_instrucţiuni_n END SELECT Efect: se evaluează expresia_selector şi daca e egală cu una din listă de expresii se execută secvenţa de instrucţiuni corespunzătoare. Dacă nici una nu corespunde, se execută secvenţa de instucţiuni n. 3. Instrucţiunea WHILE…WEND WHILE condiţie secvenţa_de_instrucţiuni WEND Efect: se evaluează condiţie şi atât timp cât e adevărată se execută secvenţa de instrucţiuni. Dacă nu e adevărată, se va trece la următoarea instrucţiune de dupa WEND.

4. Instrucţiunea DO…LOOP Varianta a) DO WHILE|UNTIL condiţie secvenţa_de_instrucţiuni 113

EXIT DO secvenţa_de_instrucţiuni LOOP Efect: în varianta DO WHILE…LOOP se repetă secvenţa de instrucţiuni atâta timp cât condiţia este adevărată. Cu EXIT DO se face ieşirea forţată din structură. În varianta DO UNTIL… LOOP se repetă secvenţa de instrucţiuni până când condiţia devine adevărată. Varianta b) DO secvenţa_de_instrucţiuni EXIT DO LOOP WHILE|UNTIL condiţie În varianta DO…LOOP WHILE se repetă secvenţa de instrucţiuni atâta timp cât condiţia este adevărată. În varianta DO…LOOP UNTIL se repetă secvenţa de instrucţiuni până când condiţia este adevărată. 5. Instrucţiunea FOR…NEXT FOR var_contor=val_iniţială TO val_finala STEP val_pas secvenţa_de instrucţiuni EXIT FOR secvenţa_de_instrucţiuni NEXT var_contor Cu exit for se face ieşirea forţată dintr-o structură FOR. Valoarea pasului cea implicită este 1.

Verificarea cunoştinţelor I. Să se scrie o subrutină pentru adunarea, scăderea, înmulţirea şi împărţirea a două numere reale. II. Să se scrie o subrutină de afişare a rezultatelor. III. Să se scrie o subrutină pentru calculul radicalului. Rezolvare : Option Compare Database 114

Sub radical() Dim a As Double Dim b As Double Dim c As Double MsgBox ("Introduceţi valoarea din care se va extrage radicalul :") b = InputBox(a) MsgBox ("Rezultatul corect dupa ce apeşi OK este:") MsgBox (Sqr(b)) End Sub IV. Să se scrie o subrutină pentru calculul funcţiei factorial. V. Să creeze formulare şi module pentru afişarea unui meniu principal care să conţină următoarele butoane : 1. INTRODUCERE DATE STUDENT – se apelează forma cu datele studentului 2. RAPOARTE – se apelează un anumit raport 3. INTEROGĂRI – se apelează o anumită interogare Se va folosi la fiecare buton Event Builder cu care se vor construi apoi modulele care apelează formele corespunzătoare pentru a), b), c). Pentru module se va folosi un cod de genul următor : Option Compare Database Option Explicit Private Sub command1_click () DoCmd.Close DoCmd.OpenForm ("nume_formă") End VI. Ce înţelegeţi prin modul (în contextul programării obiectuale în aplicaţiile pentru bazele de date)? a) Un set de instrucţiuni scrise în limbaj de asamblare; b) O colecţie de una sau mai multe proceduri; c) O listă de acţiuni conţinută într-un macro; d) Toate variantele de mai sus.

Sumar Automatizare a aplicaţiilor realizate în Access: prin utilizarea limbajului Visual Basic for Applications – VBA sau prin utilizarea comenzilor MACRO. Comanda Macro (MACRO): un obiect care conţine o definiţie structurată a uneia sau mai multor acţiuni pe care Access le realizează ca răspuns la un anumit eveniment. Modulul (MODULE): un obiect care conţine proceduri definite de utilizator şi scrise în Visual Basic.

115

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

Sarcini şi teme ce vor fi notate 9 Studierea de către studenţi a materialului teoretic aferent modulului, cuprins în suportul curs şi în bibliografia suplimentară indicată. 9 Participarea la aplicaţiile practice, teme de laborator; 9 Lucrarea practică nr. 4.

Lucrarea practică 4 (LP4) I. Să se construiască baza de date ASIGURARI. Sa se creeze tabelul CONTRACTE cu următoarele câmpuri: 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 asigurării 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ă următoarea regulă de validare: în câmpul TIP_ASIGURARE pot fi introduse doar valorile V (asigurare de viaţă), L (locuinţă), B(bunuri). c) Introduceţi 7 înregistrări. II. Să se creeze o interogare cu ajutorul căreia să se afişeze numărul contractului, numele clientului, tipul şi valoarea asigurată pentru toate asigurările de locuinţe încheiate între 1 februarie 2007 şi 20 ianuarie 2008. III. Să se majoreze cu 2% primele lunare pentru asigurările de locuinţă. IV. Să se elaboreze un raport cu numele Lista_contracte care să conţină următoarele câmpuri: nume_pren, data_contract, valoare_a şi prima_l. Sa se calculeze numărul 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 ASIGURĂRI. Sa se adauge doua butoane de comanda cu următoarele etichete: LISTA CONTRACTE si IESIRE. Acţionarea primului

116

buton va avea ca efect afişarea raportul creat la punctul IV iar acţionarea butonului IESIRE va avea ca efect închiderea formularului. VI. Comprimaţi baza de date cu utilitarul WinRAR (puteţi să îl descărcaţi gratuit de pe Internet) şi trimiteţi arhiva la adresa [email protected] sau pe portalul ID la adresa [email protected]. 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 lucrării se face conform specificaţiilor din secţiunea „Organizarea temelor în cadrul cursului”, partea 1 a materialului. Bibliografia modulului 1. Avram-Niţchi, 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, Bucureşti, 1999. 4. Kovács, Sándor, Access 2000 – Implementarea bazelor de date, Editura Albastră, Cluj-Napoca, 2003. 5. Năstase, P., Mihai, F., Bărbulescu, B., Şova, R.A., Stanciu, A., Covrig, L., Baze de date în Microsoft Access 2000, Teora, Bucureşti, 1999. 6. Teodorescu Alexandru, Lecţii de Access, Editura Albastră, ClujNapoca, 2002. 7. Mediul Internet.

117

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 regăsirii rapide a acestora. Un obiect este o parte componentă a unei baze de date. Un tabel este o colecţie de date specifice unui anumit subiect, stocate pe linii şi coloane. Relaţia este corespondenţa dintre câmpurile cheie a două tabele. Câmpul – reprezintă o coloană în cadrul tabelului. Fiecare câmp are asociat un tip de date. O înregistrare – reprezintă un rând în cadrul tabelului. Design View pune la dispoziţie instrumente pentru crearea (proiectarea) obiectelor. Datasheet View permite actualizarea, editarea, ştergerea înregistrărilor din tabel. Bibliografia cursului: 1. Connolly, Thomas, Baze de date: proiectare, implementare, gestionare, Editura Teora, Bucureşti, 2001. 2. Date, C. J. (2005), Baze de date, Editura Plus, Bucureşti. 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 tranzacţiilor, 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, Bucureşti, 1999. (disponibil la sala de lectura) 8. Năstase, P., Mihai, F., Bărbulescu, B., Şova, R.A., Stanciu, A., Covrig, L., Baze de date în Microsoft Access 2000, Teora, Bucureşti, 1999. (disponibil la sala de lectura) 9. Powell, G. (2006), Beginning Database Design, Wiley Publishing, Inc., USA. 10. Sándor, Kovács, Access 2000 – Implementarea bazelor de date, Editura Albastră, ClujNapoca, 2003. 11. Waine, H. (1992), Databases for Businees Users, Pitman Publishing London. (biblioteca Facultăţii 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.

118

More Documents from "Ral Dy"