BAZE de DATE Suport de Curs

72

Click here to load reader

description

Cursul vizeaza insusirea de catre studenti a notiunilor fubdanebtale legate de domeniul bazelor de date: sisteme de gestiune a bazelor de date, crearea si manipularea bazelor de date.UBB facultatea de business

Transcript of BAZE de DATE Suport de Curs

Page 1: BAZE de DATE Suport de Curs

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 II, semestrul I Cluj-Napoca

2013

Page 2: BAZE de DATE Suport de Curs

2

I. Informa ţii generale 1.1. Date de identificare a cursului Date de contact - titular curs Date de identificare curs şi contact tutori Nume: Lector. univ. dr. Veronica Rus Birou: Facultatea de Business, Str.Horea nr.7, etaj I, cam.122 Telefon: 0264599170, Fax: 0264 - 590110 Email: [email protected] Consultaţii: Marţi 17.00 - 19.00, cam 122 (cu programare prin e-mail)

Denumire curs: BAZE DE DATE Cod: IAA2119 An II, Semestrul: I Tip curs: obligatoriu Număr de credite: 5 Pagina web: www.tbs.ubbcluj.ro Tutori: Lect. univ. dr. Rus Veronica, [email protected] Lect. univ. dr. Tutunea Mihaela [email protected]

1.2. Condiţionări şi cunoştin ţe prerechizite: Pentru însuşirea rapidă şi eficientă a cunoştinţelor aferente acestei discipline este recomandabilă parcurgerea disciplinei de Tehnologia Informației din cadrul programului de nivel licenţă. 1.3. 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; � Aptitudini de ordin practic - crearea şi manipularea obiectelor bazelor de date (tabele, interogări,

formulare, rapoarte, comenzi macro şi module). 1.4. 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 în 4 module, pe unităţi de studiu, logic succedate, cuprinzând noţiuni esenţiale ale Bazelor de date, 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. Primul modul are ca scop prezentarea conceptelor fundamentale din domeniul bazelor de date, familiarizarea studenţilor 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. Al doilea 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.

Page 3: BAZE de DATE Suport de Curs

3

Al treilea 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. Ultimul 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. De asemenea, la finele fiecărui modul sunt indicate lucrările practice care trebuiesc realizate de către studenţi.

1.5. Formatul și tipul activit ăților implicate de curs Datorită caracterului aplicativ al disciplinei, parcurgerea acestui curs necesită participarea studenţilor la 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 în cadrul laboratoarelor, sunt absolut necesare exerciţii suplimentare individuale. Metodele utilizate pe parcursul predării disciplinei sunt: expunerea interactivă bazată pe exemplificarea practică, concretă, exerciţii şi aplicaţii practice realizate în cadrul laboratoarelor, aferente temelor abordate în curs. Întâlnirile față în față au ca scop să vă faciliteze procesul de învățare și să vă ajute în fixarea cunoștințelor. Pentru aceasta, în cadrul acestor întâlniri se vor dezbate aspecte legate de neclaritățile rezultate în urma parcurgerii suportului de curs și a bibliografiei recomandate, se vor rezolva aplicații și se vor formula recomandări pentru rezolvarea temelor de control. Platforma de învățământ la distanță vă sta la dispoziție pentru a adresa întrebări cadrelor didactice sau pentru discuții cu alți colegi. De asemenea, cadrele didactice vor posta pe această platformă informații relevante pentru desfășurarea activităților, fapt pentru care vă revine în totalitate obligația de a consulta în permanență platforma pentru a fi la curent cu solicitările cadrelor didactice. Cele patru lucrări practice, 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).

Temele de control trebuie predate conform următoarelor planificări, nefiind acceptate derogări de la aceste perioade:

Lucrare practica Termen predare

LP1 11.11.2012

LP2 25.11.2012

LP3 22.12.2012

LP4 13.01.2013

Nepredarea lor la timp, atrage după sine pierderea punctajului acordat, conform politicii de notare!

1.6. Materiale bibliografice obligatorii

Page 4: BAZE de DATE Suport de Curs

4

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ă sau la Biblioteca Facultăţii 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 Microsoft Access.

1.7. 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. 1.8. Calendarul cursului În derularea acestei discipline sunt programate patru întâlniri cu studenţii, cu desfăşurarea următoare:

� întâlnirea întâi - se va parcurge modulul I � întâlnirea a doua - se va parcurge modulul II � întâlnirea a treia - se va parcurge modulul III � ultima întâlnire - se va parcurge modulul IV

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 suport. Ulterior fiecărei întâlniri de curs şi seminar, 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.

1.9. Politica de evaluare şi notare Nota finală va fi compusă din:

Componenta Ponderea/punctaj Data de verificare Lucrări practice LP 1 LP 2 LP 3 LP 4

10% / 1 punct 10% / 1 punct 10% / 1 punct 10% / 1 punct

Pe parcurs

Test final 60 % / 6 puncte La finalul semestrului

Total 100 % / 10 puncte

Cerinţele pentru cele patru lucrări practice pot fi găsite în suportul de curs, la finalul fiecărui modul. Informații suplimentare privind modul de evaluare vor fi furnizate de către cadrul didactic în cazul întâlnirilor față în față și ulterior pe platforma de învățământ la distanță.

Page 5: BAZE de DATE Suport de Curs

5

Rezultatele obţinute la această disciplină se vor anunţa la final, după susţinerea examenului, 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.

1.10. Elemente de deontologie academică Se vor avea în vedere următoarele detalii de natură organizatorică: 1. Prezenţa la întâlnirile față în față este recomandată; 2. Plagiatul la oricare dintre etapele/cerinţele ce compun nota finală se sancţionează prin pierderea

punctajului aferent, precum şi la aplicarea altor sancţiuni prevăzute în regulamentele studenţeşti; 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.

1.11. 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. 1.12. Strategii de studiu recomandate 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ă. Aceste ore vor fi alocate, pe parcursul semestrului, de fiecare student, în funcţie de preferinţele individuale.

Page 6: BAZE de DATE Suport de Curs

6 |

II. Suportul de curs

Modulul I

� Unitatea 1. Baze de date - Concepte de bază � Unitatea 2. Microsoft Access 2000: Prezentare generală � Unitatea 3. Tabele

Scop Acest modul are ca scop prezentarea conceptelor fundamentale din domeniul bazelor de date, familiarizarea acestora cu mediul Microsoft Access 2000 şi formarea deprinderilor de exploatare a sistemelor de gestiune a bazelor de date. Tot în acest modul studenții vor învăța cum să creeze baze de date în Microsoft Access, cum să adauge tabele și să introducă date. Obiective

Evidențierea avantajelor utilizării bazelor de date; Definirea bazelor de date, a sistemelor de gestiune a

bazelor de date; Prezentarea principalelor funcții ale SGBD-urilor; Prezentarea evoluţiei SGBD-urilor; Identificarea elementelor mediului Microsoft Access 2000; Utilizarea principalelor opţiuni din submeniurile sistemului Microsoft Access

2000. Proiectarea structurii unei baze de date; Recunoaşterea principalelor obiecte ale unei baze de date Access; Crearea bazelor de date în Microsoft Access prin metodele prezentate; Crearea și lucrul cu tabelele în Microsoft Access 2000.

Concepte de bază: date, integritatea datelor, 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.

Page 7: BAZE de DATE Suport de Curs

7 |

UNITATEA 1

CONCEPTE GENERALE

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

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.

Tema de reflecție nr. 1 Care este diferenţa dintre date şi informaţii? Daţi exemple de date şi informaţii.

Sistem de gestiune a bazelor de date

Programe

de aplicaţie

Page 8: BAZE de DATE Suport de Curs

8 |

În domeniul bazelor de date este important să se facă o distincţie clară între noțiunile de dată și informație [Dollinger&Andron, 2004]:

1. Datele, materia primă a sistemelor informatice, sunt „fapte culese din lumea reală pe bază de 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.

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;

Page 9: BAZE de DATE Suport de Curs

9 |

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

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

Page 10: BAZE de DATE Suport de Curs

10 |

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 într-un 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.

Tema de reflecție nr. 2 Daţi câteva exemple de baze de date. Daţi exemple de baze de date pe care le utilizaţi în activitatea dumneavoastră.

1.3. Utilitatea şi avantajele bazelor 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ă 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.

Page 11: BAZE de DATE Suport de Curs

11 |

Nivelul intern

Nivelul conceptual

Nivelul extern

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.

Tema de reflecție nr. 3 Daţi exemple de domenii în care se folosesc baze de date. Care sunt bazele de date utilizate în cadrul unui hotel? Identificaţi site-uri web care folosesc baze de date. Prin ce se diferenţiază acestea faţă de restul website-urilor?

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

Nivelul intern: este nivelul care se află cel mai aproape de mediul de stocare fizică, se referă la modul în care sunt stocate datele în sistem;

Nivelul extern: este nivelul aflat cel mai aproape de utilizatori, se referă la modul în care sunt vizualizate datele de către utilizatori;

Nivelul conceptual: este un nivel intermediar dintre cele două.

Fig. 2. Cele trei niveluri ale arhitecturii [Date, 2005] 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 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

Page 12: BAZE de DATE Suport de Curs

12 |

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

Exemple: în descrierea unei baze de date a unui hotel se lucrează cu următoarele concepte: client, camera, rezervări, etc.; iar pentru o bază de date 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.

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

Page 13: BAZE de DATE Suport de Curs

13 |

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

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.

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.

Optimizarea cererilor de acces; Asigurarea securităţii şi integrităţii datelor; Refacerea datelor îşi asigurarea accesului concurent la date; 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.

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.

Tema de reflecție nr. 4 Daţi exemple de instrumente software pe care le-aţi utilizat pentru stocarea şi prelucrarea datelor. Care este diferenţa între un sistem de calcul tabelar şi un sistem de gestiune a bazelor de date?

1.6. Evoluţia SGBD

Istoria SGBD poate fi rezumată în trei generaţii: Sisteme ierarhice şi reţea; Sisteme relaţionale; 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.

Page 14: BAZE de DATE Suport de Curs

14 |

UNITATEA 2

Microsoft Access 2010 – prezentare generală Microsoft Access 2010 face parte din pachetul de programe Microsoft Office şi este inclus în ediţiile Microsoft Office Professional Plus 2010 și Microsoft Office Professional 2010.

Principalele caracteristici ale sistemului de gestiune a bazelor de date Access 2010 sunt:

este un sistem de gestiune a bazelor de date relaţional;

are interfața grafică prietenoasă (Microsoft Office Fluent);

poate fi instalat pe sistemul de operare Windows: versiunile Windows XP cu Service Pack (SP) 3, Windows Vista cu SP1, Windows 7, Windows Server 2003 cu SP2 şi MSXML 6.0 (doar Office pe 32 de biți), Windows Server 2008 sau mai recent, pe 32 sau pe 64 de biți;

cerinţe hardware pentru instalare sunt următoarele - computer cu procesor de 500 MHz sau mai mult, cu minim 256 MB RAM, cel puţin 2 GB spaţiu disponibil pe hard disk, monitor cu o rezoluție de minim 1024x576, placă grafică DirectX 9.0 cu memorie video de 64 MO sau mai mult.

comunică cu alte sisteme de gestiune a bazelor de date dintre care amintim dBase şi SQL Server;

permite realizarea unor aplicaţii complexe pentru afaceri prin utilizarea limbajului Microsoft Visual Basic for Applications 7.0;

conţine instrumente tip wizard care permit utilizatorului crearea facilă a obiectelor bazei de date;

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.

pune la dispoziția utilizatorului șabloane de baze de date;

permite vizualizarea legăturilor dintre tabelele bazei de date prin intermediul unei interfeţe grafice – fereastra Relationships;

permite comunicarea cu celelalte aplicaţii incluse în pachetul Microsoft Office: Word, Excel, etc. prin operaţii de import/export.

suportă două limbaje standard de interogare: SQL (Structured Query Language) şi QBE (Query By Example).

2.1. Mediul Microsoft Access 2010

Lansarea în execuţie a programului Microsoft Access se poate face prin următoarele modalităţi:

1. Prin succesiunea: clic pe butonul Start -> All Programs-> Microsoft Office->Microsoft Access 2010.

2. Prin dublu clic pe pictograma de pe Desktop, asociată programului Microsoft Access 2010.

Page 15: BAZE de DATE Suport de Curs

15 |

Fig. 3. Fereastra de bază a aplicaţiei Microsoft Access

Panglica

Bara de stare

Panoul de navigare

File de comenzi

Bara de instrumente Quick Access Bara de titlu

Help

Fereastra de lucru

Grup de comenzi

La rularea programului Microsoft Access 2010, va apărea pe ecran o fereastră care pune la dispoziţie următoarele opţiuni:

1. Crearea unei baze de date vide (Blank Database); 2. Crearea unei baze de date folosind un șablon de bază de date; 3. Deschiderea unei baze de date existente. In panoul din partea stângă a ferestrei sunt

afișate cele mai recent utilizate baze de date (Recent). Daca baza dorită nu se afla printre acestea, executând clic pe Open se poate naviga prin structura de directoare în căutarea fişierului dorit.

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

T

Tema de reflecție nr. 5 Deschideţi aplicația Microsoft Access 2010. Explicaţi efectul tuturor comenzilor din filele: Home, Create, External Data, Database Tools. Pentru rezolvarea acestui exerciţiu vă puteţi folosi de Help. Care sunt opţiunile disponibile în Backstage View?

Page 16: BAZE de DATE Suport de Curs

16 |

2.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. Baza de date este „o colecţie de date înrudite, care se referă la un anumit subiect sau obiectiv, împreună cu instrumentele folosite pentru manipularea acestor date” [Harkins et al., 1999:11]. 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. O bază de date Access este o colecţie de obiecte: tabele (table), interogări (query), formulare (form), rapoarte (report), comenzi macro (macro) şi module (module). Tabelul (TABLE) este “un obiect definit de utilizator în care sunt stocate datele primare (expresia modelului relaţional)” [Năstase et al., 1999:51]. 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 un anumit client. O bază de date poate conţine unul sau mai multe tabele independente sau legate între ele.

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” [Năstase et al., 1999:52]. Este un instrument foarte util pentru analiza datelor stocate în tabele. De exemplu, puteţi folosi o interogare pentru a genera o listă cu adresele clienţilor 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);

Cod client Nume Prenume Adresa Cod

postal Data

nasterii

1 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

Câmpuri (fields)

Înregistrări (record

s)

Page 17: BAZE de DATE Suport de Curs

17 |

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 datele din 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 [Harkins et al., 1999: 11]. Formularul (FORM) este „un obiect care permite introducerea datelor, afişarea acestora sau controlul întregii aplicaţii” [N ăstase et al., 1999:51]. 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. 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 în 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 informaţiilor obţinute în urma consultării bazei de date sub formă de documente.” [Năstase et al., 1999:52]. Cu toate că formularele reprezintă un instrument potrivit pentru introducerea şi afişarea datelor pe ecran, rapoartele sunt principalele situaţii 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. Macrocomanda (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” [Năstase et al., 1999:52]. 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 limbajul de programare Visual Basic” [Năstase et al., 1999:52]. Codul procedurii se introduce într-un modul şi poate fi apelat prin intermediul unor obiecte eveniment sau prin intermediul altor proceduri.

2.3 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 şabloanele de baze de date.

Pentru a construi o bază de date nouă se execută următoarele operaţii:

1. în fereastra principală (vezi Error! Reference source not found. 4) se selectează Blank database;

2. se introduce numele bazei de date în căsuţa File Name;

Page 18: BAZE de DATE Suport de Curs

18 |

3. se selectează (prin clic pe ) unitatea de disc unde va fi salvata noua bază de date şi formatul bazei de date;

4. se activează butonul Create.

Crearea unei baze de date folosind şabloane de baze de date este mult mai simplă şi rapidă dar prezintă dezavantajul de a nu fi aşa de flexibilă. Utilizatorul poate alege dintre mai multe baze de date predefinite, destinate fie utilizării în scop personal, fie utilizării în cadrul unei firme. Şabloanele sunt salvate local sau pot fi descărcate de pe site-ul Microsoft Office. În urma selectării unui şablon se generează toate tabelele, formularele şi rapoartele necesare pentru realizarea anumitor funcţii.

Tema de reflecție nr. 6 Să se creeze o baza de date pentru marketing (folosind șabloanele existente în Access 2010) şi să se salveze în directorul personal

1. Introduceți în baza de date: a. detalii referitoare la 3 proiecte; b. 2 angajaţi; c. 3 vânzători.

2. Vizualizaţi rapoartele generate de aplicație. 3. Deschideţi tabelele bazei de date şi observaţi modul în care datele au fost

stocate în tabele. 4. Observați legăturile dintre tabele bazei de date. 5. Alegeți un alt șablon şi generați o nouă bază de date. Introduceţi înregistrări

în baza de date.

Fig. 4. Crearea unei baze de date vide

3. se selectează directorul în care va fi salvată BD

2. se introduce numele BD

1

4

Page 19: BAZE de DATE Suport de Curs

19 |

UNITATEA 3

TABELE

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

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

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). 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, în Access 2010, acest lucru se poate face în două moduri:

a. Utilizând fereastra de proiectare – Fila Create – comanda TABLE DESIGN;

b. Prin introducerea datelor - Fila Create – comanda TABLE.

Modul cel mai eficient de creare a tabelelor îl reprezintă utilizarea ferestrei de proiectare. În urma selecţiei comenzii Table Design pe ecranul monitorului va apărea fereastra de proiectare a tabelului. În această fereastră se introduc: denumirile câmpurilor – în coloana FIELD NAME, tipul de date – în coloana DATA TYPE şi opţional o descriere a câmpului respectiv – DESCRIPTION. În Access există patru modalităţi de vizualizare a tabelelor:

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

Datasheet View: permite introducerea de date (articole) în tabel. Pivot Table View Pivot Chart View

Fig. 5. Comenzi pentru crearea tabelelor

Page 20: BAZE de DATE Suport de Curs

20 |

Pentru a comuta între modurile datasheet view şi design view, se selectează fila Home şi se execută clic pe View. De exemplu dacă avem un tabel Judeţe cu următoarele câmpuri: cod – text(2) şi denumire-text(30), suprafaţă – numeric, long integer - acesta va putea fi afişat în două moduri:

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

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

Page 21: BAZE de DATE Suport de Curs

21 |

3.2. Caracteristicile câmpurilor

Numele: numele câmpului poate să fie format din mai multe cuvinte, de exemplu “Nume client”.

Tipul de date: stabileşte modul în care datele sunt înregistrate pe suportul de memorare şi modul în care acestea sunt interpretate şi prelucrate. Tipurile de date disponibile pentru câmpuri în Access 2010 sunt:

Tip de date Tip de date Access

Descrierea tipului de date

Alfanumerice

TEXT

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.

Numerice

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.

AUTONUMBER

Generează numere unice în mod automat de 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 calendaristice

DATE/TIME Stochează data calendaristică şi ora într-un format special fix.

Obiecte mari

OBJECT OLE

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

Adrese Internet

HYPERLINK

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 părți: textul afişat, adresa şi subadresa. Fiecare parte poate avea maxim 2048 caractere.

Page 22: BAZE de DATE Suport de Curs

22 |

Tip de date Tip de date Access

Descrierea tipului de date

Ataşamente ATTACHMENTS

În câmpurile de tip attachments pot fi ataşate imagini, documente, foi de calcul tabular, fişiere arhivate. În funcţie de setările făcute asupra câmpului, fişierele ataşate pot fi vizualizate şi modificate. Spre deosebire de tipul de date OLE OBJECT, tipul de date ATTACHMENTS foloseşte mult mai eficient spaţiul de stocare deoarece nu creează o imagine bitmap a fişierului original.

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

Proprietăţile câmpurilor 1. Field size: în această zonă se introduce dimensiunea maximă 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).

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:

3. Decimal places: numărul de zecimale ce pot fi atribuite unui câmp.

4. Input Mask: 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).

Page 23: BAZE de DATE Suport de Curs

23 |

5. Caption: permite asocierea unor etichete (nume) câmpurilor unui tabel, etichete care vor

fi afişate în cadrul rapoartelor, formularelor, tabelelor.

6. Default value: este valoarea atribuită automat atunci când utilizatorul nu introduce nici o valoare în acel câmp.

7. Validation rule: 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: 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: se stabileşte dacă prin introducerea unei noi înregistrări în cadrul tabelei este

obligatorie şi completarea respectivului câmp. 10. Indexed: 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ă.

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

Page 24: BAZE de DATE Suport de Curs

24 |

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 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 (sau câmpurile);

2. a) se selectează butonul din fila Design, grupul de comenzi Tools; b) se selectează opţiunea Primary Key din meniul contextual.

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 persoane juridice. Tabelul are următoarea structură:

Cod_cl Numeric, întreg

Nume Text (30)

Prenume Text(30)

Adresa Text (120)

Localitatea Text (30)

Cod_judeţ Text(2)

Cod_postal Text(10)

Telefon Text(15)

Data nasterii Dată calendaristică (Date/Time)

I. Se creează baza de date Clienţi astfel: se porneşte aplicaţia Microsoft Access - Start->All Programs->Microsoft Office->Microsoft Access;

1. se selectează opţiunea Blank Database din fereastra Microsoft Access;

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

II. Pentru a crea tabelul InfoClienţi: 1. selectaţi opţiunea Design view din fila Home, grupul View. 2. pe ecran va apărea o fereastra Save As în care veţi introduce denumirea tabelului.

Page 25: BAZE de DATE Suport de Curs

25 |

3. în fereastra de proiectare a tabelului veţi introduce denumirile câmpurilor, tipul acestora şi o scurtă descriere după cum urmează:

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.

III. Stabilirea cheii primare se poate face după cum urmează: 1. se selectează câmpul CUI;

2. se selectează butonul din fila Design, grupul de comenzi Tools;

IV. Pentru a adăuga articolele în tabelul pe care l-aţi creat, se salvează modificările efectuate şi se selectează butonul Datasheet View ( ) din fila Design.

Page 26: BAZE de DATE Suport de Curs

26 |

Cod client Nume Prenume Adresa Localitate Jud Cod

postal Telefon Data nasterii

1 Opriș Radu Str. Republicii Nr. 6 Cluj-Napoca CJ 23451 0264/552302 02/04/1968

2 Popescu Adriana Str. Horea Nr. 4 Cluj-Napoca CJ 23780 0264/440016 03/05/1974

3 Plesan Sorin 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

Tema de reflecție nr. 7 Creaţi baza de date Clienţi şi tabelul InfoClienţi respectând indicaţiile de mai sus.

Rezumat 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. 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 2010 este sistemul de gestiune a bazelor de date inclus în pachetul Microsoft Office 2010 Professional. Obiectele bazelor de date Access sunt: tabelele (tables), interogările (query), formularele (forms), rapoartele (reports), comenzile macro (macros) şi modulele (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 de date şi alte atribute ale acestora. Liniile tabelului conţin înregistrări (records) cu date corespunzătoare coloanelor. Interogarea (QUERY) este un obiect care permite obţinerea informaţiilor din unul sau mai multe tabele şi/sau alte cereri de interogare. Formularul (FORM) este un obiect folosit la introducerea datelor, afişarea acestora sau controlul întregii aplicaţii. Raportul (REPORT) permite formatarea şi tipărirea, sub formă de documente, a informaţiilor obţinute din baza de date. Comenzile Macro (MACRO) sunt folosite la automatizarea diverselor evenimente. Modulul (MODULE) 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ă.

Recomandări și comentarii cu privire la temele de reflecție Tema de reflecție nr. 1. De exemplu dacă avem o dată de tip numeric - numărul 10, daţi exemple de informaţii care derivă din această dată.

Page 27: BAZE de DATE Suport de Curs

27 |

Lucrarea practică 1 și modalitatea de evaluare Lucrarea practică 1 (LP1) 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:

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 1. Să se creeze tabelul InfoClienti cu câmpurile aferente. 2. Să se stabilească cheia primară pentru tabelul InfoClienti. 3. Câmpul 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, să se facă setări astfel încât să nu se poată introduce alte valori înafara celor din listă.

4. Câmpul SEX va conţine valoarea M pentru masculin sau F pentru feminin. Să se introducă regula de validare corespunzătoare.

5. Câmpul TipActID să permită introducerea unor valori cuprinse între 1 şi 4. Valorile pentru acest câmp se vor alege dintr-o lista (Lookup). Î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. Introduceţi o regulă de validare pentru adresa de email. Adresa de email trebuie să conţină caracterul @ şi caracterul punct.

Page 28: BAZE de DATE Suport de Curs

28 |

7. Să se introducă 11 clienţi din Romania şi 3 din afara ţării. Clienţii vor fi din localităţi diferite.

8. Să se ordoneze înregistrările crescător după câmpul Nume. 9. Să se ordoneze înregistrările descrescător după câmpul CodTara. 10. Modificaţi structura bazei de date prin adăugarea unui nou câmp Cod_postal – text (20),

după câmpul adresa. 11. Să se completeze câmpul introdus cu informaţiile corespunzătoare pentru fiecare client. 12. Introduceţi la final o înregistrare cu datele dumneavoastră. Comprimaţi baza de date cu utilitarul WinRAR (puteți să îl descărcați gratuit de pe Internet) şi transmiteţi-o pe email sau pe portalul ID, titularului de curs. 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 „Formatul și tipul activităților implicate de curs”, partea 1 a materialului.

Bibliografie minimală pentru parcurgerea acestui modul

1. ***, Microsoft, Crearea unei baze de date desktop noi, http://office.microsoft.com/ro-ro/access-help/crearea-unei-baze-de-date-desktop-noi-HA010341576.aspx?CTT=1.

2. ***, Microsoft, Treceți la Access 2010, http://office.microsoft.com/ro-ro/access-help/treceti-la-access-2010-RZ101791922.aspx?CTT=1.

3. ***, Microsoft, Ghid pentru interfața utilizator Access 2010, http://office.microsoft.com/ro-ro/access-help/ghid-pentru-interfata-utilizator-access-2010-HA010341735.aspx?CTT=1.

4. ***, Microsoft, Cele mai importante 10 motive pentru a încerca Access 2010, http://office.microsoft.com/ro-ro/access/cele-mai-importante-10-motive-pentru-a-incerca-access-2010-HA101631715.aspx?CTT=1.

5. ***, Microsoft, Get to know Access, http://office.microsoft.com/ro-ro/access-help/rapoarte-imprimate-RZ006118141.aspx?section=17.

6. Avram-Niţchi, R., Ghișoiu, N., et al., Elemente de baze de date și programare aplicate în economie, Ed. Risoprint, Cluj-Napoca, 2007.

7. Dollinger, Robert - Baze de date, Universitatea Tehnică Cluj-Napoca, 1994. 8. Harkins, S.S., Hansen, K., Gerhart, T., Utilizare Microsoft Access 2000, Teora, Bucureşti,

1999. 9. 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. 10. Mediul Internet.

Page 29: BAZE de DATE Suport de Curs

29 |

Modulul II

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

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 Definirea noţiunilor de cheie candidat şi cheie străină; Clasificarea relaţiilor între două tabele; Crearea relațiilor între două sau mai multe tabele; Definirea integrității referenţiale; Identificarea tipurilor de interogări existente în Access; Utilizarea interogărilor pentru a obţine diverse informaţii din bazele de date; Proiectarea interogărilor folosind grila QBE; Prezentarea principalelor instrucţiuni ale limbajului SQL; 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.

Page 30: BAZE de DATE Suport de Curs

30 |

UNITATEA 4

RELAŢII ÎNTRE TABELE Î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. 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.

4.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 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-to-Many, 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 “Many-to-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ă.

Page 31: BAZE de DATE Suport de Curs

31 |

4.2. Integritatea referențială

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

4.3. Crearea relaţiilor între tabele (Relationships)

Pentru a realiza legături între tabelele Access se alege opţiunea Relationships din fila Database Tools, grupul Relationships.

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

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

Page 32: BAZE de DATE Suport de Curs

32 |

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

În Access opţiunea Enforce Referential Integrity poate fi selectată numai daca se îndeplinesc condiţiile:

a. Câmpul selectat din tabelul primar are atributul de cheie primară; b. Câmpurile puse în corespondenţă au acelaşi tip de date; c. 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 părinte atâta timp cât există înregistrări corespondente în tabelul copil.

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ă

Fig. 8. Fereastra Edit Relationships

Cheie primară

Cheie externă

Page 33: BAZE de DATE Suport de Curs

33 |

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.

Relaţia dintre două tabele poate fi modificată prin dublu-click asupra liniei care leagă cele două tabele. Editarea ulterioară mai poate fi făcută şi alegând opţiunea Edit Relationship din meniul contextual (clic dreapta pe linia de asociere). Pentru ştergerea unei relaţii se selectează linia de asociere şi se apasă tasta DEL. Se poate folosi şi opţiunea Delete din meniul contextual.

Relaţiile dintre tabele pot fi tipărite selectând opţiunea Print Relationships din meniul File.

Tema de reflecție nr. 8 Creaţi baza de date Clienţi şi tabelul InfoClienţi respectând indicaţiile de mai sus. Să se creeze un nou tabel cu numele Plăţi în baza de date CLIENTI (Error! Reference source not found.). Tabelul va avea următoarea structură:

Cod_cl - Numeric, întreg Data_platii - Data calendaristică Suma_platită - Currency Data_scadenta - 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.

Page 34: BAZE de DATE Suport de Curs

34 |

UNITATEA 5

INTEROGĂRI

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

5.1. Tipuri de relaţii în Access

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. Se va alege opţiunea Query Design din fila Create. 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:

1) se aleg câmpurile necesare interogării; 2) se precizează criteriile de secție a înregistrărilor (impuse de cerinţa interogării); 3) se stabileşte modul de grupare; 4) se stabileşte modul de ordonare.

Page 35: BAZE de DATE Suport de Curs

35 |

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

2) Cu ajutorul wizard-ului de interogări. Tipurile de interogări care se pot crea cu ajutorul wizard-ului sunt următoarele: interogări de selecţie, interogări de tip crosstab, interogări Find Duplicates şi interogări Find Unmatched.

5.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. 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 introdus între 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).

5.3. Operatori

a) Matematici: ^,-, *,/, \, Mod, +

Operator Operaţia realizată

^ Ridicare la putere

* Înmulţire

/ Împărţire

Page 36: BAZE de DATE Suport de Curs

36 |

\ Împărţire fără rest (doar câtul)

Mod 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

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ă

Operaţii de calcul predefinite în ACCESS

Operaţia Funcţia

SUM Suma valorilor unui câmp.

AVG Media aritmetică

MIN Valoarea minimă

MAX Valoarea maximă

COUNT Numărul de valori dintr-un câmp

STDEV Varianta valorilor unui câmp

FIRST Prima valoare din câmp

LAST Ultima valoare din câmp

Page 37: BAZE de DATE Suport de Curs

37 |

5.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-April-2008.

Funcții pentru date calendaristice: 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.

Page 38: BAZE de DATE Suport de Curs

38 |

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: DDB() - Depreciation double-declining balance: calculează amortizarea unui mijloc fix prin metoda balanței dublu-regresivă. DDB(Cost_Initial, Valoare_reziduala, durata_de_viata, perioada) 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ă. 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ă. 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. 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.

Tema de reflecție nr. 9 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?

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

Page 39: BAZE de DATE Suport de Curs

39 |

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)

Tema de reflecție nr. 10 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%.

SLN (Straightline depreciation) - calculează amortizarea liniara a unui mijloc fix pe o perioada data SLN(cost_initial,val_reziduala,dur_amortizarii)

Funcții matematice: Abs(): returnează valoarea absoluta a unui număr Ex. Abs(-1) returnează 1, Abs(1) = 1. INT(): returnează valoarea întreaga a unui număr; Int(1234.55) returnează 1234. 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 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. Left(): returnează caracterele din partea stânga a unui șir de caractere : Left(“abcdefg”,4) are ca rezultat “abcd”. Len(): determină lungimea unui șir de caractere Len(“Cluj Napoca”) returnează 11. LTrim(): Înlătură spațiile goale din fața unui șir de caractere. LTrim(“ Cluj”) returns “Cluj”.

Page 40: BAZE de DATE Suport de Curs

40 |

Mid(): extrage caracterele din mijlocul unui șir Mid(“abcdefgh”,3,4) returnează “cdef” Right(): returnează caracterele din partea dreapta a unui șir Right(“abcdefg”,4) are ca rezultat “defg”. RTrim(): înlătură spațiile de la sfârșitul unui text RTrim(“abcd “) are ca rezultat “abcd”. Space(): Inserează un anumit număr de spații Space(3) are ca rezultat 3 spații Trim(): înlătura spațiile de la începutul și sfârșitul unui șir de caractere: Trim(“ abcd “) returnează “abcd”. ASC (şir_de_caractere): returnează codul primului caracter din şirul de caractere specificat.

5.5. Câmpurile calculate

pot fi definite in interogări, rapoarte, formulare; se definesc astfel: Nume_camp: expresie 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() ) 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.

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

Page 41: BAZE de DATE Suport de Curs

41 |

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.

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, PASS-THROUGH, 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.

Page 42: BAZE de DATE Suport de Curs

42 |

Tema de reflecție nr. 11 Creaţi 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. Să se stabilească cheile primare pentru fiecare tabel. 2. Să se salveze baza de date pe dischetă cu denumirea Agenție imobiliară. 3. Stabiliţi relaţiile dintre tabelele bazei de date. 4. 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.

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.

Page 43: BAZE de DATE Suport de Curs

43 |

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.

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.

Page 44: BAZE de DATE Suport de Curs

44 |

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.

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.

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.

Page 45: BAZE de DATE Suport de Curs

45 |

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.

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

Page 46: BAZE de DATE Suport de Curs

46 |

UNITATEA 6

LIMBAJUL SQL

6.1. Caracteristici 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. SQL are o sintaxă 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. In 1979, 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 de asemenea SQL ca limbaj standard pentru RDBMS. Toate RDBMS-urile 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. 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;

6.2. Instrucțiuni SQL

Instrucţiuni DDL (Data Definition Language) Instrucţiunea CREATE

Page 47: BAZE de DATE Suport de Curs

47 |

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 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 …]

Page 48: BAZE de DATE Suport de Curs

48 |

[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]];

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

Tema de reflecție nr. 12 Creaţi o nouă bază de date. Creaţi câte o interogare de definire a datelor (Data Definition) pentru instrucţiunile SQL prezentate mai sus, folosindu-vă de exemplele date. Salvaţi şi rulaţi interogările.

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

Recomandări și comentarii cu privire la temele de reflecție -

Page 49: BAZE de DATE Suport de Curs

49 |

Lucrarea practică 2 și modalitatea de evaluare

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 în 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: � 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). � Câmpurile DataRezervare, DataSosire şi DataPlecare să permită introducerea unor date

calendaristice cuprinse între 1/1/2010 şi 12/31/2010.

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 (2010) 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 25.

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.

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.

Page 50: BAZE de DATE Suport de Curs

50 |

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 sau după luna octombrie. 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 .

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 si prenumele dumneavoastră urmat de textul LP_1_2 (ex: pop_ana_lp_1_2). În subiectul mesajului introduceţi numele arhivei. Predarea lucrării se face conform specificaţiilor din secţiunea „Formatul și tipul activit ăților implicate de curs”, partea 1 a materialului.

Bibliografie minimală pentru parcurgerea acestui modul

1. ***, Microsoft, Ghid pentru relațiile între tabele, http://office.microsoft.com/ro-ro/access-help/ghid-pentru-relatiile-intre-tabele-HA010341733.aspx?CTT=1.

2. ***, Microsoft, Crearea, editarea sau ștergerea unei relații , http://office.microsoft.com/ro-ro/access-help/crearea-editarea-sau-stergerea-unei-relatii-HA010341606.aspx?CTT=1.

3. ***, Microsoft, Introducere în interogări , http://office.microsoft.com/ro-ro/access-help/introducere-in-interogari-HA102749599.aspx?CTT=1.

4. ***, Microsoft, Interogări I: Obținerea de răspunsuri cu ajutorul interogărilor , http://office.microsoft.com/ro-ro/access-help/interogari-i-obtinerea-de-raspunsuri-cu-ajutorul-interogarilor-RZ001077757.aspx?CTT=1.

5. ***, Microsoft , Exemple de criterii de interogare, http://office.microsoft.com/ro-ro/access-help/exemple-de-criterii-de-interogare-HA010341674.aspx?CTT=1.

Page 51: BAZE de DATE Suport de Curs

51 |

6. ***, Microsoft , Introducere în SQL pentru Access, http://office.microsoft.com/ro-ro/access-help/introducere-in-sql-pentru-access-HA010341468.aspx?CTT=1.

7. Avram-Niţchi, R., Ghișoiu, N., et al., Elemente de baze de date și programare aplicate în economie, Ed. Risoprint, Cluj-Napoca, 2007.

8. Dollinger, Robert - Baze de date, Universitatea Tehnică Cluj-Napoca, 1994. 9. Harkins, S.S., Hansen, K., Gerhart, T., Utilizare Microsoft Access 2000, Teora,

Bucureşti, 1999. 10. Kovács, Sándor, Access 2000 – Implementarea bazelor de date, Editura Albastră,

Cluj-Napoca, 2003. 11. 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. 12. Teodorescu Alexandru, Lecţii de Access, Editura Albastră, Cluj-Napoca, 2002. 13. Mediul Internet.

Page 52: BAZE de DATE Suport de Curs

52 |

Modulul III

� Unitatea 7. Formulare � Unitatea 8. Rapoarte

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

Precizarea rolului ecranelor in vizualizarea si/sau modificarea datelor;

Proiectarea formularelor în Access; Crearea subformularelor; Utilizarea controalelor; Precizarea rolului rapoartelor în cadrul sistemelor

informatice; Proiectarea rapoartelor folosind Microsoft Access 2000; Sortarea şi a gruparea datele în cadrul rapoartelor; Combinarea rapoartele (Rapoarte/Subrapoarte).

Concepte de bază: formulare, cutii cu text, etichete, liste combinate, butoane radio, butoane de validare, butoane de comandă, ferestre de dialog, rapoarte, gruparea datelor, sortarea datelor, controale.

Page 53: BAZE de DATE Suport de Curs

53 |

UNITATEA 7

FORMULARE

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.

7.1. Crearea formularelor Există două moduri de creare a formularelor: 1. Prin utilizarea instrumentului wizard – creare automată; 2. Crearea formularului în fereastra de lucru – creare manuală. Crearea automată a unui formular Opţiunile pentru crearea formularelor pot fi găsite în fila Create grupul Forms.

Page 54: BAZE de DATE Suport de Curs

54 |

Crearea automată a unui formular care să conţină toate câmpurile din tabel: se selectează din bara de navigare tabelul dorit şi se selectează butonul Forms.

Crearea formularului cu ajutorul instrumentului Form Wizard 1. Se selectează opţiunea Form Wizard din fila Create, grupul Forms. In fereastra Form

Wizard se selectează sursa de date: tabelul sau interogarea pentru care se va crea noul formular. Din lista Available Fields se aleg câmpurile care vor apărea în formular. Câmpurile selectate sunt afişate în lista Selected Fields.

2. Trecerea de la o etapă a alta a Wizard-ului se face prin intermediul butonului Next. În următoarea fereastră se va selecta modul de aranjare a câmpurilor în cadrul formularului: pe coloane (columnar), tabelar (tabular), foaie de date (datasheet) sau între margini (justify).

1

2

Fig. 9. Crearea automată a formularelor

Page 55: BAZE de DATE Suport de Curs

55 |

3. În ultimul ecran introduce denumirea formularului şi se alege modul de afişare. Prin alegerea butonului Finish se va încheia crearea formularului.

Crearea formularelor de navigare:

Page 56: BAZE de DATE Suport de Curs

56 |

Crearea formularului în fereastra de lucru 1. Se selectează opţiunea Form Design din fila Create, grupul Forms.

Pe ecran va apărea fereastra de proiectare a formularului, lista câmpurilor (Field List) şi trusa cu instrumente. Principale controale care pot fi folosite în cadrul formularelor sunt:

Buton Descriere

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.

Tab Control

Hyperlink

Web browser control

Navigation control

Option group

Subform /Subreport

Line

Rectangle

Trusa cu instrumente

Lista

câmpurilor

Fereastra de proiectare a

formularului

Page 57: BAZE de DATE Suport de Curs

57 |

2. Zona de antet şi subsol de formular se va adăuga din meniul contextual – opţiunea Form Header/Footer. În antetul de formular se poate introduce un titlu, se poate adăuga o imagine sau data şi ora curenta (fila Design, grupul Header/Footer. Dacă formularele vor fi listate la imprimantă se poate adăuga şi un antet şi un subsol de pagină.

3. Din lista de câmpuri se selectează, cu ajutorul mouse-ului (Dublu Click), câmpurile care vor intra în componenţa formularului. Câmpurile mai pot fi adăugate în formular şi prin drag-and-drop.

4. Formatarea formularului – fila Design->Themes; 5. Salvarea formularului - Quick Access Toolbar->Save; 6. Vizualizarea formularului: fila Design->Form View.

7.2. Subformulare

Modalităţi de creare a formularelor cu subformulare: 1. Se selectează tabelul părinte din bara de navigare; 2. Se creează formularul cu opţiunea Form din fila Create. Access creează automat şi

subformularul pentru tabelul copil.

O altă modalitate de creare a formularului este următoarea: 1. Se creează formularul principal; 2. Se adaugă în zona Detail subformularul cu ajutorul controlului Subform/Subreport. Se

parcurg etapele Wizard-ului: � În prima etapă se selectează sursa de date. Datele pot fi luate dintr-un tabel

sau dintr-o interogare. Pe poate include un formular existent. �

3. In cazul în care s-a ales prima opţiune în pasul 2 se selectează câmpurile care vor fi incluse în subformular.

Page 58: BAZE de DATE Suport de Curs

58 |

Fereastra cu proprietăţile obiectelor: poate fi activată pe ecran din fila Design->Property Sheet.

Page 59: BAZE de DATE Suport de Curs

59 |

UNITATEA 8

RAPOARTE

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ă variantă 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 de date a unui raport o constituie în principal cererile de interogare sau tabelele. 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. 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ă.

8.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. În Microsoft Access 2010 există următoarele modalități de creare a rapoartelor:

1) crearea automata a rapoartelor - Report; 2) utilizarea modul de lucru Design View – Report Design; 3) crearea unui raport gol – Blank Report; 4) prin intermediul instrumentului wizard –Report Wizard 5) prin intermediul instrumentului Label wizard.

Secţiunile din cadrul unui raport sunt următoarele:

Page 60: BAZE de DATE Suport de Curs

60 |

Trusa instrumente

Lista câmpurilor Fereastra de proiectare

Page 61: BAZE de DATE Suport de Curs

61 |

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

8.2. Sortarea şi regruparea datelor Datele din cadrul rapoartelor pot fi grupate și sortate. Pentru sortarea datelor se trece în modul de lucru Design View - se alege opțiunea Group&Sort din fila Design. În partea de jos a ferestrei de proiectare a raportului va apărea căsuța de dialog Grouping în care utilizatorul poate să seteze opțiunile de grupare și sortare.

Se pot adăuga mai multe nivele de grupare. Pentru introducerea antetului de grup se va extinde lista opțiunilor (More) și se selectează with a header section.

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.

Rezumat 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ă. Utilizatorul foloseşte formularele pentru a introduce datele 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.

Page 62: BAZE de DATE Suport de Curs

62 |

Recomandări și comentarii cu privire la temele de reflecție -

Lucrarea practică 3 și modalitatea de evaluare 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 Form. Formularul va fi salvat cu numele EcranClienti.

2. Să se construiască prin intermediul wizard-ului formularul corespunzător tabelului Rezervări , de tip tabular. Să se adauge formularului titlul - 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:

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, prenumele și numărul de telefon al clienţilor. Raportul va fi creat folosind opţiunea Report;

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, și vor fi ordonate alfabetic după câmpul nume. Alegeţi pentru acest raport Layout-ul Stepped, orientarea Landscape.

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ă

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

Page 63: BAZE de DATE Suport de Curs

63 |

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.

Comprimaţi baza de date cu utilitarul WinRAR (puteți să îl descărcați gratuit de pe Internet) şi transmite-ţi-l pe email sau pe portalul ID, titularului de curs. 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 „Formatul și tipul activităților implicate de curs”, partea 1 a materialului.

Bibliografie minimală pentru parcurgerea acestui modul 1. ***, Microsoft, Video: Crearea unui formular de navigare,

http://office.microsoft.com/ro-ro/access-help/video-crearea-unui-formular-de-navigare-VA101812613.aspx?CTT=1.

2. ***, Microsoft, Introducere în formulare, http://office.microsoft.com/ro-ro/access-help/introducere-in-formulare-HA010343724.aspx?CTT=1.

3. ***, Microsoft, Crearea unui raport grupat sau a unui raport rezumat, http://office.microsoft.com/ro-ro/access-help/crearea-unui-raport-grupat-sau-a-unui-raport-rezumat-HA010341571.aspx?CTT=1.

4. ***, Microsoft, Utilizarea unui raport pentru a formata și a imprima datele Access, http://office.microsoft.com/ro-ro/access-help/utilizarea-unui-raport-pentru-a-formata-si-a-imprima-datele-access-HA010341915.aspx?CTT=1.

5. ***, Microsoft, Videoclip: Crearea etichetelor poștale în Access, http://office.microsoft.com/ro-ro/access-help/videoclip-crearea-etichetelor-postale-in-access-VA101842898.aspx?CTT=1.

6. Avram-Niţchi, R., Ghișoiu, N., et al., Elemente de baze de date și programare aplicate în economie, Ed. Risoprint, Cluj-Napoca, 2007.

7. Dollinger, Robert - Baze de date, Universitatea Tehnică Cluj-Napoca, 1994. 8. Harkins, S.S., Hansen, K., Gerhart, T., Utilizare Microsoft Access 2000, Teora,

Bucureşti, 1999. 9. Kovács, Sándor, Access 2000 – Implementarea bazelor de date, Editura Albastră,

Cluj-Napoca, 2003. 10. 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. 11. Teodorescu Alexandru, Lecţii de Access, Editura Albastră, Cluj-Napoca, 2002. 12. Mediul Internet.

Page 64: BAZE de DATE Suport de Curs

64 |

Modulul IV

� Unitatea 9. Macro � Unitatea 10. Module

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

Identificarea acţiunilor care pot fi efectuate prin intermediul comenzilor Macro;

Crearea și rularea comenzilor Macro în Microsoft Access 2000;

Exportul şi importul datelor; Publicarea datele pe Internet prin intermediul obiectelor

Pages; Editarea modulelor în Microsoft Access 2000; Prezentarea principalelor elemente ale limbajului Visual Basic; Utilizarea instrucţiunilor pentru introducerea şi afişarea datelor, 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.

Page 65: BAZE de DATE Suport de Curs

65 |

UNITATEA 9

MACROURI

Aplicaţiile realizate în Microsoft Access conţin un număr mare de obiecte: interogări, rapoarte, formulare. Obiectele aplicaţiei sunt legate între ele, de exemplu din cadrul unui formular pot fi deschise anumite rapoarte, interogări, formulare. Acţiunile a utilizatorului (click, dublu click) asupra controalelor incluse în formular determină realizarea anumitor operaţii (deschiderea unuia formular, raport, rularea unor interogări, etc.). Automatizarea aplicaţiilor realizate în Access se poate face prin utilizarea modulelor (scrise în limbajului Visual Basic for Applications – VBA) sau prin utilizarea comenzilor MACRO. Comenzile MACRO permit automatizarea diverselor evenimente fără ca realizatorul aplicaţiei să cunoască limbajul VBA. Prin evenimente înţelegem:

- deschiderea unui formular; - închiderea unui formular; - click asupra unui buton de acţiune, etc.

Principalele acţiuni care pot fi executate în cadrul comenzilor Macro sunt:

deschiderea obiectelor bazei de date: tabele, interogări, formulare sau rapoarte; închiderea obiectelor bazei de date; vizualizarea şi tipărirea rapoartelor; căutarea datelor; rularea interogărilor; afişarea unor mesaje (de atenţionare, de eroare, de informare); exportul şi importul datelor; rularea unor comenzi macro; închiderea bazei de date; ieşirea din Microsoft Access; ştergerea, redenumirea, copierea sau salvarea obiectelor bazei de date; efectuarea condiţionată a anumitor acţiuni.

9.1. Crearea unei comenzi MACRO Macrocomenzile sunt obiecte care conţin o listă de acțiuni de efectuat. Cu ajutorul macrocomenzile puteţi adăuga funcționalitate formularelor, rapoartelor și controalelor fără să scrieţi cod Visual Basic. Comenzile macro se creează în cadrul ferestrei de proiectare. Selectați fiecare acțiune dintr-o listă verticală, apoi completați informațiile necesare pentru fiecare acțiune.

Page 66: BAZE de DATE Suport de Curs

66 |

Fereastra de proiectare are două părţi: - Lista de acţiuni; - Catalogul acţiunilor.

Tema de reflecție nr. 13 Deschideţi o bază de date. Creaţi macro-uri pentru: a) deschiderea unui tabel, b) deschiderea unui raport, c) ieşirea dintr-o aplicaţie Access, d) rularea unei interogări, e) redenumirea unei tabele, f) ştergerea unui obiect, g) deschiderea unui formular.

9.2. Comunicarea între aplicaţiile Office 2010

Exportul datelor Datele pot fi exportate în fişiere Word (.rtf), Excel, HTML, XML, Access, fişiere text, baze de date ODBC, dBASE şi liste SharePoint. Pentru a efectua un export de date dintr-o tabel vom folosi grupul de comenzi Export din fila External Data. Datele pot fi importate din fişiere Excel, baze de date Access, ODBC, dBASE, fişiere text, HTML, XML, liste SharePoint sau foldere Outlook. Pentru a efectua un export de date dintr-o tabel vom folosi grupul de comenzi Import&Link din fila External Data.

Fig. 10. Fereastra de proiectare a comenzilor macro

Page 67: BAZE de DATE Suport de Curs

67 |

UNITATEA 10

MODULE

În Access, prin programare înţelegem procesul de adăugare de funcționalități la obiectele bazei de date prin intermediul macrocomenzilor sau a limbajul Visual Basic for Applications (VBA). Limbajul Visual Basic pentru aplicaţii (VBA) este un limbaj orientat obiect. Obiectele sunt caracterizate prin metode şi proprietăţi. Starea unui obiect poate fi schimbată prin intermediul metodelor. În pachetul Microsoft Office 2010 este inclus Visual Basic for Applications 7.0. Modulele din Access sunt obiecte ale bazei de date care permit scrierea procedurilor/funcţiilor în Visual Basic pentru aplicaţii. Modulele pot conţine una sau mai multe proceduri. În Access există următoarele tipuri de module [Teodorescu, 2005:223]

Module asociate formularelor – la crearea unui nou formular se generează automat şi modulul acestuia care conţine toate procedurile de eveniment ale formularului şi a controalelor incluse în formular.

Module asociate rapoartelor – sunt similare modulelor asociate formularelor; Module care conţin definiri de noi obiecte; Module standard.

Procedurile în Access pot fi: subrutine sau funcţii. Funcţia este “o procedură prin care se calculează o valoare ce se atribuie numelui acesteia.” [Teodorescu, 2005:224]. Definirea unei funcţii în VBA: [Private|Public] [Static] Function <nume_funcţie>([<parametrii>]) as <tip> [<set instrucţiuni>] [<nume_funcţie>=<expresie>] [Exit Function] [<set instrucţiuni>] [<nume_funcţie>=<expresie>] End Function [..] – elementele din interiorul parantezelor sunt opţionale; | - este folosit atunci când există mai multe alternative. Definirea unei subrutine în VBA: [Private|Public] [Static] Sub <nume_subrutină>([<parametrii>]) [<set instrucţiuni>] [Exit Sub] [<set instrucţiuni>] End Sub.

10.1. Lucrul cu un module

Crearea unui nou modul: se alege din fila Create, comanda Module din grupul Mecros&Code.

Page 68: BAZE de DATE Suport de Curs

68 |

În cazul în care dorim să modificăm un modul existent: se selectează din panoul de navigare modulul dorit, urmat de selecţia opţiunii Design View din meniul contextual (sau dublu-click pe modulul dorit) Pentru ştergere se selectează modulul şi se utilizează apoi tasta DEL sau se selectează opţiunea Delete din meniul contextual.

Scrierea rutinelor VBA se face în editorul Visual Basic. Editorul VBA are o serie de facilităţi: colorare a unor cuvinte, declaraţii sau fraze scrise eronat, liste cu funcţii, etc.

Fig. 11. Editorul Visual Basic

10.2. Instrucţiuni de afişare şi introducere a datelor În VBA există instrucţiuni pentru introducerea unor date şi afişarea de mesaje. InputBox (<mesaj>, [<titlu>], [<val_implicită>], [<x>], [<y>], [<fi şier_help>, [<context>] - permite introducerea datelor sub forma unei secvenţe de caractere de la tastatură MsgBox (<mesaj>, [<butoane>], [<titlu>] [<fişier_help>], [<context>]) - 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ă Caracteristici DOUBLE Număr memorat pe 64 de biţi, virgulă mobilă. Valori de la –1,797*10308

pâna la +1,797*10308 SINGLE Număr memorat pe 32 de biţi, virgulă mobilă. Valori de la –3,4*1038 pâna

Page 69: BAZE de DATE Suport de Curs

69 |

la +3,4*1038 CURENCY Număr memorat pe 64 de biţi. Valori posibile : -922337203685477,5808

până la 922337203685477,5808 BYTE Număr întreg pe 8 biţi. Valori posibile 0-255. INTEGER Număr întreg pe 16 biţi. Valori posibile : -32768 pâna la 32767. LONG Număr întreg pe 32 de biţi. Valori posibile : -2147483648 până la

217483647. BOOLEAN Conţine 2 valori logice : TRUE (adevărat –1) sau FALSE ( fals 0) DATE Conţine date calendaristice şi timp. Se utilizează între diez(#) STRING Şir de caractere. Poate conţine maxim 2 la puterea 31 caractere. Se

utilizează între ghilimele. VARIANT Tip de date generic. OBJECT Tip de date care referă un obiect.

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 Execuţia unui modul VBA se face alegând opţiunea RUN SUB/USERFORM din meniul principal. Exemplu de procedură (subrutină) pentru introducerea datelor:

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

10.3. Programarea structurată

Structuri alternative

1. instrucţiunea IF 2. instrucţiunea SELECT… CASE

1. Instruc ţiunea IF

Page 70: BAZE de DATE Suport de Curs

70 |

IF <condiţie> THEN <secvenţa_instrucţiuni_1>

ELSE <secvenţa_instrucţiuni_2>

ENDIF Se evaluează condiţia, dacă aceasta este adevărată se execută secvenţa de instrucţiuni 1, altfel se execută secvenţa de instrucţiuni 2.

2. Instruc ţiunea SELECT CASE SELECT CASE <expresie> CASE <lista_valori _1> <secvenţa_instrucţiuni_1> CASE <lista_valori_2> <secvenţa_instrucţiuni_2>

CASE <lista_valori_3> <secvenţa_instrucţiuni_3>

… CASE ELSE <secvenţa_instrucţiuni_n>

END SELECT Se evaluează expresia şi daca e egală cu una din lista de valori se execută secvenţa de instrucţiuni corespunzătoare, altfel se execută secvenţa de instrucţiuni n. Structuri repetitive

1. instrucţiunea WHILE….WEND 2. instrucţiunea DO…LOOP 3. instrucţiunea FOR…NEXT

1. Instrucţiunea WHILE WHILE <condiţie> secvenţa_ instrucţiuni WEND Se evaluează condiţia şi, atât timp cât e adevărată, se execută secvenţa de instrucţiuni. Dacă este falsă, se execută prima instrucţiune de după WEND. 2. Instrucţiunea DO…LOOP

DO WHILE|UNTIL <condiţie> <secvenţa_instrucţiuni> EXIT DO <secvenţa_instrucţiuni> LOOP

Page 71: BAZE de DATE Suport de Curs

71 |

În cazul instrucţiunii DO WHILE…LOOP se repetă secvenţa de instrucţiuni atâta timp cât condiţia este adevărată. EXIT DO se foloseşte pentru ieşirea forţată din structură. Dacă se utilizează DO UNTIL… LOOP se repetă secvenţa de instrucţiuni până când condiţia devine adevărată. O altă variantă a instrucţiunii este următoarea:

DO <secvenţa_instrucţiuni> EXIT DO

LOOP WHILE|UNTIL <condiţie>

3. Instruc ţiunea FOR…NEXT

FOR <contor>=<val_inițiala> TO <val_finala> STEP <val_pas>

<secvenţa_instrucţiuni> EXIT FOR <secvenţa_ instrucţiuni> NEXT <contor> Ieşirea forţată din structura for se face cu EXIT FOR. Dacă nu se specifică pasul, valoarea implicită este 1.

Rezumat 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ă. Utilizatorul foloseşte formularele pentru a introduce datele 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.

Recomandări și comentarii cu privire la temele de reflecție -

Lucrarea practică 4 și modalitatea de evaluare

Lucrarea practică 4 (LP4) I. Să se construiască baza de date ASIGURARI. Să se creeze tabelul CONTRACTE cu

următoarele câmpuri:

Page 72: BAZE de DATE Suport de Curs

72 |

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 Contracte. Sa se adauge doua butoane de comanda cu următoarele etichete: LISTA CONTRACTE si IESIRE. Acţionarea primului buton va avea ca efect afişarea raportul creat la punctul IV iar acţionarea butonului IESIRE va avea ca efect închiderea formularului.

Comprimaţi (arhivaţi) baza de date Asigurari 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 si prenumele dumneavoastră urmat de textul LP4 (ex: pop_ana_lp_4). În subiectul mesajului introduceţi numele arhivei. Predarea lucrării se face conform specificaţiilor din secţiunea „Formatul și tipul activit ăților implicate de curs”, partea 1 a materialului.

Bibliografie minimală pentru parcurgerea acestui modul 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ă, Cluj-Napoca, 2002. 7. Mediul Internet.