Sunteți pe pagina 1din 172

PROF. UNIV. DR.

SORIN BORZA

PROGRAMAREA CALCULATOARELOR SI LIMBAJE DE PROGRAMARE PARTEA II Manual pentru uzul studenilor la forma de nvmnt la distan

Editura Universitii Lucian Blaga din Sibiu 2010

CUPRINS
GHID DE UTILIZARE A MANUALULUI DE STUDIU........................................................ 5 PREZENTAREA MANUALULUI DE STUDIU I A DISCIPLINEI..................................... 7 Introducere ................................................................................................................................. 8 Tema 1...................................................................................................................................... 10 SISTEME DE FIIERE I BAZE DE DATE ......................................................................... 10 I. Obiective ........................................................................................................................... 10 II. Competente dobandite de catre student ........................................................................... 10 III. Cuvinte cheie: database, baza de date, normalizare, integritate referentiala, tabele, formulare, fisier.................................................................................................................... 10 IV. Structura modulului de studiu ........................................................................................ 10 V. Rezumat........................................................................................................................... 10 VI. Prezentare tema .............................................................................................................. 10 1.1 SISTEME DE FIIERE ................................................................................................. 10 1.2 SISTEME DE CODIFICARE A DATELOR ECONOMICE........................................ 15 1.3 SISTEMUL DE GESTIUNE AL BAZELOR DE DATE SGBD .................................. 19 1.3.1 Componentele mediului SGBD............................................................................... 19 1.4 MODELE ALE SGBD-URILOR................................................................................... 22 1.4.1 Modelul ierarhic al bazelor de date ......................................................................... 22 1.4.2 Modelul n reea al bazelor de date ......................................................................... 23 1.4.3 Modelul relaional al bazelor de date ...................................................................... 24 1.4.4 Modelul obiectual.................................................................................................... 24 1.4.5 Modelul distribuit al bazelor de date....................................................................... 24 1.5 PROIECTAREA BAZELOR DE DATE RELAIONALE .......................................... 25 1.6 NORMALIZAREA BAZELOR DE DATE RELAIONALE...................................... 27 1.7 Avantajele i dezavantajele sistemelor de gestionare a bazelor de date ........................ 29 1.8. Baze de date obiectuale ................................................................................................. 31 1.8.1 Obiecte complexe............................................................................................. 32 1.8.2 Identitatea obiectului ........................................................................................ 33 1.8.3 ncapsularea...................................................................................................... 34 1.8.4 Tipuri i clase ................................................................................................... 34 1.8.5 Motenirea........................................................................................................ 35 1.8.6 Redefinire static, polimorfism i legare dinamic .......................................... 36 1.8.7 Completitudine computaional, extensibilitatea, persisten .......................... 37 1.8.8 Concurena .............................................................................................................. 38 1.8.9 Recuperarea............................................................................................................. 39 1.8.10 Faciliti de interogare........................................................................................... 39 1.8.11 Versionare ........................................................................................................ 39 1.8.12 Securitatea ........................................................................................................ 39 1.8.13 Trsturi opionale ale unui OODBS ............................................................... 40 VII. BIBLIOGRAFIE COMPLEMENTARA...................................................................... 40 VIII. NTREBRI RECAPITULATIVE............................................................................. 40 VIII. APLICATIA PENTRU ACASA. INTREBRI TIP GRIL ..................................... 40 Tema 2...................................................................................................................................... 57 Microsoft Access si Limbajul SQL.......................................................................................... 57 I. OBIECTIVE ..................................................................................................................... 57 II. COMPETENE SPECIFICE DOBNDITE DE STUDENT........................................... 57 III. CUVINTE CHEIE .......................................................................................................... 57 IV. STRUCTURA MODULULUI DE STUDIU .................................................................. 57 V. REZUMAT...................................................................................................................... 57 2

VI. DESCRIEREA TEMEI.................................................................................................. 57 1.1 Concepte ale mediului Access.................................................................................. 58 1.1.1 Operaii elementare asupra programului Access.............................................. 58 1.2 Baze de date n mediul Access................................................................................. 61 1.2.1 Folosirea utilitarelor pentru bazele de date ...................................................... 61 1.2.2 Crearea bazei de date proprii utilizatorului ...................................................... 61 1.3 Tabele n mediul Access .......................................................................................... 63 1.3.1 Stabilirea proprietilor de cmp ...................................................................... 69 2.3.2 Stabilirea cheii primare .................................................................................... 69 1.3.3 Prelucrarea datelor ntr-un tabel....................................................................... 70 1.3.4 Modificarea structurii i prezentrii unui tabel ................................................ 72 1.3.5 Proprieti de ansamblu ale tabelelor ...................................................................... 74 1.4 Relaiile ntre tabele ................................................................................................. 74 1.5 Filtrarea datelor dintr-o tabel .................................................................................. 76 1.6 Ordonarea datelor n tabele ...................................................................................... 78 1.7 Personalizarea modului Datasheet View.................................................................. 78 LIMBAJUL S.Q.L.................................................................................................................... 80 2.1 Implementarea n produsul Access a limbajului S.Q.L............................................ 80 2.2 Comenzi de manipulare a tabelelor folosind limbajul SQL implementat n mediul Access 81 2.3 Scrierea interogrilor de selecie n SQL. Instruciunea SELECT........................... 82 2.4 Utilizarea funciilor globale SQL............................................................................. 85 2.5 Crearea asocierilor cu SQL ...................................................................................... 86 2.6 Compunerea interogrilor cu ajutorul operatorului UNION.................................... 88 2.7 Interogri imbricate .................................................................................................. 89 2.8 Interogri de aciune................................................................................................. 90 2.9 Utilitarul pentru realizarea interactiv a interogrilor n mediul Access QBE-SQL ..... 91 2.9.1 Exemple de interogri folosind QBE .............................................................. 92 2.9.2 Interogri tabel ncruciat................................................................................. 96 2.9.3 Interogri de aciune......................................................................................... 97 3. FORMURI (FORMULARE) ............................................................................................... 98 3.1 Tipuri de formulare .................................................................................................. 98 3.1.1 Formulare pentru procesarea tranzaciilor........................................................ 99 3.1.2 Formulare pentru facilitarea lurii deciziilor ................................................... 99 3.2 Crearea formularelor de procesare a tranzaciilor .................................................... 99 3.3 Utilizarea ferestrei Form Design ............................................................................ 102 3.3.1 Elementele ferestrei Form Design................................................................. 102 3.3.2 Proprietile elementelor i obiectelor de control .......................................... 103 3.3.3 Selectarea, deplasarea i dimensionarea unui obiect de control..................... 105 3.4 Butoanele barei de instrumente n modul Form View ........................................... 105 3.5 Caseta cu instrumente Toolbox .............................................................................. 106 3.6 Crearea unui formular gol cu antet i subsol.......................................................... 108 3.6.1 Adugarea unei etichete n zona de antet ....................................................... 109 3.6.2 Crearea casetelor de text asciate, multilinie i casetelor calculate................. 109 3.6.3 Casete de text asociate cu o singur linie....................................................... 109 3.6.4 Adugarea unei casete de text multilinie, cu bar de derulare vertical ........ 110 3.6.5 Crearea unei casete de text calculate.............................................................. 110 3.6.6 Modul de afiare a formularului..................................................................... 110 3.6.7 Crearea grupurilor de opiune ........................................................................ 110 3.6.8 Utilizarea casetelor list i casetelor combinate............................................. 111 3.6.9 Crearea unui subformular al unui formular dat.............................................. 112 3.6.10 Crearea formularelor continue ...................................................................... 112 3

3.6.11 Includerea antetului i a zonei de subsol n formular i n paginile tiprite... 112 3.7 Probleme rezolvate................................................................................................. 112 RAPOARTE........................................................................................................................... 117 4.1 Crearea unui raport................................................................................................. 117 4.1.1 Vizualizarea prealabil a raportului ............................................................... 118 4.1.2 Tiprirea raportului ........................................................................................ 118 4.1.3 Salvarea raportului ......................................................................................... 119 4.2 Configurarea personal a rapoartelor ..................................................................... 119 4.2.1 Modificarea formei unui raport ...................................................................... 119 4.2.2 Redimensionarea controalelor........................................................................ 119 4.2.3 Deplasarea controalelor.................................................................................. 120 4.2.4 Adugarea unei etichete ................................................................................. 120 4.2.5 Configurarea textului...................................................................................... 121 4.2.6 Adugarea unui cmp la un raport ................................................................. 121 4.2.7 Crearea unui raport cu date grupate ............................................................... 121 4.3 Crearea graficelor.................................................................................................. 122 FUNCII REFERITOARE LA TIPURILE DE DATE ACCESS......................................... 122 5.1 Operatori care apar n expresiile Access ................................................................ 123 5.2 Funcii pentru tipul de date data calendaristic i timp.......................................... 124 5.3 Funciile matematice i trigonometrice .................................................................. 125 5.4 Funcii care se refer la tipul de dat Textsau ir de caractere ........................... 126 5.5 Funcii de conversie a tipurilor de date Numeric, Logical, Date/Time i Text...... 128 5.6 Funcii diverse ........................................................................................................ 128 VIII. INTREBARI RECAPITULATIVE............................................................................... 133 IX. INTREBARI TIP GRILA ................................................................................................ 133 IX PROBLEME PROPUSE PENTRU REZOLVARE ......................................................... 142

GHID DE UTILIZARE A MANUALULUI DE STUDIU


Introducere Prezentul manual de studiu reprezint o sintez a coninutului disciplinei PCLP, care este comun nvmntului la forma de zi i la forma de nvmnt la distan, conform planurilor de nvmnt n vigoare. El este destinat studenilor de la forma de nvmnt la distan (ID) i constituie materialul bibliografic minim necesar pentru parcurgerea, nsuirea i evaluarea disciplinei respective. Manualul este structurat n conformitate cu standardele i procedurile de uz larg n nvmnt naional i internaional, care se adreseaz nvrii individuale pe baze interactive. Parcurgerea manualului, pe baza prezentelor instruciuni asigur reinerea informaiilor de baz, nelegerea fenomenelor fundamentale i aplicarea cunotinelor dobndite la rezolvarea unor probleme specializate. Manualul este structurat pe teme de studiu. Tema de studiu reprezint o parte omogen din componena manualului, caracterizat de un numr limitat de termeni de referin (cuvintecheie), care poate fi parcurs i nsuit printr-un efort continuu de concentrare intelectual care s nu depeasc 2-6 ore (intervalul se refer la coninutul de idei al modulului de studiu i nu ia n calcul ntrebrile recapitulative, temele pentru acas, testele de autoevaluare sau pe cele de evaluare). Fiecare unitate de studiu are o structur proiectat din perspectiva exigenelor autoinstruirii. Rezultatele efective ale utilizrii manualului se vor suprapune pe rezultatele ateptate doar cu condiia respectrii ntocmai a procedurii de parcurgere a modulelor de studiu, procedur care este prezentate n cele ce urmeaz. Procedura de nvare n sistem de autoinstruire Utilizarea manualului de studiu individual se face pe baza unui program de autoinstruire. Recomandm cteva reguli de baz n procedura de realizare a programului de autoinstruire pe baza manualului de fa: 1. Temele de studiu se parcurg n ordinea n care sunt prezentate n manual, chiar n cazul n care studentul apreciaz c ar putea sri direct la o alt unitate de studiu. Criteriile i modalitatea de nlnuire a modulelor de studiu sunt prezentate la fiecare modul de studiu i ele trebuie respectate ntocmai, sub sanciunea nerealizrii la parametrii maximali a programului de autoinstruire; 2. Fiecare modul de studiu conine i un test de evaluare i/sau tem pentru acas pe care studentul trebuie s le realizeze, cu scopul evalurii gradului i corectitudinii nelegerii fenomenelor i proceselor descrise sau prezentate n modulul de studiu; 3. ntrebrile de autocontrol, testele de evaluare sau tema pentru acas nu sunt de perspicacitate, deci nu trebuie rezolvate cotra cronometru; 5

4. Ordinea logic a parcurgerii unitii de studiu este urmtoarea: se citesc obiectivele i competenele modulului de studiu se citesc termenii de referin (cuvintele cheie) se parcurg ideile principale ale modulului sintetizate n rezumat se parcurge coninutul dezvoltat de idei al modulului se parcurge bibliografia recomandat se rspunde la ntrebrile recapitulative, revznd, dac este necesar, coninutul dezvoltat de idei al modulului se efectueaz testul de autoevaluare, raspunsul corect este scris pe fond galben se efectueaz testul de evaluare i/sau tema pentru acas sau de control (dup caz) OBS.: Este recomandabil ca, nainte de efectuarea testelor de autoevaluare, s se fac o pauz de 30 de minute sau o or. De asemenea este recomandabil ca la fiecare 2 ore de studiu s se fac o pauz de 30 de minute. 5. Nu este recomandabil s se parcurg mai mult de un modul de studiu pe zi, pentru a nu se periclita nsuirea temeinic i structural a materiei. n funcie de necesitile i posibilitile de studiu ale studentului, studiul unui modul poate fi fracionat pe mai multe zile, dedicnd cel puin 30 de minute pe zi studiului. APLICATIA PRACTICA PENTRU ACAS reprezint un exerciiu obligatoriu. Ea se constituie ntr-un instrument indispensabil de studiu individual aferent fiecarei teme. Este necesar nelegerea modului de rezolvare a temei. Rezolvarea ei se poate face n module de aprox. 1-2 ore fiecare. PROBLEMELE REZOLVATE IN CADRUL APLICATIEI PRACTICE TREBUIE PREZENTATE LA EXAMEN IN MOD OBLIGATORIU. TEMA DE CONTROL (TC): reprezint un exerciiu obligatoriu mai amplu, cu caracter integrativ, care are rolul de a realiza un liant noional i cognitiv ntre temele studiate anterior i de a provoca capacitatea sitentic i creativ a studentului. Pregtirea ei necesit un efort mai ndelungat (aprox.10 ore), implic stpnirea temelor anterioare precum i consultarea tutorelui de disciplin. Cele dou teme de control se regsesc pe parcursul manualului astfel nct s acopere cele mai importante pri ale acestuia.

PREZENTAREA MANUALULUI DE STUDIU I A DISCIPLINEI


Manualul de studiu PCLP reprezint o sintez realizat n manier interactiv a cursului corespondent utilizat la forma de nvmnt zi. Coninutul de idei nu a fost redus ci doar sintetizat, n principiu, ntr-o manier mai accentuat enunciativ, elementele de detaliu sau de explicaie redundant (necesare pentru atingerea scopului pedagogic al fixrii i corelrii cunotinelor) putnd fi gsite de ctre student n bibliografia de specialitate recomandat. Obiectul cursului PCLP: Obiectul cursului l reprezint familiarizarea studentului cu o serie de termeni specifici stiintei calculatoarelor, cu prezentarea unor notiuni fundamentale care se refera la bazele de date. Unul dintre obiectivele principale ale cursului este acela de a invata studentul sa foloseasca pachete de programe ale unui software orientat spre baze de date: Microsoft Access Obiectivele disciplinei: Manualul PCLP i propune ca obiectiv cunoasterea teoretica de catre studenti a notiunilor legate de baze de date, precum si folosirea practica a produsului software Microsoft Access. Obiective principale: a) nelegerea mecanismelor generale ale apariiei i evoluiei bazelor de date atat din punct de vedere constructiv cat si logic; b) folosirea practica a unui produs software specific bazelor de date. Descrierea structurii manualului: Manualul este structurat n conformitate cu rigorile studiului individual (autoinstruire) si este compartimentat n teme de studiu. Structura fiecrei teme de studiu este urmtoarea: I. II. III. IV. V. VI. VII. Obiective (rezultatele ateptate ale temei) Competenele dobndite de student (utilitatea temei pentru student) Termeni de referin (concepte cheie) Structura temei de studiu Rezumatul ideilor principale Coninutul dezvoltat de idei al modulului Bibliografia recomandat 7

VIII. IX.

ntrebri recapitulative Teste de autoevaluare, teste de evaluare, teme de cas

Manualul este structurat in doua parti, o parte teoretica: tema 1 si o parte practica tema 2. Studentul va trebui sa cunoasca raspunsurile la problemele recapitulative si la intrebarile tip grila la partea teoretica. La partea practica trebuie sa rezolve toate problemele de la tema care se refera Access. Cu cunostintele acumulate la partea teoretica si cu toate problemele rezolvate se va prezenta la examen. I. Prezentul manual constituie bibliografia general minimal obligatorie pentru studiul disciplinei PCLP. El reprezint minimul de informaie necesar pentru nelegerea i nsuirea noiunilor fundamentale ale disciplinei. II. Bibliografia general complementar: Studiul tiinific al disciplinei impune parcurgerea urmtoarei liste de bibliografie romneasc selectiv: 1. Sorin Borza, Realizarea Aplicatiilor Microsoft Office folosind limbajul Visual Basic for Application, Editura ULBS, Sibiu, 2008 2. Sorin Borza, Utilizarea Aplicatiilor Microsoft Office Culegere de probleme, Editura ULBS, Sibiu, 2007 3. Sorin Borza, Paul Dan Brindasu, Baze de Date in Sisteme Informatice de Gestiune, Editura ULBS, Sibiu, 2005 4. Baruch, Zoltan Francisc, Arhitectura Calculatoarelor Editura TODESCO, Cluj-Napoca, 2000; 5. Boboila C.: Arhitecturi, echipamente de calcul si sisteme de operare, Ed. Universitaria, Craiova, 2002; III. Pentru realizarea unor studii tiinifice, a temelor pentru acas, a temelor de control, a lucrrii de licen precum i pentru aprofundarea disciplinei studentul se va adresa pentru bibliografie suplimentar tutorelui de disciplin.

Introducere
Cursul Programarea Calculatoarelor si Limbaje de Programare contine doua teme: 1. Noiuni teoretice care prezint: notiuni fundamentale despre sisteme de baze de date, modele ale bazelor de date, baze de date relationale si obiectuale. Cursul prezinta limbajul SQL structura comenzilor, folosirea acestuia in mediul ACCESS 2. Noiuni practice are ca scop familiarizarea studentului cu aplicaiile pachetului de programe Microsoft Office: Acces.
8

Cele doua teme ale cursului sunt: Sisteme de baze de date; Pachetele de programe pentru baze de date Access si limbajul de programare SQL.

Tema 1 SISTEME DE FIIERE I BAZE DE DATE


I. Obiective Acest capitol are ca scop familiarizarea studenilor cu principalele aspecte legate de bazele de date: Data, articol, cmp, tabel; Codificarea datelor; Sisteme de gestiune ale bazelor de date; Modele ale bazelor de date; Dependena funcional i normalizarea bazei de date; Proiectarea bazelor de date relaionale; II. Competente dobandite de catre student Competentele dobandite de catre student prin parcurgerea acestei teme se refera la: intelege modul in care este realizata o baza de date si modul in care aceasta functioneaza. Studentul dobandeste competente privind tipurile de baze de date, ce este si cum functioneaza un SGBD relational si obiectual. Tototdata studentul va avea competente privind principalele entitati ale unei baze de date III. Cuvinte cheie: database, baza de date, normalizare, integritate referentiala, tabele, formulare, fisier. IV. Structura modulului de studiu Sistemul de fisiere; Sisteme de codificare a datelor economice; Introducere in sisteme de gestiune a bazelor de date; Sisteme de gestiune a bazelor de date SGBD; Modele ale SGBD-urilor; Baze de date relationale; Proiectarea bazelor de date relationale Normalizarea bazelor de date relationale V. Rezumat Acest capitol face pentru nceput un scurt istoric al bazelor de date facnd referin la sistemul de fiiere. n acest context se prezint noiunile de dat, cmp, articol. Se prezint cteva reguli importante privind codificarea datelor. Dup tratarea n amnunt a noiunilor fundamentale privind bazele de date se prezint modul n care au evoluat bazele de date i principalele modele de baze de date. Se prezint detaliat bazele de date relaionale, precum i principale noiuni i entiti pe care le conin. Normalizarea i regulile de proiectare ale bazei de date sunt noiuni importante pe care trebuie s le cunoasc un utilizator de baze de date. VI. Prezentare tema 1.1 SISTEME DE FIIERE Istoric, la primele calculatoare, aplicaiile accesau datele existente n fiiere. Cu toate c conceptul de sistem de fiier are tendina de a crea multe probleme i actualmente este aproape scos din uz, sunt cteva motive pentru a le studia n detaliu: sistemele de fiiere prevd o perspectiv de tratare a datelor; 10

o mulime de probleme care se aplic sistemelor de fiiere pot fi copiate n softul bazelor de date pentru c utilizatorul unui soft nou sunt luai prin surprindere de capcanele managementului datelor; Complexitatea proiectrii bazei de date poate fi uor neleas, o dat ce caracteristicile sistemului de fiiere este neles. Dac se intenioneaz convertirea unui sistem de fiiere ntrun sistem de baze de date, cunotiinele despre limitrile sistemului de fiiere, pot fi folositoare. Sistemul de fiiere este compus dintr-o colecie de foldere de fiere, fiecare avnd un rol bine determinat. Organizarea datelor n interiorul fiierului s-a fcut n funcie de presupusa folosire a datelor. Ideal coninutul fiecrui fiier este asociat logic cu o anumit informaie. De exemplu dosarul de fiiere al unui cabinet medical conine date despre pacieni, cte un fiier dosar pentru fiecare pacient, care descrie istoricul medical al pacientului. Pe scurt toate datele au fost asociate cu fiecare pacient individual. Similar un manager trebuie s-i organizeze informaiile despre personal pe diverse categorii. Astfel un dosar fiier cu eticheta tehnic va conine doar informaii despre persoanele care lucreaz n domeniul tehnic. Atta timp ct colecia de date este relativ mici managerii organizaiei au cerine puine, sistemul manual poate s-i ndeplineasc rolul de memorare al datelor relativ bine. n orice caz n cazul n care organizaa crete i cerinele devin mai complexe memorarea informaiilor ntr-un sistem de dosare devine tot mai dificil. Managerii trebuie s rspund la o serie de ntrebri cum ar fi: Care produse s-au vndut mai bine ntr-o sptmn, ntr-o lun sau ntr-un trimestru? Care a fost volumul de vnzri pe zi, sptmn sau lun? Cum a fost perioada curent din punct de vedere al vnzrilor comparativ cu perioada anterioar? Cum au variat categoriile de costuri pe parcursul ultimei sptmni, luni sau trimestru? Alte cauze au tendina s fac managerii s cear tot mai multe informaii. Din nefericire rapoartele care se bazeaz pe un sistem de dosare tind s devin tot mai ineiciente. Consecina este folosirea unui sistem de calcul i de a lsa calculatorul s gestioneze datele i s produc rapoartele cerute. Conversia de la un sistem manual de dosare la un sistem bazat pe calculatoare este complex. Consecina este apariia unui nou specialist care trebuie angajat n staful de conducere al societii, angajat care se numete specialist de procesare de date sau pe scurt DP (sau programator). Acesta va crea structura de fiiere necesar, precum i aplicaiile program care vor produce rapoartele necesare. Aceasta ar fi pe scurt naterea sistemului de fiiere. Inial fiierele sunt relativ uor de folosit n interiorul sistemului de fiiere, ele fiind folosite asemntor cu dosarele n sistemul manual de gestiune. Descrierea fiierelor necesit folosirea unui vocabular specializat care s ofere posibiliti de comunicare foarte precise. Printre informaiile care se pot regsii ntr-un fiier amintim: data care este unitatea de baz pentru memorarea informaiei. n forma cea mai simpl aceasta poate s conin un singur caracter (liter, cifr, virgul, dou puncte, caracter special etc). Un singur caracter necesit doar un singur byte pentru memorarea informaei; cmpul conine un caracter sau un grup de caractere. Aceste caractere pot fi de diverse tipuri funcie de sistemul folosit; articolul este un set logic de unul sau mai multe cmpuri care descriu o anumit entitate; fiierul este o colecie de articole sau nregistrri legate ntre ele. Pe baza informaiilor existente ntr-un fiier se pot obne diverse rapoarte folosite n departamentele societii. n timp sunt create diverse fiiere pentru toate departamentele societii Un sistem simplu de fiiere este reprezentat n figura: 11

1. Hardware: Calculatorul; 2. Software: Sistemul de operare, utilitare, DBMS, aplicaii program care genereaz raportri pe baza datelor memorate n fiierele Clienti, Vanzari i Personal; 3. Oameni: Managerii departamentului programare, administrator sistem de calcul, programatori; 4. Proceduri: Instruciuni i reguli care guverneaz proiectarea i folosirea componentei software; 5. Date: Colecie de adevruri. O analiz a unui astfel de sistem poate fi criticat din dou puncte de vedere majore: nelegerea neajunsurilor sistemului legat de nelegerea raiunilor existente pentru dezvoltarea bazelor de date; multe dintre problemele care apar n sistem nu sunt unice n sistemul de fiiere. Absena nelegerii acestor probleme este de a ghida existena datelor duplicat n bazele de date chiar i atunci cnd tehnologia bazelor de date ar permite relativ uor eliminarea acestui inconvenient. Managementul datei n sistemul de fiiere Chiar i datele simple necesit programe de exploatare din generaia a treia (3GL). Aceste limbaje cer programatori care s specifice att ce trebuie fcut ct i cum trebuie fcut. Astfel de limbaje sunt COBOL, FORTRAN, FOXPRO, TURBO PASCAL C++ etc Dac numrul de fiiere care fac parte din sistem este relativ mare, administrarea 12

sistemului devine dificil. Fiecare fiier trebuie s aib propriul sistem de management compus din programe care realizeaz: Creaz structura fiierului; adaug date n fiier; terge date din fiier; modific datele coninute n fiier; listeaz coninutul fiierului De exemplu chiar un sistem de fiiere compus din 20 de fiiere necesit 5X20=100 de programe care s le asigure managementul. Dac sunt necesare pentru fiecare fiier aprox. 10 raportri rezult nca 200 de programe care trebuie scrise. Aceast tendin este n cretere pentru fiecare nou raportare care se cere funcie de un anumit departament. Proiectarea structurii fiierelor este o problem care trebuie fcut cu atenie de ctre managerul departamentului programare. Schimbarea structurii deja creat a unuia sau a mai multor fiiere din sistem este o problem care poate implica riscuri majore privind funcionarea sistemului de fiiere. De exemplu pentru sistemul prezentat modificnd doar un cmp din fiierul Clienti are urmtoarele efecte: Copiaz noua structur de fiier ntr-o zon de memorie special denumit buffer; Deschide fiierul original folosind un buffer diferit; Citete articolul din fiierul original; Transform data original conform noi structuri folosind un ir complex de modificri; Scrie data transformat n noua structur. n final fiierul original este ters. Astfel toate programele care foloseau vechea structur trebuie modificate. n general orice modificare minor a structurii are ca efect modificarea tuturor programelor care apeleaz vechea structur. Aceste modificri pot induce erori. Avertismrntul Gndete nainte de a face este deosebit de activ n sistemele de fiiere. Pentru c toate programele de acces la fiiere trebuie modificate ac se modific structura unui fiier spunem c sistemul de fiiere este expus dependenei structurale Securitatea datelor, care necesit parol blocarea anumitor pri din fiiere i alte msuri proiectate pentru a asigura securitatea i confidenialitatea datelor este dificil de realizat n sistemul de fiiere. Cu toate c sistemul de fiiere este uor de implementat la sistemele complexe este foarte posibil ca ele s scape de sub control. n general aceste sisteme nu sunt bine adaptate la cerinele datelor moderne. Dependena structural n paragraful precedent am vzut cum o simpl modificare n structura unui fiier implic modificri ample n programele care gestioneaz respectivul fiier. Aceasta nseamn c accesul la fiier este dependent de sturctura sa Fiecare schimbare a tipului de dat din cmp, de exemplu din numeric ntreg n numeric zecimal, implic modificri n programele care gestioneaz fiierul. Semnificaia practic a dependenei datei const n faptul c exist diferene ntre formatul logic al datelor i formatul fizic al datelor. De aceea orice program care acceseaz fiiere poate s nu ntrebe calculatorul ce s fac dar trebuie s-l ntrebe ntodeauna cum s o fac. n consecin fiecare program trebuie s conin linii de comand care s specifice tipul de fiier, specificaiile de articol precum si definiiile de cmp. Tot ceea ce am discutat n acest capitol poate fi rezumat n: orice modificare n caracteristicile datelor sau n structura fiierelor, orict de minor este, implic modificri n toate programele care folosesc fiierul modificat. Definiii de cmp Presupunem fiierul Clienti cu urmtoarea structur: 13

1. 2. 3. 4. 5. 6. 7. 8. 9.

C_nume Numele clientului; C_telefon Numrul de telefon al clientului; C_adresa Adresa clientului; C_zip Codul potal al clientului; Agent Agentul de vnzri al clientului; A_telefon Numele de telefon al agentului; Tp Tipul de asigurare; AMT Total plat asigurare; Ren_date Data de renoire a asigurrii.

La o prim privire structura acestui fier se pare c satisface doleanele celui care la proiectat. Presupunem c dorim s realizm un director n care memorm numele de telefon a tuturor clienilor. Memorarea numele clientului ntr-un singur cmp poate fi un lucru labil pentru c pot fi mai mul clien care au acelai nume sau acelai prenume. Presupunem c dorim s desprim clienii dup diverse regiuni. Includerea codului regiunii n numrul de telefon poate fi o soluie nefericit. De asemenea o list a clienilor dup orae este relativ greu de obinut. n acest caz trebuie gndit o soluie care s cuprind cmpuri att pentru nume i prenume, pentru regiuni geografice (judee) sau pentru orae. Astfel structura fiierului Clieni poate arta astfel: 1. C_nume Numele clientului; 2. C_prenume Prenumele clientului; 3. C_telefon Numrul de telefon al clientului; 4. C_adresa Adresa clientului; 5. C_judet Numele judeului; 6. C_ora Numel oraului; 7. C_zip Codul potal al clientului; n mod curent fiierul Clienti nu are un identificator unic pentru fiecare nregistrare din fiier. n consecin adugarea unui cont care identific unic fiecare client ar fi o soluie prin care se identific fiecare nregistrare a fiierului. Ce ar trebui reinut din cele enumerate mai sus, este faptul c un fiier cu o structur bun poate produce raportri flexibile care s se adapteze corespunztor necesitilor. Date duplicat Dac mediul sistem de fiier face dificil partajarea datelor, aceasta poate fi memorat n mai multe locaii diferite. De exemplu date despre agent pot fi memorate att n fiierul Clieni, ct i n fiierul Personal sau n fiierul Vnzri. Aceste date duplicat presupun o surs existent de erori. Necontrolarea datelor duplicat conduce la: 1. Redundana datelor. Sistemul de fiiere poate conine cmpuri duplicat n dou sau mai multe fiiere. Acest lucru nseamn spaiu ocupat fr nici un rost, precum i creterea inutil a costurilor; 2. Inconsistena datelor. Dac schimbm informaiile dintr-un cmp al unui fiier i aceeai informaie se regsete i ntr-un alt fiier unde uitm s facem acest lucru, eventualele rapoarte efectuate pe acest fiier pot genera informaii eronate; 3. Anomalii de date. Ideal schimbarea valoarii dintr-un cmp poate fi fcut ntr-un singur loc. Redundana datelor forate oricum de condiii anormale determin schimbri n mai multe cmpuri. Dac de exemplu un agent de sex feminin se mriti i schimba numele aceast modificare trebuie s se regseasc n mai multe fiiere. De asemenea ea poate s-i modifice numrul de telefon sau adresa. Toate aceste modificri trebuie efectuate n toate fiierele n care apare respectivul 14

nume de agent. Dac nu sunt efectuate modificrile n toate fiierele, aceast lucru va genera date eronate. Aceste anomalii exist pentru c orice modificare n orice cmp trebuie efectuat corect n mai multe locuri. Acest lucru menine consistena datelor. Anomalile care apar din punct de vedere al datelor pot fi: Modificri de anomalii. Dac un agent i modific numrul de telefon acesta trebuie modificat n toate locurile unde este cazul; Dacse adaug un nume nou de agent, informaiile referitoare la el trebuie s apar n toate fiierele care conin informaii despre agent; tergerea anomaliilor. Dac un agent nu mai exist cu aceast funcie atunci el trebuie ters din toate fiierele n care respectivul agent apare.

1.2 SISTEME DE CODIFICARE A DATELOR ECONOMICE


n aplicatiile curente ale informaticii n domeniul gestiunii ntreprinderilor problema organizarii datelor joaca un rol primordial. Se prelucreaza volume mari de date asupra carora se aplica tipuri de prelucrari relativ simple. Prin aceasta informatica de gestiune se diferentiaza de aplicatiile pentru domeniul tehnico-stiintific unde dificultatea esentiala se refera la definirea unui algoritm eficient. Ca atare, modelarea problemelor de gestiune acorda o importanta deosebita gestionarii acestor volume mari de date n conditii de confidentialitate. Gestiunea datelor organizate n fisiere sau baze de date trebuie sa asigure si solutii eficiente de identificare a seturilor de date, operatiunile de exploatare, actualizare, sortare etc. Pentru asigurarea unei identificari sigure si rapide a seturilor de date din domeniul economic se recurge la codificarea acestora. n practica se ntlnesc mai multe sisteme de codificare. Dupa structura codului utilizat distingem urmatoarele tipuri de coduri: a) coduri elementare Coduri seriale Coduri seriale pe grupe Coduri mnemonice Coduri cu semnificatie descriptiva b) coduri complexe. Dupa modul de detectare si corectare a erorilor codurile se mpart n urmatoarele categorii: Coduri autodetectoare de erori, Coduri autocorectoare de erori Dupa natura caracterelor folosite: coduri numerice, coduri alfabetice, coduri alfanumerice Coduri elementare au rolul de a identifica un element din cadrul unei multimi de elemente. Pot fi: Coduri seriale se formeaza prin atribuirea unui sir de caractere fiecarui element al multimii stabilind o corespondenta n ordine crescatoare ntre elementele acestora si multimea numerelor naturale; permite controlul prin contor crescator (+1); pentru a avea o lungime fixa se adauga la stnga zerouri nesemnificative, pentru maxima stabilita. Exemplu: Codificarea mijloacelor de transport dintr-o societate comerciala de transport auto: 6 cifre: 000000 000001 000002 Coduri seriale pe grupe se rezerva o secventa pentru fiecare grupa cu caracteristici comune. n codul grupelor elementare sunt codificate serial. Exemplu: autoturisme 000 0100 15

autocamioane 0200 0400 autobasculante 0800 1200 autotractoare 2000 3200 Coduri mnemonice - din consoanele unui cuvnt sau abrevierea denumirii elementului codificat. Exemplu: ATC, ATB Coduri de semnificatie descriptiva combinarea unitatilor denumirilor elementelor ce se codifica cu caracteristicile tehnico-economice ale acestora exprimate cifric. Exemplu: OR 15 Otel ... 15 m Se utilizeaza la nomenclatoarele industriale. Coduri complexe se folosesc pentru elemente care pot sa apartina mai multor multimi distincte. Se cuprind aici: coduri ierarhizate coduri juxtapuse coduri combinate: - coduri materiale coduri cu baza binara Dupa modul de detectare si corectare a erorilor Coduri autodetectoare de erori se bazeaza pe stabilirea unei denumiri de control formate din una sau doua pozitii numerice sau alfabetice care se ataseaza simbolului. Cheia de control determina prin mai multe procedee: Metoda aritmetica; Metoda geometrica; Metoda sumei ponderate fata de un model dat (variante a metodei geometrice); Metoda literei de control (variante a metodei geometrice). Coduri autodetectoare de erori permit pe lnga detectarea erorilor si rectificarea automata a lor. Ocupa mult spatiu n memoria interna deoarece realizeaza construirea motoarelor fara de care utilizarea acestor coduri nu este posibila. Metoda literei de control evita marirea simbolului cu 2 cifre limiteaza posibilitatea aparitiei erorilor de transcriere se nlocuiesc cheile de control numeric n cifre fiecare cifra a simbolului se nmulteste de la dreapta la stnga cu ... 1-n Produsele se nsumeaza si suma se mparte la 23 (cel mai mare numar prim din cadrul numarului de litere al alfabetului englez) Metoda aritmetica stabilirea cheii de control ca diferenta ntre suma produselor obtinute prin nmultirea fiecarei cifre a simbolului cu o structura de numere conventional alese si cifra zecilor imediat superioara. Metoda geometrica stabilirea cheii de control ca rest al mpartirii sumelor produselor fiecarei cifre a simbolului cu puterile crescatoare ale lui 2, la un numar prim ales conventional; marimea numarului prim determina numarul de cifre si valoarea maxima a cheii de control. Coduri autocorectoare permit pe lnga detectarea erorilor si rectificarea automata a lor; simbolurile sunt prezentate n forma matriciala stabilindu-se pentru fiecare linie si coloane cte o cheie de control, determinata prin nsumarea cifrelor pe linie sau pe coloana si scaznd rezultatul din ordinul zecilor imediat superior; eventualele erori se localizeaza la intersectia liniei si coloanei ale caror chei calculate sunt diferite de cheile initiale; variatia ultimei cifre a cheii da valoarea absoluta a erorii care trebuie corectata. Eroarea este detectata de intersectia liniei si coloanei n care cheile nu corespund cu cele stabilite anterior. Dimensiunea greselii este data de diferenta dintre cheia generala stabilita anteriro si calculata n timpul verificarii (3-4) = -1. Codurile autocorectoare ocupa foarte mult spatiu n memoria calculatorului deoarece solicita 16

construirea matricelor fara de care utilizarea acestui procedeu este imposibila precum si a unor tabele de referinta permanenta pentru caractere. De asemenea ocupa mult suport ntruct alaturi de partea informationala apar si grupele de chei de control pe linii si coloane iar programele sunt mai complicate. Introducere n sisteme de gestiune a bazelor de date La nceput calculatoarele au fost utilizate numai pentru calcule aritmetice. Prin cresterea vitezei de calcul, prin cresterea capacitatii de memorare a datelor, prin adaugarea unor noi componente de intrare iesire, prin dezvoltarea unor limbaje de programare s-a ajuns acum la prelucrarea intr-un timp scurt a unei mari cantitati de informatii. Organizarea si gestionarea acestor informatii se face la nivelul bazelor de date.Toate formele de activitate manipuleaz informaii, iar eficiena fiecrei activiti este dependent de acurateea cu care sunt prelucrate informaiile. Noiunea elementar care desemneaz un obiect real sau abstract, care are o existen bine determinat ca ntindere, importan, valoare i este definit prin ceea ce se cunoate despre ea se numete entitate. Proprietile care definesc o entitate se numesc atribute. O colecie de entiti cu proprieti similare formeaz o clas de entiti sau un tip de entiti. Operaia logic de grupare a entitilor n clase cu anumite semnificaii se numete structurare. Pentru valori concrete ale atributelor unei entiti se obine o realizare. Un anumit tip de entitate reprezint o semnificaie, iar o realizare a sa, un fapt. Datele sunt fapte plus semnificaii, iar faptele sunt valori ale atributelor. Atributele pot fi denumite elemente de dat sau cmpuri. Un atribut sau o multime de atribute care permit identificarea n mod unic a fiecrei entiti se numete cheie (cheie primar) a entitii. De exemplu, calitatea de angajat a unei firme constitue o clas de entiti, iar un angajat anume, o entitate. Atributele entitii angajat sunt: nume i prenume angajat; numr matricol; vrsta; adresa; funcia; Mulimea de valori concrete ale atributelor pentru un angajat anume reprezint o realizare sau o ocuren a entitii angajat; O colecie de date a crui coninut poate fi partajat de mai muli utilizatori i care este protejat i gestionat pentru a-i pstra valoarea i calitatea n timp se numete baz de date O baz de date este format din date despre entiti i despre relaiile dintre acestea. Ea reprezint o colecie structurat de date, descrierea acestor date, precum i a relaiilor dintre ele. Baza de date poate fi: logic; fizic. Baza de date logic, este format din totalitatea entittilor, atributele acestora i relaiilor privite independent de modul n care sunt reprezentate i memorate pe mediul de memorare. Baza de date fizic, reprezint modul de reprezentare pe medii de memorare a entitilor, atributelor i a relaiilor dintre ele. O baza de date contine toate informatiile necesare despre obiectele ce intervin ntr-o multime de aplicaii, relaiile logice intre aceste informaii si tehnicile de prelucrare pentru aceste informaii. n bazele de date se face o integrare a datelor in sensul ca mai multe fiiere sunt privite n ansamblu, eliminandu-se pe cat posibil informaiile redundante. n acelasi timp se permite accesul simultan la aceleasi date a mai multor persoane. De exemplu dac ne gndim la baza de date a Facultii de Inginerie, pot fi pastrate de 17

exemplu pe perioade mari de timp informatii privind studentii, personalul, slile, planul de invatamant, aparatura i alte elemente despre care diferite persoane pot cere informaii la un moment dat. ntre aceste elemente exist diferite relatii cum ar fi: unii studenti fac anumite cursuri, unele cursuri se tin in anumite sali, unele aparate se afla in anumite sali, unele persoane pot tine cursuri si alte relatii asemanatoare. Pentru a avea informaii semnificative dintr-o baz de date este necesar de a avea acces rapid la informaiile bazei de date (datele brute) i a asigura un management corespunztor acestora, pentru a putea fi memorate i regsite conform cerinelor. Un management al datelor eficient cere folosirea bazelor de date pe calculator.

End user

End user

Fig.1 Sistemul de management al unei baze de date

Se poate defini o baz de date ca o structur partajati integrat care conine: Date end-user, care sunt datele brute ale utilizatorului; Metadatele sau date despre date, prin care datele sunt integrate. Metadatele conin o descriere a caracteristicilor datelor i un set de relaii care leag datele gsite n interiorul bazei de date. Baza de date este deci asemntoare cu un cabinet, cutie electronic foarte bine organizat n care software-ul numit DBMS sau database management system, ajut la conducerea acestuia. DBMS este o colecie de programe care gestioneaz structura bazei de date i controleaz accesul la informaiile din baza de date. El distribuie datele dintr-o baz de date la mai multe aplicaii. DBMS-ul ascunde complexitatea bazei de date n faa aplicaiilor, el este un intermediar ntre utilizator i baza de date, traducnd cererile utilizatorilor n cod program complex. Aplicaiile program pot fi scrise ntr-un limbaj de nivel nalt sau pot folosi utilitare ale DBMS-ului. Acest lucru este ilustrat n figura 1.1 n general software-ul unei baze de date poate fi cumprat. n DBMS nu pot efectuate schimbri. Cnd se pune problema proiectrii unei baze de date atunci se pun probleme privind sturctura bazei de date pentru memorarea i managementul datelor. Ea conine nu numai datele operaionale ci i descrierea acestora. Aceast descriere a datelor este cunoscut sub numele de dicionar de date. Se produce astfel independena program - date. ntr-o baz de date un utilizator vede doar modul n care este definit extern un obiect fr s cunoasc modul n care acesta este definit intern i cum funcioneaz. Aceasta constitue abstractizarea datelor. Entitatea este un obiect distinct, atributul este o proprietate care descrie un aspect oarecare, iar o relaie este o asociaie ntre mai multe entiti.

18

1.3 SISTEMUL DE GESTIUNE AL BAZELOR DE DATE SGBD


Un sistem de programe care permite utilizatorului definirea, crearea i ntreinerea bazei de date si accesul controlat al acesteia. SGBD conine un pachet software care interacioneaz cu programele de aplicaie ale utilizatorului i cu baza de date. Conine un limbaj de definire al datelor DDL care permite specificarea tipurilor de date si a structurilor in timp ce constrngerile asupra datelor sunt stocate n baza de date. Conine limbajul de manipulare al datelor DML care realizeaz operaiile fundamentale de inserare, actualizare, tergere. Exist un limbaj de interogare al datelor, care elimin difucultile sistemelor bazate pe fiiere Exist dou tipuri de limbaje DML unele procedurale funcie de tipul de SGBD i altele neprocedurale de ex. SQL; SGBD-urile permit definirea unor mecanisme de vizualizare care permit fiecrui utilizator s-i defineasc propriiul mod de vizualizare a bazei de date. DDL permite definirea unor subseturi de vizualizare care sunt la rndul lor subseturi ale bazei de date. Modurile de vizualizare ofer: Un anumit nivel de securitate n sensul n care poate fi nhibat vizualizarea unor date care nu trebuie vzute; Ofer un mecanism de personalizare a aspectului bazei de date Pot prezenta o imagine coerent a structurii bazei de date chiar dac aceasta sufer modificri.

1.3.1 Componentele mediului SGBD


Hardware Componenta hardware cuprinde partea fizic care deservete SGBD-ul este foarte diferit de la un caz la altul. Funcie de aplicaiile pe care le deservesc este necesar un anumit hardware. De obicei este vorba despre reele de calculatoare la nivel de societate economic, ora sau ar. Software Componenta software cuprinde programele sistemului SGBD i programele aplicaie, impreuna cu sistemul de operare, inclusiv software de retea, dac sistemul SGBD este utilizat intr o retea de calculatoare. De obicei, programele ap1icatie sunt scrise intr-un limbaj de programare din generatia a treia -cum ar fi C, COBOL, Fortran, Ada sau Pascal -sau se uti1izeaza un limbaj din generatia a patra, cum ar fi SQL, incorporat intr-un 1imbaj din generatia a treia. Sistemul SGBD poate avea propriile sale instrumente din generatia a patra sau a cincea, care permit dezvoltarea rapida de aplicatii, prin furnizarea unui limbaj de interogare neprocedural i a unor generatoare de rapoarte, formulare, grafica i ap1icatii. Uti1izarea instrumentelor din a patra generatie poate irnbunatati semnificativ productivitatea i permite realizarea unor programe uor de intretinut. Datele Probabil ca cea mai important component a unui mediu SGBD, cu siguran din punctul de vedere al uti1izatorului fmal (end user), o constituie datele. Datele acioneaz ca o punte intre componentele maina i cele umane. Baza de date conine att datele operationale, cat i 19

metadatele sau "datele despre date". Structura bazei de date este denumit schema. Punctul de vedere al administratorului de baza de date care integreaza toate vederile ce privesc baza de date ntr-un singur model se numete schema conceptual. Schema conceptual constituie nivelul logic al bazei de date. O schema conceptuala trebuie sa se bazeze pe un model teoretic i s fie simpl n sensul de a fi uor de ineles i de prelucrat. Numrul elementelor ce o constituie s nu fie prea mare, diferitele concepte folosite s fie separate clar, s se pastreze simetriile, s se in sub control redundanele sunt cateva din principiile ce se aplic n acest caz. Planurile ce constau n enumerarea tipurilor de entitati ce apar in baza de date, relatiile intre aceste tipuri de entitai i modul de trecere de la noiunile acestui nivel la nivelul imediat urmtor, numesc scheme externe sau subscheme conceptuale sau vederi. Informatiile ce apar in scheme externe pot fi luate ca atare din nivelele logic i fizic sau pot fi deduse din aceste informatii pe baza unor calcule. De exemplu pentru o persoana poate sa apara intr-o vedere atributul varsta dar la nivel logic si fizic atributul varsta nu este indicat din cauza permanentei modificari a continutului lui. In acest caz se foloseste la nivel logic un atribut data_nasterii care prin scadere din data curenta permite aflarea varstei persoanei respective. Alte informatii ce pot sa apara in vederi si care de obicei nu sunt prevazute in schemele conceptuale privesc numarul de elemente dintr-o multime, media valorilor unei multimi de elemente numerice si alte informatii asemantoare. Punctul de vedere al implementatorului bazei de date (care de cele mai multe ori coincide cu administratorul bazei de date) care privete baza de date ca o colecie de fiiere memorate pe diferite medii externe de memorarea constituie nivelul fizic al bazei de date, fiind de fapt singurul nivel existent efectiv. Descrierile la nivel fizic sunt facute prin scheme interne sau scheme fizice. Catalogul sistemului conine date, cum ar fi: denumiri1e, tipurile i dimensiunile articolelor de tip date; denumiri1e relaiilor; constrangerile de integritate asupra datelor; numele uti1izatori1or autorizati care au acces la date; indexurile i structurile de stocare utilizate, cum ar fi functiile hash, fiierele inversate sau arborii B+. Procedurile Proceduri1e se refer la instruciunile i regulile care guverneaz proiectarea i uti1izarea bazei de date. Uti1izatorii sistemului i personalul care administreaz baza de date au nevoie de proceduri documentate despre modul de folosire i de funcionare a sistemului. Acestea ar putea consta din instruciuni privind: deschiderea unei sesiuni de lucru in sistemul SGBD; utilizarea unei anumite facilitati SGBD sau a unui program aplicaie; pomirea i oprirea sistemului SGBD; efectuarea de copii de sigurana ale bazei de date; tratarea defeciunilor de hardware sau software. Aceasta ar putea include proceduri de identificare a componentelor defecte, de reparare a acestora modificarea structurii unui tabel, reorganizarea bazei de date pe mai multe suporturi de memorare Persoanele n acest paragraf, vom examina a cincea componenta a mediului SGBD, enumerat n paragraful precedent: persoanele. Se pot identifica patru tipuri distincte de persoane irnplicate in mediul SGBD: administratorii de date i baze de date, proiectanii de baze de date, programatorii de aplicaii i utilizatorii finali. Administratorii de date i baze de date sunt responsabili de gestionarea resurselor de date adic cu planificarea, dezvoltarea i ntreinerea 20

standardelor, procedurilor bazei de date i de proiectarea conceptual a acesteia. Administratorul bazei de date consulti ndrum pe managerii companiei, asigurandu-se ca direcia de dezvoltare a bazei de date este corect, susine n esena obiectivele generale ale companiei. Administratorul de baze de date este responsabil de realizarea fizic a bazei de date, care include proiectarea i implementarea acesteia, securitatea i controlul integritii, ntreinerea sistemului operaional i asigurarea perfomanelor satisfctoare pentru aplicaii i utilizatori. Rolul administratorului bazei de date este de orientare mai tehnic decat cel al administratorului de date, necesitnd cunotinte detaliate despre sistemul SGBD avut in vedere i despre mediul acestuia. Proiectantii de baze de date desfoar o activitate deosebit de important n momentul n care se creeaz o baz de date. n proiectele mari de baze de date, se pot deosebi dou tipuri de proiectanti: de baze de date logice i de baze de date fizice. Proiectantul de baze de date logice se ocup de identificarea datelor (adic a entitilor i atributelor), de relaiile dintre acestea i de constrangerile asupra datelor care vor fi stocate n baza de date. Proiectantul de baze de date logice trebuie s posede o cunoatere amnuniti complet a datelor organizaiei i a regulilor comerciale ale acesteia. Regulile comerciale descriu principalele caracteristici ale datelor, aa cum sunt vzute acestea de ctre organizaia respectiv. Iat cateva exemple de reguli comerciale: . un membru al personalului nu se poate ocupa de vnzarea sau nchirierea a mai mult de zece proprietai simultan; un membru al personalului nu poate trata vnzarea sau nchirierea propriei proprieti; un avocat nu poate reprezenta att cumprtorul, ct i vnztorul unei proprietai. Pentru a fi eficient, proiectantul de baze de date trebuie s implice toi presupuii utilizatori ai acesteia n realizarea modelului de date, iar aceasta implicare trebuie sa inceap cat mai devreme posibil n cadrul procesului. Activitatea proiectantului de baze de date logice se poate diviza n doua etape: proiectarea conceptual a bazei de date, care este independent de detalille privind implementarea, cum ar fi sistemul SGBD avut in vedere, programele de aplicaie, limbajele de programare sau alte consideraii fizice; proiectarea logic a bazei de date, care este indreptat spre un anumit model de date, cum ar fi cel relaional, n reea, ierarhic sau orientat spre obiecte. Proiectantul de baze de date fizice preia modelul logic de date i stabilete cum va fi realizat fizic. Aceasta implica: : transpunerea modelului logic de date intr-un set de tabele i constrngeri privind integritatea; selectarea de structuri de stocare i de metode de acces specifice, astfel inct s se realizeze performane bune ale datelor n activitile privind baza de date; msurile privind proiectarea i securitatea necesare datelor. Multe etape din proiectarea fizica a bazei de date depind in mare masura de sistemul SGBD avut n vedere; in plus, ar putea exista mai multe modalitati de implementare a unui mecanism. n consecint, proiectantul de baze de date fizice trebuie s fie complet contient de funcionalitatea sistemului SGBD avut n vedere i trebuie s cunoasc avantajele i dezavantajele fiecrei alternative, corespunzatoare unei anumite implementri. Proiectantul de baze de date fizice trebuie sa fie capabil de a alege o strategie de stocare adecvat, care sin cont de modul de utilizare. n timp ce proiectarea conceptuali logic a bazelor de date este preocupat de ce anume, proiectarea fizica a acestora are in vedere cum anume. Cele doua tipuri de proiectare necesita abilitati diferite, care se gasesc, de regul, la persoane diferite. O data realizata baza de date, trebuie implementate programele aplicatie ce confera functionalitatea ceruta de utilizatorii finali. Aceasta este responsabilitatea programatorilor de aplicatii. De regula, acetia se ghideaz dup o documentaie realizat de ctre analitii de sistem. Fiecare program conine instruciuni, care i cer sistemului SGBD s efectueze o operatie oarecare n baza de date. Aceasta poate consta n extragerea, inserarea, reactualizarea 21

i tergerea de date. Programele pot fi scrise ntr-un limbaj de programare de nivel nalt Utilizatorii finali reprezint pentru baza de date "clientii" pentru care aceasta a fost proiectat, implementati este intretinut pentru a le satisface acestora necesitile informaionale. Utilizatorii finali pot fi clasificati, dup modul n care folosesc sistemul, n: utilizatorii simpli, care de obicei nu sunt contienti de sistemul SGBD. Ei acceseaz baza de date prin intermediul unor programe aplicatie scrise special, care incearc s fac operaiile ct mai simple. Ei invoca operaii din baza de date prin comenzi simple sau prin alegerea unor opiuni din meniu. Aceasta inseamna ca nu au nevoie sa tie nimic despre baza de date sau despre sistemul SGBD. De exemplu, vnzatorul care efectueaza verificarile in supermarket-ul local utilizeaz un cititor de coduri de bare pentru a afla preul unui articol. Totui, exist un program aplicaie care citete codul de bare, cauta preul articolului respectiv n baza de date, modifica campul care conine numarul de astfel de articole aflate n stoc i afieaz preul la cas; utilizatorii sofisticati. La celalalt capat al spectrului, utilizatorul final sofisticat este familiarizat cu structura bazei. de date i facilitatile oferite de sistemul SGBD. Utilizatorii finali sofisticati pot utiliza un limbaj de interogare de nivel nalt, cum ar fi SQL, pentru a efectua operatiile necesare. S-ar putea chiar ca unii dintre acetia sa scrie programe aplicatie pentru propriul uz. Acesta este i scopul acestei cri, de a v familiariza cu crearea unor baze de date n SGBD-urile: Visual FoxPro i Access, de a folosi limbajul de interogare SQL, de a crea propriile aplicaii folosind interfeele grafice ale acestor medii software.

1.4 MODELE ALE SGBD-URILOR


Modul de structurare al datelor la fiecare nivel, funcie de modelul logic folosit, face ca bazele de date s fie mprite n cinci modele semnificative: baze de date ierarhice; baze de date de tip reea; baze de date relaionale; baze de date obiectuale; baze de date distribuite

1.4.1 Modelul ierarhic al bazelor de date


Sistemele de baze de date denumite DBMS (Data Base Management Systems) bazate pe modelul ierarhic au fost cele mai vechi sisteme de administrare a bazelor de date care au aprut pe pia, n jurul anului 1968. Ele au aprut sub denumirea de IMS-Information Management System i au fost produse de firma IBM. Modelul ierarhic de date reprezint structura unei baze de date ca o colecie de arbori, n care fiecare nod al arborelui reprezint articole de acelai tip. Articolul este unitatea de baz n care sunt memorate informaiile ntr-o baz de date. Un nod poate fi fie un nod radcin, fr tat, fie un nod fiu cu un singur tat. Restricia principal const n faptul c fiecare nod fiu poate avea doar un singur nod tat. n figura 1.1 se arat un astfel de model ierarhic n care pe fecare mas de birou pot exista mai multe dosare i mai multe documente. Datorit restriciilor modelului ierarhic fiecare dosar poate aparine numai unei anumite mese de birou. Similar fiecare document se poate afla ntr-un dosar i numai n unul. Modelul ierarhic prezint dou restricii importante: 1 Fiecare tip articol fiu poate avea numai un tip de articol tat; de exemplu documentele 22

nu pot fi elemente i pentru mese de birou i pentru dosare. 2 Exist suport numai pentru relaii unul-la- mai multe. Aceasta nseamn c acelai document nu se poate afla n mai multe dosare.

1.4.2 Modelul n reea al bazelor de date


Modelul n reea este mai general dect modelul ierarhic. Singurul tip de relaie suportat de model este unul-la-mai-multe, adic exist un fiier numit tat i mai multe fiiere care deriv din acesta numite fiiere fiu. Cu toate c exist un singur tip de relaie, exist posibilitatea ca acelai tip de articol s fie membru (fiu) al mai multor tipuri de articole proprietar (tat). n figura 1.2 se prezint o schem pentru modelul n reea. Aici, dosarele sunt membrii nu numai pentru mesele de birou, dar i pentru sertare i dulapuri. Modelul n reea este mai evoluat dect precedentul pentru c ofer diverse ci de cutare ale unui articol. Cele dou modele de cutare sunt modele n care bazele de date sunt explorate. Explorarea se bazeaz mai mult sau mai puin pe modul n care datele sunt organizate. Acest lucru cauzeaz

Fig. 3 Exemplu de model de baz de date n reea

mari probleme n special n cazul n care datele sunt reorganizate, caz n care aplicaiile trebuie 103 rescrise. Deci, cele dou modele nu ofer suport pentru independena datelor. Pentru a rezolva 23

acest inconvenient s-a cutat elaborarea unui nou model pentru bazele de date.

1.4.3 Modelul relaional al bazelor de date


Modelul relaional a fost elaborat la nceputul anilor 70 de ctre matematicianul american Dr. E.F.Codd. Bazele de date relaionale sunt cele mai rspndite n acest moment pe piaa bazelor de date. Bazele de date relaionale sunt declarative, adic ele elimin sarcina declarrii modului de accesare a datelor, aplicaiile concentrndu-se asupra a ceea ce au nevoie din bazele de date. n capitolele urmtoare se va reveni n detaliu asupra bazelor de date relaionale. La momentul actual, bazele de date relaionale se apropie tot mai mult de aspectul obiectual, n special din punct de vedere al gestionrii informaiei din baza de date relaional. Exist o interptrundere ntre relaional i obiectual n sensul c memorarea datelor se realizeaz relaional, iar gestiunea informaiei se realizeaz obiectual. Limbajele de programarea pentru gestionarea informaiei sunt limbaje de programare orientate obiect. Aceste baze de date se numesc baze de date relaional obiectuale sau obiectual relaionale i sunt printre cele mai rspndite n lume n acest moment.

1.4.4 Modelul obiectual


Modelul obiectual a aprut la mijlocul anilor 80 ca o necesitate de a apropia bazele de date de realitatea nconjurtoare. Modelul obiectual al bazelor de date se interfereaz des cu bazele de date relaionale. Bazele de date orientate obiect sunt formate, aa cum le spune i numele, din obiecte. Un obiect se caracterizeaz prin modul n care este definit i prin aciunile pe care le produce. Acesta are o parte de interfa, n care

Fig. 4

se citesc mesajele pe care le poate interpreta i o parte ascuns, la care utilizatorul nu are acces i n care sunt implementate diferitele rutine specifice aciunilor sale. Bazele de date orientate obiect, trebuie s asigure legtura ntre diferitele obiecte, s foloseasc proprietile obiectelor din teoria obiectual, s asigure reguli de integritate pentru existena bazei de date. Iniial se considera c acest model de baze de date va nlocui modelul relaional. Practica a infirmat acest lucru, astfel c bazele de date relaionale nu numai c nu au disprut dar putem vorbi la momentul actual despre bazele de date relaional obiectuale sau obiectual relaionale, Mai mult dect att, relaionalul poate fi interpretat ca i obiectual, ntr-o serie de medii de programare

1.4.5 Modelul distribuit al bazelor de date


La mijlocul anilor 90, dezvoltarea reelelor de calculatoare a determinat abordarea descentralizat a lucrului cu bazele de date. Aceast tratare descentralizat, constitue o reflectare a structurii organizatorice a marilor companii, unde fiecare unitate i ntreine propriile date operaionale. 24

O baz de date distribuit este format dintr-o colecie de date partajate i intercorelate logic precum i descrierea acestora, distribuite din punct de vedere fizic ntr-o reea de calculatoare

Fig. 5 Sistem de gestiune distribuit a bazei de date

Un SGBDD, este format dintr-o singur baz de date logic divizat ntr-un numr de pri

Fig. 6 Prelucrarea distribuit

componente denumite fragmente (fig. 1.5). Fiecare fragment, este stocat pe unul sau mai multe calculatoare sub controlul unui SGBD separat. Software-ul existent pe fiecare din aceste pri componente, poate prelucra independent cererile utilizatorilor care cer acces la datele locale i de asemenea este capabil s prelucreze datele existente pe alte calculatoare. Una dintre caracteristicile importante ale unui SGBDD const n transparena fa de utilizator. Aceasta face ca sistemul distribuit s apar pentru utilizator ca un sistem centralizat. Partea esenial n definirea bazei de date distribuite const n faptul c, ea este format din date, care sunt distribuite fizic n reea. Topologia prelucrrii distribuite este prezentat n figura 1.6.

1.5 PROIECTAREA BAZELOR DE DATE RELAIONALE


Proiectarea unei baze pe date poate fi extrem de complex. Pentru a realiza un sistem care s satisfac necesitaile informaionale ale organizaiei, este necesar o abordare difent de cea a sistemelor bazate pe fiiere, unde totul era dictat de nevoile aplicative a unor departamente individuale. Pentru ca tratarea prin baze de date s aib succes, compania trebuie s se gndeasc mai intai la date i apoi la aplicaie. Aceasta schirnbare a modului de tratare este denumit uneori schimbare de paradigm. Pentru ca sistemul s fie acceptat de ctre utilizatoni finali, activitatea de proiectare a bazei de date este foarte important. O baza de date prost proiectat va genera erori, care ar putea duce la luarea de decizii greite, ceea ce 25

ar putea avea repercusiuni serioase asupra organizaiei. Pe de alt parte, o baz de date bine proiectat produce un sistem care ofer informaii corecte, ceea ce face ca procesul decizional s fie eficient i s se bucure de succes. Proiectarea bazelor de date presupune fixarea structurii bazei de date si a metodelor de prelucrare a datelor spre deosebire de utilizarea bazei de date care priveste mai mult ceeace contine baza de date la un moment dat. Daca baza de date isi schimba frecvent continutul, structura ei ramane nemodificata pe lungi perioade de timp. Prin proiectare se determina un model semantic in care sa se reflecte cat mai fidel lumea reala construit astfel: 1. Se identific o multime de concepte semantice (entitati, tipuri de entitati, proprietati ale entitilor, identificatorii entitilor, relaii ntre entiti i altele) ce dau informaii despre lumea real. 2. Se asociaz obiecte simbolice formale prin care sunt reprezentate conceptele semantice. 3. Se definesc reguli de integritate formale ce se aplica obiectelor simbolice. 4. Se definete o mulime de operatori formali ce pot sa transforme obiectele formale. In proiectarea bazelor de date se ine seama de independenta datelor pe diferite nivele. De exemplu reprezentarea fizic a datelor se poate schimba n timp pentru a obine performane superioare din punct de vedere al timpului de rspuns i al spaiului ocupat far ca aceasta s afecteze modul de reprezentare a datelor n schema conceptuala. Acesta independent se numete independena fizic a datelor. De asemenea ntre vederi i schema conceptual apare o independen numit independena logic a datelor. n timpul existenei unei baze de date pot apare modificri n schema conceptual prin adaugarea unor noi entitai sau prin adaugarea de noi atribute unor entiti existente. Vederile care nu fac referiri la cmpurile modificate rmn neschimbate fiind rescrise numai aplicaiile pentru care s-au modificat unele atribute sau pot fi construite vederi noi. Asupra modului cum se proiecteaz o baz de date relaional exist o ntreag teorie. Aceast teorie ajut la gruparea tuplelor pe domenii sau la alegerea atributele cele mai bune. Exist dou nivele la care se poate discuta oportunitatea schemelor relaionale: 1. nivelul logic care se refer la modul n care un utilizator interpreteaz o schem relaionali nelege atributele sale. O relaie bun ajut utilizatorul s neleag sensul fiecrui atribut, rolul datelor din tuplele relaiei i deci s poat formula interogri corecte. 2. nivelul de manipulare sau manevrare al datelor, care se refer la modul n care tuplele din relaia de baz sunt stocate i actualizate. Acest nivel se aplic doar relaiilor de baz adic fiierelor, spre deosebire de primul nivel care se poate aplica i vederilor (View). Vederile sunt construcii asemntoare fiierelor care exist doar atta timp ct sunt active. Liniile de ghidare n proiectarea bazelor de date relaionale sunt n numr de patru i anume: 1. semantica atributelor. Fiecare atribut al unei relaii are un nume deci un anumit neles. Acest neles sau semantic, specific cum se pot interpreta valorile atributelor memorate n tuple sau cum valorile atributelor sunt legate unele de altele Proiectarea relaiei s se fac astfel nct s fie uor de explicat nelesul acesteia; 2. reducerea valorilor redundante n tuple. Un scop care trebuie atins la proiectarea unei relaii este minimizarea spaiului pe care-l ocup aceasta. Gruparea atributelor ntr-o relaie are un rol determinant n spaiul ocupat. n general, relaiile care sunt formate din atribute ce se refer la o singur entitate ocup un spaiu mult mai mic dect acelea care se refer la mai multe entiti. O relaie se proiecteaz astfel nct s nu apar greeli de inserare, tergere i modificare; 3. reducerea valorilor NULL n tuple. n unele proiecte de relaii se pot grupa o mulime de atribute ntr-o MARE relaie. Dac mai multe astfel de atribute nu se aplic pe toate 26

tuplele din relaie, vor apare o mulime de NULL-uri n relaie. Aceasta poate nsemna pierderea de spaiu la nivel de stocare i ridic probleme n nelegerea atributelor i a operaiilor la nivel logic. O alt problem care poate apare este aceea a contabilizrii valorii NULL n cazul folosirii funciilor agregat, de exemplu COUNT (contorizeaz tuplele din relaie n unele implementri SGBD) sau SUM (calculeaz suma valorilor din domeniul unui atribut). Valoarea NULL are mai multe nelesuri i anume: atributul nu se aplic la aceast tupl; valoarea atributului pentru aceast tupl este necunoscut; valoarea este cunoscut dar este absent, aceasta nsemnnd c nu a fost nc nregistrat. Avnd aceeai reprezentare pentru null nelesul su este compromis putnd fi interpretat n cele trei moduri prezentate. S se evite pe ct posibil plasarea atributelor care au valoarea NULL ntr-o relaie; 4. respingerea tupelor eronate Proiectarea relaiilor trebuie s se fac astfel nct ele s poat fi legate prin condiii de egalitate ale atributelor cheie primar sau cheie extern, cu alte relaii ntr-un fel care s garanteze c nu vor fi generate tuple false sau greite. Proiectarea unei baze de date priveste in primul rand nivelul logic si mai putin cel fizic. Proiectarea se poate face plecnd de la modelul relational care permite o tehnologie de proiectare si apoi se poate transforma rezultatul proiectarii n oricare dintre modele prin adaptrile corespunzatoare. Un model de etapizare a construirii unei baze de date ar putea fi urmatorul: 1. Studiul de fezabilitate const n cercetarea sistemelor operative deja existente, stabilirea unor alternative cu evaluare a costurilor, a avantajelor i dezavantajelor fiecarei alternative n parte; 2. Cercetarea sistemului prin determinarea diferitelor detalii ale sistemului prezent (tipuri de date, dimensiuni, conditii exceptie) folosind metode de interogare, chestionare, exemplificri si observaii directe. 3. Analiza sistemului prin determinarea cauzelor diferitelor evenimente i a adaptarii diferitelor metode, eventualele alternative posibile. 4. Proiectarea sistemului prin determinarea celui mai bun model de reprezentare i prelucrare a datelor, de asigurare a securitaii i integritaii. 5. Dezvoltarea sistemului prin stabilirea detaliilor asociate datelor, a relaiilor dintre ele i a modului de reprezentare fizic. 6. Implementare prin proiectarea, scrierea i testarea programelor, antrenarea utilizatorilor, alctuirea documentaiei, crearea i ncrcarea fiierelor. 7. Revizuire i ntreinere prin probe de lucru ale noului sistem, efectuarea unor eventuale modificri, adaugarea de noi componente i urmrirea procesului de prelucrare a datelor. Un instrument important n proiectarea bazei de date ntr-un SGBD relaional normalizarea bazelor de date relaionale.

1.6 NORMALIZAREA BAZELOR DE DATE RELAIONALE


Forma normal sau normalizarea bazelor de date relaionale este un alt instrument deosebit de important n proiectarea bazelor de date. Normalizarea este un proces prin care se verific dac relaia satisface anumite condiii. n cazul n care nu sunt ndeplinite respectivele condiii relaia se descompune, prin distribuia atributelor n una sau mai multe relaii, mai mici care ndeplinesc condiiile cerute. Unul dintre obiectivele procesului de normalizare este ca relaia s aib o proiectare bun, s nu permit apariia diferitelor anomalii. Formele normale determin proiectantul bazelor de date relaionale s realizeze: schi formal pentru analizarea relaiei, bazat pe cheile ei i o list a dependenelor funcionale ntre atribute; 27

serie de teste ce pot fi fcute pe relaiile individuale asfel nct baza de date poate fi normalizat la orice grad. Procesul de normalizare nu se desfoar independent de celelalte cerine asupra proiectrii bazelor de date prezentate n paragrafele anterioare. Divizarea unei relaii n mai multe relaii funcie de dependenele funcionale ale atributelor este influenat de doi factori i anume: 1. unirea fr pierderi sau nonasociativ a dou sau mai multe relaii s garanteze faptul c nu apar tuple eronate; 2. dependenele funcionale care apar n relaia iniial trebuie s se pstreze i n relaiile rezultante prin procesul de normalizare. O supercheie a unei relaii R={A 1 ,A 2 ,..,A n } este o mulime de atribute S R cu proprietatea c n mulimea r a tuplelor nu exist dou tuple t 1 i t2astfel nct t1[S] = t2[S]. Diferena dintre cheie i supercheie const n faptul c, o cheie are un singur atribut pe cnd o supercheie are mai multe atribute. O relaie are n general o schem primar, n care sunt definite cheia primari cheile secundare. Un atribut se numete atribut principal dac face parte dintr-o cheie a relaiei R. Intuitiv normalizarea const n faptul c fiecare relaie trebuie s conin date cu un anumit sens (entitate). Dac relaia conine date referitoare la mai multe entiti atunci ea trebuie spart n mai multe relaii. Relaiile pot fi clasificate n funcie de anomaliile la care sunt vulnerabile. Clasele de relaii i tehnicile folosite pentru prevenirea anomaliilor se numesc forme normale Prima form normal se identific cu definiia relaiei. Ea a fost definit pentru a nu recunoate atribute multinivel, atribute compuse i combinaiile lor. Definiia primei forme normale este: Domeniile atributelor trebuie s includ doar valori atomice, indivizibile iar valorile tuplelor trebuie s fie distincte pe tot domeniul. Nu sunt permise dou tuple cu aceeai valoare Prima form normal nu recunoate relaii n relaii, singura valoare permis pentru un atribut fiind valoarea atomic sau indivizibil. Atributul poate fi privit din dou puncte de vedere: domeniul poate fi format din valori atomice dar unele tuple conin mulimi ale acestora; domeniul atributelor nu este atomic. O relaie se gsete n a doua form normal dac cheia primar este o supercheie i oricare atribut noncheie al relaiei depinde funcional de toat cheia. n general n cazul n care cheia primar este format dintr-un singur atribut, relaia se gsete n a doua form normal. O relaie se gsete n cea de a treia form normal dac se gsete n a doua form normali relaia nu prezint dependene funcionale tranzitive. O alt definiie pentru a treia form normal este urmtoarea: O relaie se gsete n a treia form normal, dac fiecare atribut neprincipal a lui R este: dependent funcional de fiecare cheie din relaie; nu este dependent tranzitiv de fiecare cheie din relatia considerat. n afara acestor trei forme normale mai exist forma normal Boyce-Codd, care este o form mai strict a celei de a treia forme normale. O relaie R se afl n forma normal Boyce-Codd, dac ori de cte ori o dependen funcional X>A exist n R, atunci X este supercheie a lui R. Majoritatea relaiilor care sunt n a treia form normal sunt i n forma normal Boyce-Codd. Doar dac n relaia R exist dependena funcional X->A, cu X care nu este supercheie i A atribut principal, atunci R este n a treia form normali nu este n forma normal Boyce-Codd. Relaiile care se gsesc n forma normal Boyce-Codd sunt cele mai performante, adic cele mai bine proiectate. n afar de formele normale prezentate mai exist forma nomal definit de Fagin care se mai numete i forma normal domeniu-cheie: 28

O relaie se gsete n forma normal domeniu-cheie, dac fiecare constrngere impus relaiei de proiectant va deveni o consecin logic a modului n care s-au definit cheile i domeniile relaiei, deci condiiile iniiale devin consecine ale definirii relaiei

1.7 Avantajele i dezavantajele sistemelor de gestionare a bazelor de date


Sistemul de gestionare a bazelor de date beneficiaza de avantaje semnificative. Datorit acestui fapt la momentul actual folosirea SGBD-urilor este unanim. Avantaje Controlul redundantei datelor se refer la faptul c n tratarea prin baze de date se incearc eliminarea redundantei prin integrarea fiierelor, astfel incat sa nu se stocheze mai multe copii ale acelorai date. Totui, in tratarea prin baze de date nu se elirnina in intregime redundana, ci se controleaza volumul inerent at acesteia n baza de date. Uneori, pentru modelarea relatilor, este necesar dublarea unor articole de date cheie. Alteori, pentru imbunatirea performantelor, este de dorit sa se dubleze unele articole de date. Controlul redundanei este realizat prin mecanisme speciale ale SGBD-ului care definesc integritatea referenial a bazei de date. Coerenta datelor Prin eliminarea sau controlul redundanei se reduce riscul apariiei incoerentei datelor Dac un articol de date este stocat o singura dat n baza de date, orice reactualizare a valorii sale trebuie efectuat tot o singura dat, iar nou valoare este disponibila imediat, pentru toti utilizatorii. Dac un articol de date este stocat de mai multe ori, iar sistemul este "contient" de aceasta, el poate garanta ca toate copiile articolului respectiv sunt meninute coerente. Din pcate, multe dintre sistemele SGBD actuale nu garanteaza automat acest tip de coerenta. Partajarea datelor De obicei, fiierele sumt deinute de catre persoanele sau departamentele care le utilizeaz. Pe de alta parte, baaza de date apartine intregii organizatii i poate fi partajata de ctre toi utilizatorii autorizai. n acest mod, mai multi utilizatori partajeaza o cantitate mai mare de date. Mai departe, se pot construi noi aplicaii ale datelor existente n baza de date, n timp ce datele adiionale care nu sunt stocate n mod curent se pot aduga far a fi necesar definirea repetat a tuturor cerinelor referitoare la acestea. Noile aplicaii se pot baza i pe funciile oferite de catre sistemul SGBD, cum ar fi definirea i manipularea datelor i controlul concurenei i refacerii, n loc de a fi necesar s le furnizeze ele nsele. Integritatea mai bun a datelor Integritatea bazei de date se refera la validitatea i coerena datelor stocate. De obicei, integritatea este exprimat n termeni de constrngeri, care reprezint reguli de coeren., pe care baza de date nu are voie s le ncalce. Constrngerile se pot aplica articolelor de date dintr-o singur nregistrare sau relaiilor dintre nregistrri

29

Securitatea crescuta Securitatea bazei de date const n protecia acesteia fata de utilizatorii neautorizati. Fr msuri de securitate adecvate, integrarea face ca datele sa fie mai vulnerabile decat in sistemele bazate pe fiiere. Totui, integrarea permite administratorului de baze de date s defineasc securitatea acesteia. Aceasta se poate realiza prin atribuirea unor nume de utilizatori i parole, care sa permita identificarea persoanelor autorizate s utilizeze baza de date. Accesul la date permis unui utilizator autorizat poate fi limitat de tipul operatiei efectuate (extragere, inserare, reactualizare, tergere). De exemplu, administratorul DBA are acces la toate datele din baza de date, un manager de filial ar putea avea acces la toate datele legate de filiala respectiv, n timp ce un asistent de la vnzri ar putea avea acces la toate datele referitoare la proprietati, dar nu i la datele "sensibile", cum ar fi detalille despre salariile angajatilor. Productivitatea crescut Aa cum s-a menionat anterior, sistemul SGBD furnizeaz multe dintre funciile standard, pe care ar trebui s le scrie n mod normal programatorul, n cazul unei aplicaii bazate pe fiiere. La nivel fundamental, sistemul SGBD ofer toate rutinele de nivel jos pentru manevrarea fiierelor, tipice n programele aplicaie. Furnizarea acestor funcii permite programatorului s se concentreze mai mult asupra funcionalitatii specifice cerute de ctre utilizatori, fr a se preocupa de detaliile de nivel jos, privind implementarea. Multe sisteme SGBD furnizeaza i un mediu din a patra generatie sau a cincea, care const n instrumente de simplificare a dezvoltarii de aplicaii n domeniul bazelor de date. Aceasta are ca rezultat o productivitate crescuta a programatorului i un timp redus de programare (impreuna cu reducerea corespunzatoare a costurilor). Capacitatea de intreinere imbuntit prin independena de date n sistemele bazate pe fiiere, descrierile datelor i logicii de accesare a lor sunt incorporate n fiecare program aplicaie, ceea ce face ca acestea sa depind de date. O modificare n structura datelor de exemplu, atribuirea a 41 de caractere in loc de 40 pentru adresa sau schimbarea modului de stocare a datelor pe disc poate necesita modificari substaniale n programele afectate de schimbare. Prin contrast, intr-un sistem SGBD descrierile datelor sunt separate de aplicatii, ceea ce face ca acestea sa fie imune la modificarile din descrierea datelor. Concurena imbuntita n unele sisteme bazate pe fiiere, dac doi sau mai muli utilizatori au permisiunea de a accesa simultan acelai fiier, se poate intmpla ca cele doua accesari sa interfereze, ceea ce are ca rezultat pierderea de informaii sau chiar alterarea integritatii. n multe sisteme SGBD se administreaz accesul concurent la baza de date i se garanteaza ca nu pot aparea astfel de probleme. mbuntirea serviciilor de salvare a informaiilor din baza de date i de refacere a acestora Multe sisteme bazate pe fiiere plaseaz pe umerii utilizatorului responsabilitatea de a 30

lua msuri de protecie a datelor, n cazul unor defeciuni ale sistemului de calculatoare sau ale programului aplicatie. Aceasta ar putea presupune realizarea unei copii de siguran a datelor n fiecare zi. n cazul unei defeciuni n decursul zilei urmtoare, se preia copia de siguran, iar munca efectuat n acest interval de timp trebuie reintrodus. Prin contrast, sistemele SGBD moderne prezint faciliti de minimizare a pierderilor de prelucrri ca urmare a unei defeciuni.

1.8. Baze de date obiectuale


La sfritul anilor 80 i nceputul anilor 90, complexitatea crescnd a informaiilor a fcut ca o serie de specialiti n baze de date s gndeasc un nou model mai apropiat de noile cerine, reorganiznd cunotiinele existente. Acest efort de reorganizare a condus la elaborarea unor tehnologii despre bazele de date bazate pe concepte orientate obiect. Fenomenul orientrii spre obiecte este un lucru vechi. Filozofii antici Platon i Aristotel i cei moderni, Kant, au ncercat explicarea sensului existenei i caracteristicile eseniale ale obiectelor. Un obiect modeleaz o entitate din lumea real sau imaginar. Astele tot ce putem gndi, vedea, atinge sau clasifica ntrun anume mod reprezint obiecte Programarea este un proces complex care implic tiin, imaginaie i tehnic de calcul. Datorit dificultilor pe care le ridic acest proces s-a simit tot mai acut necesitatea unei sistematizri a procedeelor folosite n elaborarea programelor. Tendina curent de reingeneering i sistemele client/server au determinat n msur tot mai mare folosirea paradigmei orientat obiect n vederea gsirii unui instrument de dezvoltare al aplicaiilor Definiia orientrii obiect este urmtoarea: Obiectele software constitue blocurile structurale ale unei noi i puternice viziuni asupra procesrii informaiei. Ele sunt utilizate pentru a referi o structur, resurs sau proces mpreun cu procedurile de acces: procesoare, baze de date, interfee utilizator.
O mulime de principii de proiectare i dezvoltare bazate pe conceptul de structur autonom. Fiecare structur autonom reprezint o entitate a lumii reale care are abilitatea de a interaciona cu ea nsi sau cu alte obiecte

Caracteristicile importante ale unui obiect sunt: Starea sa; Comportamentul su; Identitatea sa. Starea obiectului sau memoria sa reprezint mulimea datelor care conin informaii despre acesta. Identitatea obiectului este un cod care individualizeaz unic obiectul. Comportamentul obiectului este definit de modul n care acesta interacioneaz cu alte obiecte, precum i de modul n care reacioneaz la diveri factori externi. Un sistem orientat obiect trebuie s ndeplineasc o serie de caracteristici. Aceste caracteristici pot fi mprite n trei grupe: Obligatorii, pe care sistemul trebuie s le satisfac n ordine pentru a fi orientat obiect. Acestea sunt complexitatea obiectelor, identitatea obiectelor, ncapsularea, tipuri de clase, motenirea, rescrierea combinat cu construcia ulterioar, extensibilitatea, persistena, managementul memorrii datelor, concurena i facilitile de interogare; Opionale, care pot fi folosite pentru a face sistemul mai bun, dar care nu sunt obligatorii. Acestea sunt motenirea multipl, deducerea, distribuia; 31

Deschise, punctele unde proiectantul poate folosi mai multe opiuni. Acestea sunt: paradigmele programrii, reprezentrile sistem, uniformitatea i tipurile de sistem. n general, problema prin care un anumit sistem este definit orientat obiect, poate face subiectul unor ndelungate dezbateri. Problema poate fi analizat din trei puncte de vedere: Lipsa unui model comun de date; Lipsa unor fundamente formale; Puternic activitate de experimentare. Pentru bazele de date relaionale exist un puternic fundament teoretic emis de ctre Codd. La un moment dat acestea erau cele mai rspndite baze de date. La sfritul anilor 80 i nceputul anilor 90 au aprut primele fundamente referitoare la noile baze de date, cele orientate obiect. La nceputul anilor 90 au cunoscut o puternic fundamentare teoretic, astfel nct se prevedea c sfritul de mileniu va fi n domeniul bazelor de date, obiectual. Practica a artat c acest lucru nu a fost n totalitate adevrat, la momentul actual sistemele relaionalobiectuale fiind cele mai rspndite. Sistemele orientate obiect i gsesc o larg aplicabilitate n sistemele CAD, CASE. n aceste sisteme se vehiculeaz un volum mare de date, acestea sunt n general date complexe, astfel nct sistemul trebuie s se caracterizeze printr-o nalt performan dictat de ctre sistemele interactive. Una dintre lucrrile fundamentale, care definete conceptele orientate obiect, este [4]. Aceast lucrare este prima care definete cerinele necesare unei baze de date, s fie orientat obiect. Manifesto definete treisprezece cerine obligatorii i altele opionale.

1.8.1 Obiecte complexe


Obiectele complexe sunt construite din obiectele simple, aplicnd constructori de obiecte. Obiectele simple sunt obiecte, ca de exemplu: ntregi, iruri de caractere, variabile booleene. Ca i constructori de obiecte se pot considera: tuple, mulimi, liste, tablouri (matrici). Setul minim de constructori pe care-l poate avea un sistem este format din: mulimi, tuple i liste. Tuplele sunt necesare pentru c ele sunt o cale natural de reprezentare a proprietilor unei entiti, listele i matricile sunt importante pentru c ele reprezint obiecte din mediul exterior i sunt folosite n diverse aplicaii tiinifice.

Fig 1 Constructorii de obiecte pot fi ortogonali, adic fiecare constructor poate fi aplicat la un obiect. Constructorii dintr-un model relaional nu sunt ortogonali pentru c ei se aplic numai tuplelor, care la rndul lor se aplic doar la valorile atomice. Obiectele complexe presupun c operatorii potivii trebuie s se repartizeze uniform la toate biectele. Aceasta nseamn c operaiile care se efectueaz asupra unui obiect complex se repartizeaz uniform asupra tuturor componentelor sale. 32

Unele modele de obiecte complexe se bazeaz pe valoare, adic pe faptul c unicitatea unui obiect depinde doar de starea sa, care const n valori elementare ntregi ale variabilelor de instan. Un astfel de model este reprezentat n figura 1. Obiectele complexe pot fi referite cu ajutorul identitii lor, un alt concept fundamental al programrii orientate obiect. Un astfel de sistem este reprezentat n figura 2. Fiecare obiect primete un cod de identificare care l individualizeaz de celelalte obiecte. Codul de identificare poate fi format dintr-un ir de carectere.

Fig 2 1.8.2 Identitatea obiectului


Acest concept, care exist de mult timp n limbajele de programare, este relativ recent n domeniul bazelor de date. Ideea conceptului, const n faptul c, un obiect poate avea o existen independent de valoarea sa. Identitatea obiectului este proprietatea unui obiect care l deosebete de toate celelalte obiecte. Cel mai obinuit tip de identitate de obiect folosit n sisteme de operare, limbaje de programare sau baze de date, const n nume al obiectelor, definite de utilizator. Folosind identitatea obiectelor, acestea pot referi alte obiecte. Datorit acestui fapt, exist dou noiuni echivalente pentru obiect: dou obiecte pot fi identice sau pot fi egale. Testul de identitate verific dac dou obiecte sunt de fapt unul singur, pe cnd testul de egalitate verific dac coninutul a dou obiecte este acelai.
Obiect C1 Obiect C2

Cod 01
Desen d1

Cod 02
Desen d2

Obiect D1 d1 Autor Ion


Tema A1

ObiectD2 d2

Autor Ion
Tema A1

Fig 3 Considerm obiectele C1 i C2 din clasa Cuite i obiectele D1 i D2 din clasa Desene, figura 3. Din figur se observ c obiectele D1 cu adresa d1 i D2 cu adresa d2 reprezint acelai obiect, avnd acelai coninut. Se poate spune c cele dou obiecte D1 i D2 sunt egale. Pe de alt parte, avnd adrese diferite d1 i d2, afirmaia C1.Desen = = C2.Desen este fals, dar afirmaia C1.Desen=C2.Desen este adevrat. Aceasta are dou implicaii asupra obiectelor: obiect partajat i obiect actualizat. Modelul obiect partajat presupune c dou obiecte fac referin la aceeai component. Obiect actualizat presupune modificri asupra tuturor obiectelor care partajeaz o anumit component. Identitatea bazat pe model este o component a limbajelor de programare, n sensul n care fiecare obiect are o identitate i poate fi actualizat (updated).

33

O alt modalitate de identificare a obiectelor este folosirea unei chei unice sau a unei chei de identificare. Acest mecanism este folosit frecvent n sisteme de administrare a bazelor de date. La utilizarea cheilor de identificare pentru identificarea obiectelor apar trei probleme principale: modificarea cheilor de identificare nu se poate efectua n procesul de administrare a unei baze de date; neuniformitatea, const n faptul c, cheile de identificare se adreseaz tipurilor diferite de date, astfel ele pot fi iruri de caractere, numere ntregi etc. Un alt lucru care poate aprea este ca atributele folosite drept chei de identificare s se schimbe; legturi nenaturale, constau n faptul c, legturile fcute dup cheile de identificare sunt folosite la cutri, n loc s se gseasc metode de cutare mai simple i mai directe. n general, fiecare obiect este o instan a unei clase i fiecare obiect are o stare care este valoarea variabilelor sale de instan. Totodat fiecare obiect are o identitate care este stabilit intern i care este diferit de clasa sau de starea sa. Identitatea obiectului este generat, cnd se creaz obiectul i ea este permanent, pe cnd starea sa, se poate modifica n timp. Sistemele orientate pe obiecte, care asigur suport pentru identitatea intern permit, de asemenea, obiectului s sufere modificri structurale (ceea ce nseamn modificarea clasei), fr a-i schimba identitatea. Fr identitate sau alte mijloace de referire ale obiectelor independente de starea lor, este imposibil ca acelai obiect s fie valoarea variabilei de instan a mai mult de un obiect.

1.8.3 ncapsularea
Ideea de ncapsulare vine din informatic i face referin la tipurile de date abstracte, ca de exemplu stiva, asupra creia se pot face operaii de iniializare, introducere, scoatere sau poziionare. Din acest punct de vedere, un obiect are dou pri distincte: o parte de implementare i o parte de interfa. Partea de interfa este partea vizibil a obiectului i ea specific mulimea de operaii care pot fi efectuate asupra obiectului. Partea de implementare este format din partea de date i partea procedural.

Partea de date reprezint starea obiectului iar partea procedural descrie implementarea fiecrei operaii. ntr-un sistem care admite noiunea de ncapsulare, un obiect al bazei de date, identificat printr-un nume, se caracterizeaz prin operaiile aplicate asupra sa i mai puin prin proprietile sale fizice. Cu alte cuvinte, obiectele bazei de date care permit ncapsularea conin att date ct i proceduri. Operaiile care pot fi efectuate asupra obiectului sunt vizibile, pe cnd datele i procedurile sunt ascunse n raport cu alte obiecte.

Fig

1.8.4 Tipuri i clase


Sistemele orientate obiect pot fi mprite n dou mari categorii: Cele care suport noiunea de tip: C++, Simula, Trllis/Owl, O2; Cele care suport noiunea de clas: Smalltalk, Gemstone, Vision, Orion etc; 34

ntr-un sistem orientat obiect, tipul rezum trsturile comune a unei mulimi de obiecte cu aceleai caracteristici. El corespunde noiunii de dat abstract i este format din dou pri: interfaa i implementarea. Din punct de vedere al limbajelor de programare, tipul definete o structur folosit la controlul corectitudinii unui program n timpul compilrii. Toate valorile variabilelor sunt determinate s se conformeze unui anumit tip. Noiunea de clas este diferit fa de noiunea de tip. Ea conine dou aspecte: lucru i depozit. Aspectul lucru nseamn crearea de obiecte noi care aparin unei clase, iar aspectul depozit nseamn ataarea la o clas a unor obiecte care sunt instane ale clasei. Utilizatorul poate manipula depozitul aplicnd operaii la toate elementele clasei. Clasele nu sunt folosite pentru corecia programelor, dar pot fi folosite pentru crearea i manipularea de obiecte. Noiunea de clas apare mult mai frecvent n sistemele actuale de gestiune a bazelor de date orientate obiect. O clas este o construcie de limbaj folosit cel mai adesea la definirea tipurilor de date abstracte n limbajele de programare orientate pe obiecte. O clas incorporeaz att definiia structurii ct i operaiile tipului de date abstracte. Elementele care aparin coleciei de obiecte descrise de o clas sunt denumite instane ale clasei. O definiie minimal de clas cuprinde urmtoarele: Numele clasei; Operaiile externe pentru manipularea instanelor clasei. n mod tipic, aceste operaii au un obiect int i un numr de argumente. Operaiile de interfa sunt denumite metode ale clasei; Reprezentarea intern, care capteaz valorile diverselor stri ale instanelor clasei, n variabile de instan. O definiie de clas trebuie s includ i codul care implementeaz operatorii de interfa ai clasei, ca i descrierile reprezentrii interne a obiectelor (strile obiectelor) din acea clas. Valorile variabilelor din reprezentarea intern a instanelor clasei aparin obiectelor. Dei valorile variabilelor din reprezentarea intern difer de la o instan a clasei la alta, toate instanele i partajeaz codurile care implementeaz operatorii de interfa. Acetia au un scop similar cu apelurile de proceduri din limbajele de programare structurate.

1.8.5 Motenirea
Motenirea are dou mari avantaje: Este o unealt puternic de modelare, pentru c ofer o descriere concis i corect a mediului; Ajut n partajarea specificaiilor i implementrilor n aplicaii. n limbajele de programare orientate obiect, motenirea se utilizeaz pentru partajarea operaiilor ntre clase care au aceleai caracteristici comportamentale. n modelele semantice, accentul este pus pe memorarea structurii, iar motenirea se folosete pentru partajarea caracteristicilor fizice ale unei clase. n sistemele de baze de date orientate obiect, fa de motenirea specific limbajelor de programare orientate obiect, trebuie combinate prin descriere i memorare, att caracteristicile structurale, ct i cele comportamentale ale aplicaiei. Aceasta nseamn c, toate operaiile definite pentru o clas sunt valabile n orice subclas a clasei date, iar fiecare instan a unei subclase date este de asemenea instan pentru oricare clas la care aparine subclasa considerat. n [4] se arat c exist patru tipuri de motenire: Motenirea substituit, care se bazeaz pe comportamentul motenirii, nu pe valoarea sa; Motenirea inclus, care corespunde noiunii de clasificare; Motenirea constrns, care este o subclas a motenirii incluse; Motenirea specializat, n cazul n care tipul t este subtip al tipului t. 35

Exist sisteme de baze de date orientate obiect n care este posibil existena mai multor superclase pentru aceeai clas. Aceast caracteristic se numete motenire multipl. Dac anumite superclase definesc o proprietate identic, acest lucru poate determina ambiguitatea motenirii, care trebuie obligatoriu soluionat funcie de sistemul considerat, prin introducerea unei definiii noi a proprietii n subclasa corespunztoare. Specializarea i agregarea claselor sunt alte dou concepte strns legate de conceptul de motenire [11]. O clas care motenete de la o alt clas, caracteristici structurale i comportamentale devine mai special prin adugarea unor noi variabile instan sau metode la nivelul acelei clase (figura 5).

Clase existente

Clase noi Fig 5


Agregarea este un mecanism care permite crearea de noi entiti, pornind de la cele existente. Noile clase create sunt superclase ale celor existente (figura 6).

Clase noi

Fig

Clase existente

1.8.6 Redefinire static, polimorfism i legare dinamic


Cel mai utilizat dintre cele trei concepte, este suprancrcarea sau redefinirea i el apare mai ales n limbajele de programare orientate obiect. Redefinirea este de dou feluri: Redefinire static (overloading), care are loc n faza de compilare; Redefinire dinamic (overriding), care are loc n faza de execuie. Un sistem suport suprancrcarea (overloading) dac este posibil ca, pentru clase diferite, s existe proprieti cu nume identic. Din alt punct de vedere, acest concept permite apelarea operaiilor cu acelai nume, dar cu semnificaii i implementri diferite. Ea include operatorii aritmetici, operaiile de I/O, funciile de creare de obiecte i operatorii de asignare de valori. Un alt concept, asociat ndeaproape cu suprancrcarea, este cel de redefinire dinamic sau polimorfism (overrriding). Prin acest concept, sistemul ataeaz n momentul execuiei i nu n momentul compilrii, selectori de mesaje la metodele pe care le implementeaz. Polimorfismul (overriding) nseamn c sistemul ofer o situaie n care definirea unei operaii ntr-o clas s fie identic cu definirea altei operaii dintr-o subclas a clasei considerate (figura 7).

36

Cutit

vizualizeaza

Cutit monobloc vizualizeaza

Fig 7
ntr-un sistem de baze de date orientate obiect, care permite polimorfismul, o operaie dintr-o subclas poate avea acelai nume cu o operaie a superclasei (sau a mai multora) de care aparine. Operaia din subclas se suprapune pe definiia operaiei din superclas. Consecinele polimorfismului sunt, n parte, adresate conceptului de legare ntrziat (late building) sau legere dinamic. n sistemele de baze de date orientate obiect, comportamentul standard al operaiilor suprapuse, ne arat c, definiia aleas pentru invocare, se sprijin pe clasa instanei asupra creia se aplic operaia. ntr-un sistem care permite legarea ntrziat, cnd o operaie este invocat asupra unui obiect, sistemul caut n clasa obiectului respectiv definiia corespunztoare din momentul apelului, iar dac acea definiie nu exist, va fi cutat n superclasele corespondente, pn cnd este gsit. Acest comportament al sistemelor de baze de date orientate obiect este foarte utilizat n practic i permite unei clase s se specializeze n comportamentul superclaselor. La nivel abstract, conceptul de legare (binding) se refer la conexiunea logic dintre o entitate i o proprietate a acesteia. n cazul programrii orientate obiect, prin legare se nelege corespondena dintre un mesaj transmis unui obiect i rutina efectiv care se execut ca i rspuns la acest mesaj. Legarea metodelor se mparte n dou categorii: Legarea static sau legarea timpurie (early-binding), n care rolul important l are compilatorul i editorul de legturi; Legarea dinamic (late-binding), n care fixarea adresei de apel se realizeaz n momentul rulrii. Compilatorul pregtete doar un tablou cu adrese posibile de apel. n momentul rulrii, funcie de un pointer la o clas de baz i la un obiect de clas derivat, se alege adresa de apel dorit. Marele avantaj al legrii dinamice, fa de legarea static, const n faptul c, ofer un grad minim de flexibilitate. Astfel, ierarhii de clase sunt mai uor de implementat i totodat mai uor de exploatat de la nivelul unui modul client. Dezavantajul legrii dinamice fa de legarea static const n diminuarea performanelor de vitez. Conceptele prezentate pn n acest punct se refer n principal la programarea orientat obiect. Pentru un sistem de baze de date obiectuale [4] consider necesar urmtoarelor concepte: persistena, refacerea, concurena, interogri orientate obiect.

1.8.7 Completitudine computaional, extensibilitatea, persisten


Din punct de vedere al unui limbaj de programare, completitudinea computaional este evident: folosind limbajul DML al unui sistem de baze de date, se poate exprima orice funcie computaional. Din punct de vedere al bazelor de date, aceasta constitue o noutate. Completitudinea computaional poate fi introdus printr-o legtur rezonabil cu limabajele de programare.

37

Un sistem de baze de date are, n general, un sistem predefinit de tipuri. Aceste tipuri pot fi folosite de ctre programatori pentru proiectarea i realizarea aplicaiilor dorite. Extensibilitatea setului de tipuri poate fi neleas n dou sensuri: n definirea noilor tipuri; Nu trebuie fcut distincie ntre tipurile sistem i cele folosite de ctre utilizator. n general, exist o mare diferen ntre tipurile sistem i cele definite de ctre utilizatori, dar din punct de vedere al aplicaiilor acest lucru trebuie s fie invizibil. Peristena este evident, din punct de vedere al bazelor de date i un lucru deosebit, din punct de vedere al limbajelor de programare. Persistena este abilitatea programatorului de a face ca datele aplicaiei s supravieuiasc ct mai mult n urma unui anumit proces, eventual s poat fi folosite i ntr-un alt proces ulterior. Persistena poate fi ortogonal, fiecare obiect independent de tipul su este permis s devin persistent. Datele pot fi temporare i persistente. Datele temporare exist doar pe parcursul unui singur program sau a unei tranzacii. Datele persistente exist n memorie pe parcursul mai multor tranzacii sau programe. Persistena ortogonal se bazeaz pe trei principii fundamentale: Independena de persisten, ceea ce inseamn c persistena unui obiect este independent de modul n care un program manipuleaz un obiect de date tot a cum un fragment de program este exprimat independent de persistena datelor cu care lucreaz; Ortogonalitatea tipurilor de date, adic toate obiectele de date trebuie s posede acelai tip de persisten, nu unele s fie temporare i altele s aib via lung; Persistena tranzitiv este principiul prin care se identific persistena furniznd obiecte de date persistente la nivelul limbajului Persistena poate fi implementat de ctre programator sau poate fi o caracteristic a sistemului bazei de date. Un obiect persistent creat de ctre programator este creat avnd asociat un identificator unic i permanent. n cazul n care persistena este o caracteristic a sistemului, ea poate fi implementat n dou moduri: prin motenire i prin referin [4]. Persistena prin motenire consider persistena ca o proprietate motenit de la o clas rdcin. Aceast clas dispune de metode de creare i distrugere de obiecte persistente. Persistena prin referin asociaz proprietatea de persisten direct obiectului, nu clasei creia i aparine.

1.8.8 Concurena
Concurena este un concept care se refer n general la activiti care se desfoar n acelai timp i care conduc la acelai rezultat ca i cnd ar fi executate serial ntr-o anumit ordine. Conform [3] exist dou categorii de algoritmi care controleaz concurena: algoritmi pesimiti i algoritmi optimiti. Algoritmii pesimiti pleac de la premiza c activitile concurente intr n conflict una cu alta i de aceea obiectele sunt blocate, adic ele devin inaccesibile pentru alte activiti (tranzacii). Ei utilizeaz blocrile pentru a sincroniza execuia activitilor concurente. Algoritmii pesimiti de control al concurenei prezint avantajul c elimin conflictele care pot s apar la nivelul sistemului, dar faptul c blocarea obiectelor este o mare consumatoare de timp, precum i faptul c este necesar existena unui mecanism de deblocare n cazul n care dou sau mai multe activiti se blocheaz una pe alta, afecteaz performanele generale ale sistemului. Algoritmii optimiti se bazeaz pe faptul c dou sau mai multe activiti cer accesul concomitent la acelai obiect. n prealabil nu se face nici un control asupra desf urrii activitilor, doar la sfrit se folosete o procedur de validare care elimin activitile care nu s-au desfurat corect. 38

1.8.9 Recuperarea
Recuperarea datelor este un aspect important pentru bazele de date orientate obiect i se bazeaz pe faptul c trebuie reinut imaginea obiectului, nainte i dup o aciune. n general posibilitile de recuperare se refer att la aspecte soft ct i la aspecte hard.

1.8.10 Faciliti de interogare


Interogarea este folosit pentru a obine mulimi de obiecte in baza de date. Interogrile obiectuale trebuie s fie simple, adic s fie optime. Limbajele care realizeaz interogri obiectuale, trebuie s gseasc druul optim la setul de obiecte dorit.

1.8.11

Versionare

Versionarea este un concept care permite urmrirea schimbrilor ntmplate n starea unui obiect. Versionarea este datorit acestui fapt, un concept foarte puternic, n special n CAD, CAM. La nivelul acestor domenii, obiectele sufer mai multe transfomri, astfel putem vorbi de mai multe versiuni ale aceluiai obiect. Versionarea are drept scop crearea uneltelor necesare pentru manipularea diverselor versiuni ale aceluiai obiect. De obicei, versiunile obiectelor, n general complexe, sunt pstrate n containere numite repository. Pot fi create versiuni seriale sau paralele ale aceluiai obiect (fig 2). Obiect Versiunea1 Versiunea2 Versiunea5

Versiunea3 Fig. 8 Versiunea 1 se consider versiunea iniial, versiunea 5 este versiunea final. Versiunile 2 i 5 sunt versiuni paralele sau alternative ale versiunii 1. Versiunile 1,2,3,4 sunt versiuni seriale sau liniare.

Versiunea4

1.8.12

Securitatea

Securitatea datelor este un concept deosebit de important care se caracterizeaz prin: Protejarea datelor de aciunea unor factori externi (virui, utilizatori nedorii); Asigurarea unor backup-uri n timp real datelor existnte n bazele de date obiectuale. n general bazele de date obiectuale au ca suport hard mai multe calculatoare legate n reea. Implicit exist mai muli utilizatori care au acces la resursele bazei de date. Fiecare utilizator are ns acces la un numr limitat de resurse funcie de drepturile pe care i le asigur administratorul de reea. Legarea bazei de date la reeaua Internet presupune asigurarea unei securiti suplimentare a datelor din punct de vedere al accesului extern i a eventualilor virui care pot apare n reea. Cel de al doilea aspect privind securitatea datelor se materializeaz prin lucrul n oglind cu mai multe servere sau trecerea pe un suport suplimentar al datelor la intervale regulate de timp.

39

1.8.13

Trsturi opionale ale unui OODBS

Aceste trsturi, care vor fi enumerate n continuare, nu sunt ntodeauna necesare pentru a defini un sistem de baze de date orientat obiect. Ele sunt urmtoarele: motenirea multipl, definete capacitatea obiectelor de a avea proprieti de la mai multe clase. Sunt mai multe soluii pentru implementarea acestui concept, pentru a nu intra n conflict cu alte concepte specifice bazelor de date orientate obiect: modelul de verificare, presupune verificarea sistemului n faza de compilare, astfel nct, soluia optim este, ca un sistem compilat, s nu mai genereze erori n faza de execuie; modelul de inferen, presupune c numai modelele de baz declarate n sistem implic existena modelelor temporare; distribuia este o caracteristic ortogonal a unui sistem orientat obiect, din aceast cauz, un sistem baz de date poate fi distribuit sau nu; VII. BIBLIOGRAFIE COMPLEMENTARA 1. Sorin Borza, Proiectarea si Programarea Bazelor de Date, Ed Universitatii Lucian Blaga, Sibiu, 2000, pp 7-28; 2. Sorin Borza, Baze de Date in Sisteme Informatice de Gestiune , Ed Universitatii Lucian Blaga, Sibiu, 2003, pp 27-47; VIII. NTREBRI RECAPITULATIVE 1. Din ce este compus sistemul de fiiere? 2. Ce este data, cmpul, articolul? 3. Care este definiia bazei de date? 4. Ce este dependena structural? 5. Ce este codifcarea datelor i ce tipuri de coduri cunoatei? 6. Ce modele de baze de date cunoatei? Descriei-le. 7. Ce este sistemul de gestiune al bazelor de date? 8. Care sunt componentele unui SGBD? 9. Ce reprezinta procesul de proiectare al unui SGBD? 10. Care sunt regulile de proiectare a unei baze de date relaionale? 11. Ce este normalizarea bazelor de date relaionale; 12. Descrieti modelul ierarhic al bazelor de date. 13. Descrieti modelul in retea al bazelor de date. 14. Descrieti modelul relational al bazelor de date. 15. Descrieti modelul obiectual al bazelor de date 16. Prin ce se caracterizeaza un obiect al unei baze de date; 17. Ce este o clasa de obiecte? 18. Ce este mostenirea? 19. Cum definiti securitatea bazelor de date? 20. Cum definiti polimorfismul si redefinirea statica? 21. Cum definiti concurenta si versionarea? VIII. APLICATIA PENTRU ACASA. INTREBRI TIP GRIL 1. Modelul ierarhic al bazelor de date se caracterizeaz prin: A) Un nod fiu are un singur nod printe; B) Se prezint sub forma unei structuri ierarhice; 40

C) Relaiile de tip Many to Many sunt greu de implementat; D) Toate rspunsurile sunt corecte; E) Rspunsurile corecte sunt A i B. 2. Modelul n reea se caracterizeaz prin: A) Singurul tip de relaie este unul la mai multe; B) Un nod fiu are mai muli prini; C) Este mai evoluat dect modelul ierarhic; D) Nici un rspuns corect; E) A, B, C rspunsuri corecte. 3. Bazele de date obiectuale trebuie s asigure: A) Dimensiuni mari ale mediului de memorare; B) Legturile ntre obiecte; C) Interogri relaionale; D) Programe evoluate; E) Prioriti ntre obiecte. 4. Caracteristica unui SGBD distribuit const n: A) Programe surs; B) O parte de hardware; C) Pri componente numite fragmente; D) Un accelerator de date; E) Un translator de date. 5. O relaie este format din: A) Atribute i tuple; B) Obiecte; C) Numere; D) Caractere; E) Nici un rspuns corect. 6. Rangul unei relaii este dat de: A) Numrul de obiecte din relaie; B) Numrul de atribute din relaie; C) Numrul de tuple din relaie; D) Numrul de atribute i tuple; E) Toate rspunsurile corecte. 7. Entitatea de integritate definete: A) Care cheie candidat nu este nul; B) Cheile externe necesare pentru a lega mai multe relaii; C) Numrul de chei dintr-o relaie; D) Care cheie primar nu poate fi nul; E) Domeniul unui atribut. 8. Limbajul de programare Visual Basic este dezvoltat de: A) Microsoft; B) Borland; C) IBM; D) Toate rspunsurile de mai sus sunt corecte; E) Nici un rspuns corect. 41

9. Limbajul Visual Basic este: A) Un limbaj main; B) Un limbaj de asamblare; C) Un limbaj procedural de nivel nalt; D) Un limbaj natural; E) Nu exist limbajul de programare Visual Basic, ci doar limbajul Basic. 10. Constrngerile de integritate referenial sunt: A) Reguli de preceden ntr-o baz de date; B) Reguli de indexare ce trebuie respectate ntr-o tabel; C) Restricii ntre dou sau mai multe relaii; D) Folosite s menin unitatea tuplelor relaionale; E) Rspuns corect C i D. 11. Valoarea NULL: A) Este o valoare fr importan ntr-o tabel; B) Impune sau nu prezena unei valori ntr-un atribut; C) ntr-o tabel prezena sa este opional; D) Este o valoare obligatorie ntr-o baz de date; E) Nici un rspuns corect. 12. ntr-o baz de date orientat obiect metodele sunt: A) Programe care exist permanent n memorie; B) Programe de evaluare a bazei de date; C) Programe ce devin active cnd primesc o cerere de acces; D) Programe utilizator; E) Toate rspunsurile corecte. 13. Obiectele reacioneaz la stimuli prin: A) Mesaje; B) Fluxuri de date; C) Verificarea integritii; D) Modificarea strii; E) Evaluarea dimensiunilor datelor. 14. Valoarea unei tuple este: A) ntodeauna aceeai; B) Mai mare dect zero; C) Infinit; D) Format din mai multe subcmpuri; E) Indivizibil. 15. Cheia primar: A) Este format din unul sau mai multe atribute; B) Este unic ntr-o relaie; C) Individualizeaz fiecare tupl; D) n Visual Basic definirea ei este obligatorie; E) Toate rspunsurile corecte. 16. Transparena SGBD-ului nseamn: 42

A) B) C) D) E)

Ascunderea datelor; Faptul c relaiile sunt invizibile ntr-un SGBD; Sistemul distribuit apare pentru utilizator ca un sistem centralizat; Tuplele pot fi vizualizate numai n anumite condiii; Vederile sunt cele mai active entiti.

17. Bazele de date relaional obiectuale sunt: A) Cele mai vechi modele de baze de date; B) Cele mai uzuale SGBD-uri pentru baze de date ierarhice; C) Baze de date care au limbajul de programare orientat obiect i mediul de memorare al datelor relaional; D) Toate rspunsurile corecte. 18. n bazele de date pur obiectuale: A) Noiunea de relaie se menine; B) Apar structuri specifice; C) Dispare noiunea de relaie; D) Datele nu pot fi memorate; E) Rspunsuri corecte B i C. 19. Modelul n reea se caracterizeaz prin: A) Singurul tip de relaie este unul la mai multe; B) Permite implementarea mai usoara a legaturilor dintre entitatile de memorare de tipul one to many; C) Este mai evoluat dect modelul ierarhic; D) Nici un rspuns corect; E) A, B, C rspunsuri corecte. 20. Bazele de date pur obiectuale: A) Sunt cele mai raspandite la ora actuala; B) Datele sunt memorate in obiecte; C) Cautarile se fac cu ajutorul interogarilor obiectuale; D) Datele nu pot fi memorate; E) Rspunsuri corecte B i C. 21. Bazele de date relaional obiectuale sunt: A) Cele mai vechi modele de baze de date; B) Cele mai uzuale SGBD-uri pentru baze de date ierarhice; C) Cele mai raspandite SGBD-uri pe plan mondial la momentul actual; D) Toate rspunsurile corecte. 22. Exemple de entiti sunt A) Un client ; B) O list alfabetic de produse; C) Numarul de comand a unui client; D) Fia de salarizare a unui angajat; E) Numele unui client. 23. Exemple de entiti sunt : A) Varsta unui client; B) O list alfabetic de produse; C) O comand a unui client; 43

D) E)

Fia de salarizare a unui angajat; Numele unui client ;

24. Exemple de atribute sunt: A) Un angajat B) Numele unui angajat C) Fia de salarizare a unui angajat D) Numarul de angajai E) Data de natere a unui angajat 25. Exemple de atribute sunt A) Un angajat; B) Varsta unui angajat; C) Fia de salarizare a unui angajat; D) O list alfabetic de angajai; E) Data de natere a unui angajat. 26. O legatura intre doua entitati de tipul unul la mai multe este notat prin: A) Un marcaj vertical n apropiere de sfritul liniei i o "lab de gsc" la sfritul liniei B) Cifra 1 n apropiere de inceputul liniei i semnul infinit, la sfritul liniei C) Dou marcaje verticale n apropiere de sfritul liniei D) Un cerc i un marcaj vertical n apropiere de sfritul liniei E) Simbolul matematic pentru infinit deasupra sfritului liniei 27. Tipurile de relaii valabile ntr-o baz de date relaional sunt A) Unul-la- mai multe; B) Niciunul-la-nimic; C) Multe-la-multe; D) Unul-la-unicul; E) Unul-la multe-la unul. 28. Tipurile de relaii valabile ntr-o baz de date relaional sunt A) Unul-la-multe atribute; B) Niciunul-la-multe; C) Multe-la-multe; D) Unul-la-unu; E) Unul-la multe-la unul. 29. Tipurile de relaii valabile ntr-o baz de date relaional sunt A) Unul-la-multe atribute; B) Niciunul-la-multe; C) Mai multe-la-mai multe; D) Una-la-alta; E) Unul-la multe-la unul. 30. Dac un produs poate fi fabricat n mai multe companii, iar o companie poate fabrica mai multe produse, acesta este un exemplu pentru care tip de relaie? A) Unul-la-unu; B) Unul-la-multe; C) Multe-la-unul; D) Mai multe-la-mai multe; 44

E)

Recursiv.

31. Care dintre urmtoarele sunt exemple de relaii recursive? A) O unitate organizaional compus din alte uniti organizaionale; B) O unitate organizaional compus din departamente; C) Un angajat care conduce masina; D) Un angajat care conduce un departament; E) Un angajat care are muli dependeni. 32. Care dintre urmtoarele sunt exemple de relaii recursive? A) O unitate organizaional compus din ateliere B) O unitate organizaional compus din departamente C) Un angajat care conduce ali angajai D) Un angajat care conduce un departament E) Un angajat care are muli dependeni 33. Exemple pentru o regul de lucru sunt: A) O constrngere referenial trebuie s se refere la cheia primar a tabeluluiprinte. B) Un angajat trebuie s aib vrsta de cel puin 18 ani. C) Un query care elimin coloane pe care un angajat nu trebuie s le vad. D) Angajaii onoreaza comenzile. E) Fiecare comand are un numar. 34. Exemple pentru o regul de lucru sunt: A) O constrngere referenial trebuie s se refere la cheia primar a tabeluluiprinte. B) Un angajat are o varsta. C) Un query care elimin coloane pe care un angajat nu trebuie s le vad. D) Angajaii de sub nivelul de salarizare 6 nu au voie s modifice comenzile. E) Fiecare comand are un numar. 35. Exemple pentru o regul de lucru sunt: A) O constrngere referenial trebuie s se refere la cheia primar a tabeluluiprinte. B) Un angajat trebuie s aiba o vrsta. C) Un query care elimin coloane pe care un angajat nu trebuie s le vad. D) Angajaii muncesc. E) Fiecare comand poate aparine doar de un singur client, dar fiecare client poate s aib mai multe comenzi 36. Un tabel relaional: A) Este compus din rnduri i coloane. B) Trebuie s aib asignat un tip de date. C) Trebuie s aib asignate un nume multiple. D) Apare n proiectarea bazei de date conceptuale. E) Nu stocheaza date n modelul relaional. 37. Un tabel relaional: A) Este compus numai din rnduri fara coloane B) Trebuie s aib asignat un tip de date C) Trebuie s aib asignat un nume unic 45

D) E)

Apare n proiectarea bazei de date conceptuale Este unitatea primar de cautare n modelul relaional

38. Un tabel relaional: A) Este compus din coloane B) Trebuie s aib asignat un tip de date C) Trebuie s aib asignat un nume multiplu D) Apare n proiectarea bazei de date conceptuale E) Este unitatea primar de stocare n modelul relaional 39. O coloan dintr-un tabel relaional: A) Trebuie s aib asignat un tip de date B) Trebuie s nu aib asignat un nume unic n cadrul tabelului C) Este derivat dintr-o entitate din proiectul conceptual D) Poate fi compus din alte coloane E) Este cea mai mare unitate de stocare cu nume dintr-o baz de date relaional 40. O coloan dintr-un tabel relaional: A) Trebuie s nu aib asignat un tip de date B) Trebuie s aib asignat un nume unic n cadrul tabelului C) Este derivat dintr-o entitate din proiectul conceptual D) Poate fi compus din alte coloane E) Este cea mai diferita unitate de stocare cu nume dintr-o baz de date relaional 41. O coloan dintr-un tabel relaional: A) Nu are asignat un tip de date B) Nu are asignat un nume unic n cadrul tabelului C) Este derivat dintr-o entitate din proiectul conceptual D) Poate fi compus din alte coloane E) Este cea mai mic unitate de stocare cu nume dintr-o baz de date relaional 42. Un tip de date: A) Restricioneaz datele care pot fi stocate B) Asist SGBD n stocarea eficient a datelor C) Ofer un set de comportamente eronate pentru o coloan care ajut utilizatorul bazei de date D) Poate fi selectat in diverse moduri E) Nu restricioneaz caracterele permise ntr-o coloan a bazei de date 43. Un tip de date: A) Restricioneaz datele care pot fi stocate B) Nu stocheaza efficient datele. C) Ofer un set de comportamente unice care se refera la erori. D) Poate fi selectat intodeauna E) Restricioneaz caracterele permise ntr-o coloan a bazei de date 44. Cheia primar: A) Poate fi formata din una sau mai multe coloane ntr-un singur tabel B) Impune constrngeri de integritate refereniale C) Trebuie definit pentru fiecare tabel al unei baze de date D) Este implementat de regul folosind tuple E) Nu garanteaz faptul ca o coloana sau mai multe sunt corecte. 46

45. Cheia primar: A) Poate fi formata din mai multe constrangeri referentiale. B) Impune constrngeri de integritate refereniale C) Trebuie definit pentru fiecare tabel al unei baze de date D) Este implementat de regul folosind tuple E) Garanteaz faptul ca in doua linii din tabela nu pot exista date identice. 46. O constrngere referenial: A) Trebuie s aib coloane de chei primare i de chei strine cu nume identice B) Asigura cheii primare- inexistenta valorilor duplicat in tabela C) Definete o relaie multe-la-multe ntre dou tabele D) Asigura cheii exterioare tot timpul valori facand referinta la valorile cheii primare existente in tabela parinte. E) Deriv dintr-o vedere utilizator n modelul conceptual 47. O constrngere referenial se definete: A) Folosind fereastra Relationships din Microsoft Access B) Nu se defineste intr-o baza de date. C) ntr-o vedere D) Folosind tipul de date referenial pentru coloana (sau coloanele) cu chei strine E) Folosind un Trigger n baza de date 48. Intersecia tabelelor: A) Obisnuite s furnizeze utilizatori cu o vedere personalizat a informatiillor. B) Rezolva o relatie one-to-many. C) Poate sa contina date de intersectie D) Rezolva o relatie de tip many-to-many. E) Apare numai n design-ul bazei de date conceptuale. 49. Tipurile majore de constrngerile de integritate sunt. A) constrngeri CHECK B) relatii One-to-one C) constrngeri IN NULL D) Constrngerile impuse cu index E) Tipuri de date 50. Tipurile majore de constrngerile de integritate sunt. A) constrngeri CHECKOUT B) relatii One-to-one C) constrngeri NOT NULL D) Constrngerile impuse cu SQL E) Tipuri de date 51. Tipurile majore de constrngerile de integritate sunt. A) constrngeri CHECK IN B) relatii One-to-one C) constrngeri NOT OUT D) Constrngerile impuse cu triggers E) Tipuri de date 52. O entitate n proiectarea conceptuala ce devine in proiectarea logica? 47

A) B) C) D) E)

View- Vedere Table - Tabela Column- Coloana constrangeri referentiare Index

53. Un atribut n proiectarea conceptuala ce fel de obiect devine n proiectarea logica? A) View- Vedere B) Table- Tabela C) Column- Coloana D) constrangeri referentiare E) Index 54. Articolele din nivelul extern al modelului ANSI /SPARC ce obiecte devin n modelul logic al bazei de date? A) View- Vedere B) Table- Tabela C) Column- Coloana D) Constrangeri referentiale E) Index 55. O legatura intre doua tabele definita in modelul conceptual ii corespunde in modelul logic: A) View- Vedere B) Table- Tabela C) Column- Coloana D) d. Constrangeri referentiale E) e. Index 56. Constrngerea cheie primara este pusa in aplicare folosind n proiectarea logic obiectul de tip? A) View- Vedere B) Table- Tabela C) Column- Coloana D) Constrangeri referentiale E) Index 57. Unele dintre proprietile bazei de date sunt: a. Nivele de abstracie referentiate ale bazei de date; b. Elementele de date sunt stocate exact n modul n care sunt prezentate utilizatorului bazei de date; c. Ofer mai puin independen logic a datelor dect sistemele de fiiere pe care le-a nlocuit; d. Mecanisme care ofer independena datelor att logic ct i fizic; e. Bazele de date nu sunt sisteme de gestiune a bazelor de date. 58. Unele dintre proprietile bazei de date sunt: a. Nivele de abstracie referentiate ale bazei de date; b. Elementele de date sunt stocate exact n modul n care sunt prezentate utilizatorului bazei de date; c. Ofer mai puin independen logic a datelor dect sistemele de fiiere pe care le-a nlocuit; d. Mecanisme care ofer dependenta datelor att logic ct i fizic; 48

e. Bazele de date sunt ntotdeauna administrate prin intermediul unui sistem de gestiune a bazelor de date. 59. Query-urile create de utilizator sunt importante pentru c: a. Programele de aplicaii nu se refer la ele; b. Sunt entitati prin care utilizatorii caut n baza de date diverse informatii; c. Ele asigur independena fizic a datelor; d. Ele nu pot fi adaptate la necesitile utilizatorului bazei de date; e. Actualizrile datelor sunt prezentate cu ntrziere. 60. Query-urile create de utilizator sunt importante pentru c: a. Programele de aplicaii se refer la ele; b. Utilizatorii care caut n baza de date nu se refer niciodata la ele; c. Ele asigur independena fizic a datelor; d. Ele nu pot fi adaptate la necesitile utilizatorului bazei de date; e. Actualizrile datelor sunt prezentate cu ntrziere; 61. Independena fizic a datelor: a. Este ceva ce o baz de date fie are, fie nu are b. Este o proprietate pe care toate sistemele o au ntr-o anumit msur c. Permite efectuarea de modificri eseniale n nivelul fizic al modelului ANSI/SPARC d. Este obinut prin separarea nivelelor fizic i logistic ale modelului ANSI/SPARC e. Este obinut prin separarea nivelelor logic i extern ale modelului ANSI/SPARC 62. Independena logic a datelor: a. Este o proprietate pe care toate sistemele de computere o au ntr-o anumit msur b. Este obinut prin separarea nivelelor fizic i logic ale modelului ANSI/SPARC c. Este obinut prin legarea nivelelor logic i extern ale modelului ANSI/SPARC d. Permite tergerea nerestricionat a datelor din fiierele fizice ale bazei de date fr s afecteze utilizatorii i procesele curente din baza de date e. Permite adugarea nerestricionat a unor obiecte n fiierele fizice ale bazei de date fr s afecteze utilizatorii i procesele curente din baza de date 63. Independena logic a datelor: a. Este o proprietate pe care toate sistemele de computere o au ntr-o anumit msur b. Este obinut prin separarea nivelelor fizic i logic ale modelului ANSI/SPARC c. Este obinut prin separarea nivelelor logic i extern ale modelului ANSI/SPARC d. Permite tergerea nerestricionat a datelor din fiierele fizice ale bazei de date fr s afecteze utilizatorii i procesele curente din baza de date e. Permite adugarea cu restrictii a unor obiecte n fiierele fizice ale bazei de date fr s afecteze utilizatorii i procesele curente din baza de date 64. Fiiere sistem simple: a. Nu sunt cu adevrat baze de date n sine, chiar dac unii comerciani le numesc astfel b. Nu pot fi folosite pentru a memora obiectele dintr-o baz de date c. Ofer independen logic de date atunci cnd sunt folosite direct de ctre programe de aplicaii d. Fisierele nu pot fi legate unul de celalat e. Nu se cunoaste continutul lor 65. Fiiere sistem simple: a. Contin informatii nesemnificative intr-o baza de date 49

b. Pot fi folosite pentru a memora obiectele dintr-o baz de date c. Ofer independen logic de date atunci cnd sunt folosite direct de ctre programe de aplicaii d. Fisierele nu pot fi legate unul de celalat e. Nu se cunoaste continutul lor 66. Fiiere sistem simple: a. Contin informatii nesemnificative intr-o baza de date b. Nu pot memora obiectele dintr-o baz de date c. Nu ofer independen logic de date atunci cnd sunt folosite direct de ctre programe de aplicaii d. Fisierele nu pot fi legate unul de celalat e. Nu se cunoaste continutul lor 67. Fiiere sistem simple: a. Contin informatii nesemnificative intr-o baza de date b. Nu pot memora obiectele dintr-o baz de date c. Ofer independen fizica a datelor atunci cnd sunt folosite direct de ctre programe de aplicaii d. Cer utilizatorului sau programului de aplicaie s lege un fiier de altul e. Nu se cunoaste continutul lor 68. Modelul ierarhic al bazei de date: a. A fost dezvoltat pentru prima oar de ctre Peter Chen b. Stocheaz la un loc n baza de date datele i metodele c. Conecteaz datele ntr-o structur ierarhic folosind pointeri de adrese fizice d. n forma sa pur, permite mai multi printi pentru orice nregistrare dat e. Permite procesarea unor seturi de nregistrri din baza de date 69. Modelul ierarhic al bazei de date: a. A fost dezvoltat pentru prima oar de ctre Peter Chen b. Stocheaz la un loc n baza de date datele i metodele c. Conecteaz datele ntr-o structur ierarhic folosind legaturi intrinseci d. n forma sa pur, permite doar un singur printe pentru orice nregistrare dat e. Permite procesarea unor seturi de nregistrri din baza de date 70. Modelul tip reea a. A fost propus pentru prima oar de ctre dr. E.F. Codd b. Conecteaz nregistrrile din baza de date folosind legaturi intre utilizatori c. Permite procesarea unor seturi de nregistrri din baza de date d. Permite prini multipli pentru orice nregistrare dat e. Este cunoscut pentru simplitatea utilizrii sale 71. Modelul tip reea a. A fost propus pentru prima oar de ctre Rubens Barichello b. Conecteaz nregistrrile din baza de date folosind pointeri de adrese fizice c. Permite procesarea unor seturi de nregistrri din baza de date d. Permite un singur pentru orice nregistrare dat e. Este cunoscut pentru simplitatea utilizrii sale 72. Modelul relaional: a. A fost propus pentru prima oar de ctre dr. E.F. Codd 50

b. Folosete pointeri fizici pentru a conecta nregistrrile din baza de date c. Nu ofer o flexibilitate superioar pentru cereri ad hoc d. Este dificil de neles i de folosit e. Prezint datele sub form de fisiere unidimensionale 73. Modelul relaional: a. A fost propus pentru prima oar de ctre dr. Michael Schumi b. Nu folosete pointeri fizici pentru a conecta nregistrrile din baza de date c. Ofer o flexibilitate foarte slaba pentru cereri ad hoc d. Este dificil de neles i de folosit e. Prezint datele sub form de fisiere unicat 74. Modelul relaional: a. A fost propus pentru prima oar de ctre dr. Gates b. Folosete pointeri formali pentru a conecta nregistrrile din baza de date c. Ofer o flexibilitate superioar pentru cereri ad hoc d. Este dificil de neles i de folosit e. Prezint datele sub form de tabele unidimensionale de mici dimensiuni 75. Modelul relaional: a. A fost propus pentru prima oar de ctre dr. E.F. IBM b. Folosete pointeri fizici pentru a conecta nregistrrile din baza de date c. Ofer o proasta flexibilitate pentru cereri ad hoc d. Este dificil de neles i de folosit e. Prezint datele sub form de tabele bidimensionale 76. Modelul orientat-obiect: a. Stocheaz datele ca variabile mpreun cu modulele logice de aplicaii numite metode b. Ofer apelarea ad-hoc, n format liber, a variabilelor c. A fost inventat pentru prima oar n anii '80. d. Ofer un mediu mai prost pentru tipuri complexe de date dect modelul relaional e. Restricioneaz accesul la variabile prin derivare 77. Modelul orientat-obiect: a. Stocheaz datele ca variabile mpreun cu modulele fizice de aplicaii numite metode b. Ofer apelarea ad-hoc, n format liber, a variabilelor c. A fost inventat pentru prima oar n anii '80. d. Ofer un mediu mai bun pentru tipuri complexe de date dect modelul relaional e. Restricioneaz accesul la variabile prin integrare 78. Modelul orientat-obiect: a. Stocheaz datele ca si constante mpreun cu modulele logice de aplicaii numite metode b. Ofer apelarea ad-hoc, n format liber, a variabilelor c. A fost inventat pentru prima oar n anii '80. d. Ofer un mediu mai bun pentru tipuri singulare de date dect modelul relaional e. Restricioneaz accesul la variabile prin ncapsulare 79. Modelul relaional-obiect: a. A fost propus pentru prima oar de ctre Charles Bachman b. Combin concepte din modelele relaional i orientat-obiect n ncercarea de a obine ce e mai bun la fiecare c. Nu este implementat de produsele SGBD cu cel mai mare succes comercial 51

d. Depete restriciile impuse chestionrilor ad hoc existente n modelul relaional e. Nu depete restriciile impuse chestionrilor ad hoc existente n modelul orientat-obiect 80. Conform susintorilor modelului de reea, problemele legate de modelul relaional sunt urmtoarele: a. Procesarea cte unei nregistrri odat nu se poate face prea uor. b. Este prea complicat. c. Nu are un suport matematic formal d. Nu se poate realiza o implementare utilizator retea e. Cuprinde prea multe standarde general acceptate. 81. Conform susintorilor modelului de reea, problemele legate de modelul relaional sunt urmtoarele: a. Procesarea mai multor nregistrri odat nu se poate face prea uor. b. Este prea complicat; c. Nu are un suport matematic formal; d. Nu se poate realiza o implementare eficient; a. e.Cuprinde standarde general acceptate. 82. Conform susintorilor modelului de reea, problemele legate de modelul relaional sunt urmtoarele : a. Procesarea unor interogari nu se poate face prea uor; b. Este prea complicat; c. Nu are un suport matematic formal; d. Realizeaza implementari neeficiente; e. Nu cuprinde standarde general acceptate. 83. Principalele motive pentru care modelul relaional a devenit att de popular sunt: a. Computerele au devenit mai ieftine, astfel nct flexibilitatea a devenit mai important dect eficiena; b. Au aprut limbaje interogare complicate precum My-SQL; c. Modelul de reea nu a avut succes pe pia; d. Au fost dezvoltate produse complexe cu olegatura intrinseca cu baza de date obiectuala; e. A fost inventat calculul relaional. 84. Principalele motive pentru care modelul relaional a devenit att de popular sunt: a. Computerele au devenit mai complexe, astfel nct flexibilitatea a devenit nesemnificativa; b. Au aprut limbaje interogare simple precum SQL; c. Modelul de reea nu a avut succes pe pia; d. Au fost dezvoltate produse complexe cu olegatura intrinseca cu baza de date obiectuala; e. A fost inventat calculul relaional. 85. Evenimentele istorice importante n dezvoltarea bazelor de date sunt: a. GUAM a fost prima baz de date disponibil pe pia; b. IDS de la General Electric a fost prima baz de date de tip reea cunoscut; c. Dr. E.F. Coddated a publicat faimoasa sa lucrare tiinific n anul 1970; d. Primele baze de date relaionale au fost realizate de Microsoft; e. Aproape toate bazele de date relaionale disponibile pe pia sunt descendente fie din System RELAT fie din POSTGRESQL. 52

86. Evenimentele istorice importante n dezvoltarea bazelor de date sunt: a. GUAM a fost prima baz de date disponibil pe pia; b. IDMBS de la General Electric a fost prima baz de date de tip reea cunoscut; c. Dr. E.F. Codd a publicat faimoasa sa lucrare tiinific n anul 1970; d. Primele baze de date relaionale au fost realizate de Microsoft; e. Aproape toate bazele de date relaionale disponibile pe pia sunt descendente fie din System RELAT fie din POSTGRESQL. 87. Evenimentele istorice importante n dezvoltarea bazelor de date sunt: a. GUAM a fost prima baz de date disponibil pe pia; b. IDMBS de la General Electric a fost prima baz de date de tip reea cunoscut; c. Dr. E.F. Coddasyl a publicat faimoasa sa lucrare tiinific n anul 1970; d. Primele baze de date relaionale au fost realizate de IBM i UC Berkeley; e. Aproape toate bazele de date relaionale disponibile pe pia sunt descendente din bazele de date obiectuale. 88. Bazele de date relaionale disponibile n prezent includ: a. Oracle; b. Microsoft VISUALSQL Server; c. System R; d. IDS; e. CACHE. 89. Bazele de date relaionale disponibile n prezent includ: a. OracleDelfi; b. Microsoft SQL Server; c. System R; d. IDS; e. Sybasat. 90. Bazele de date relaionale disponibile n prezent includ: a. OracleDevelopeDelphi; b. Microsoft My=SQL Server; c. System R; d. IDS; e. Sybase. 91. Exemple de modificri fizice care pot fi fcute ntr-un sistem care are un grad ridicat de independen fizic a datelor sunt: a. Mutarea unui fiier de pe un disc pe altul; b. Adugarea de noi vederi; c. Adugarea de noi coloane in fiiere de date; d. Divizarea sau combinarea unor obiecte din baza de date; e. Reactivarea unui fiier de date. 92. Exemple de modificri fizice care pot fi fcute ntr-un sistem care are un grad ridicat de independen fizic a datelor sunt: a. Partitionarea unui fiier de pe un disc pe altul; b. Adugarea de noi vederi; c. Adugarea de noi fiiere de date; d. Divizarea sau combinarea unor obiecte din baza de date; 53

e. Redefinirea unui fiier de date. 93. Exemple de modificri fizice care pot fi fcute ntr-un sistem care are un grad ridicat de independen fizic a datelor sunt: a. Partitionarea unui fiier de pe un disc pe altul; b. Adugarea de noi vederi ; c. Adugarea de noi date in fiierele de date; d. Divizarea sau combinarea unor obiecte din baza de date; e. Redenumirea unui fiier de date. 94. Exemple de modificri logice ce pot fi fcute ntr-un sistem care are un grad ridicat de independen logic a datelor sunt: a. Mutarea unui obiect al bazei de date dintr-un fiier fizic n altul; b. tergerea obiectelor bazei de date; c. Adugarea de noi obiecte n baza de date; d. Adugarea de elemente la constantele existente n baza de date; e. tergerea de elemente din obiecteleexistente n baza de date. 95. Un obiect se caracterizeaz prin: A) Nume, mrime, comportament; B) Identificator, nume, aspect; C) Aspect, mrime, acces; D) Stare, nume, comportament; E) Identificator, stare, comportament . 96. Obiectul complex este format din: A) Relaii complexe; B) Atribute complexe; C) Obiecte simple; D) Tuple simple i complexe. 97. Identitatea obiectului este: A) O msur cantitativ a obiectului; B) O msur calitativ a obiectului; C) Este proprietatea unui obiect care l deosebete de alte obiecte; D) Este proprietatea care definete poziia obiectului n baza de date; E) Este proprietatea opional a unui obiect. 98. Incapsularea obiectului definete faptul c un obiect: A) este unic; B) este identificabil; C) nu este vizibil; D) are dou pri distincte; 99. Clasa de obiecte este definit ca o entitate care: A) Conine obiecte cu aceeai stare i comportament; B) Conine obiecte cu proprieti diferite; C) Conine obiecte cu comportament diferit; D) Conine obiecte cu stare i comportament diferite; E) Toate rspunsurile sunt corecte. 100. Motenirea n bazele de date obiectuale nseamn c: 54

A) Operaiile definite pentru o clas sunt valabile n orice subclas; B) Orice instan a unei subclase date este de asemenea instan pentru orice clas la care aparine subclasa considerat; C) Subclasa nu are proprietile clasei; D) Rspunsuri corecte A i B; E) Subclasa nu are metodele clasei. 101. Suprancrcarea nseamn c: A) Pot exista metode cu nume identic; B) Pot exista proprieti cu nume identic; C) Pot exista clase i subclase cu nume identic; D) pot exista instane cu nume identic. 102. Polimorfismul nseamn c: A) Acelai nume de proprietate poate fi atribuit la diverse obiecte; B) Acelai nume de clas poate fi atribuit la diverse clase; C) Acelai nume de metod poate fi atribuit la diverse obiecte; D) Acelai nume de operaie dintr-o clas s fie identic cu definirea altei operaii din alt clas; E) C i D rspunsuri corecte. 103. Persistena este: A) Abilitatea programatorului de a face ca datele aplicaiei s supravieuiasc ct mai mult n urma unui proces; B) O aplicaie exist permanent pe disc; C) O baz de date creat exist permanent n memorie; D) Obiectele unei clase exist permanent n memorie. 104. Concurena este: A) Un proces aleator; B) Un proces declanat de anumite comenzi; C) Un concept care se refer la activitile ce se desfoar n acelai timp; D) Un concept care se refer la obiecte care pot exista n acelai timp. 105. Concurena este controlat de: A) Algoritmi destructivi; B) Algoritmi constructivi; C) Algoritmi pesimiti; D) Algoritmi optimiti; E) Rspunsuri corecte C i D. 106. Motenirea multipl este un concept care: A) Arat c ntr-o clas exist subclase multiple; B) Arat c ntr-o clas exist obiecte multiple; C) Arat c obiectele au capacitatea de a avea proprieti i obiecte diferite fa de alte clase; D) Arat c obiectele au capacitatea de a moteni proprieti i metode de la mai multe clase concomitent. 107. Versionarea este un concept care: A) Permite validarea obiectelor; 55

B) Permite tergerea obiectelor; C) Permite variante diferite ale obiectelor; D) Permite urmrirea schimbrilor ntmplate n starea unui obiect;
108. Un obiect container este un obiect care: A) Conine alte obiecte; B) Conine alte clase; C) Conine alte subclase; D) Conine alte versiuni de obiecte. 109. Un SGBDOO este un administrator de: A) Baze de date relaionale; B) Baze de date orientate obiect; C) Baze de date ierarhice; D) Baze de date distribuite; E) Nu exist un astfel de administrator de baze de date. 110. Identificatorii OID pot fi: A) De un singur tip numerici; B) De dou tipuri logici i fizici; C) De dou tipuri clas i obiect; D) De un singur tip logici.

56

Tema 2 Microsoft Access si Limbajul SQL


I. OBIECTIVE Obiectivul acestui capitol este de a familiariza studentul cu mediul software pentru baze de date Access. Obiectivele precise ale capitolului sunt: invarea proiectrii mediilor de stocare, a tabelelor, nvarea limbajului SQL, nvarea lucrului cu formulare i rapoarte. II. COMPETENE SPECIFICE DOBNDITE DE STUDENT Studentul este capabil sa realizeze aplicatii minimale folosind bazele de date. El poate crea structuri de memorare a datelor: tabele, interfete grafice pentru o aplicatie: formulare, manipularea datelor: interogari, entitati de afisare a datelor pe ecran sau la imprimanta: rapoarte. III. CUVINTE CHEIE TABELE, FORM-URI, SQL, QUERY, RELATII, RELATIONSHIP, REPORT IV. STRUCTURA MODULULUI DE STUDIU 1. Proiectara si folosirea tabelelor; 2. Proiectarea manuala si interactiva a interogarilor folosind utilitarul QBE, folosirea limbajului SQL; 3. Realizarea interactiva a formularelor folosind utilitarul Wizard; 4. Realizarea interactiva a rapoartelor folosind utilitarul Wizard. V. REZUMAT La nceput n acest capitol se prezint modul n care se creaz tabele. Sunt prezentate tipurile de date care pot exista n tabele, restriciile care se pun asupra cmpurilor n procesul de proiectare a tabelelor. Se arat modul de creare a unui filtru, modul n care se leag ntre ele dou tabele. Se prezint apoi noiunile teoretice ale limbajului SQL, adaptat la mediul Access i modul n care se pot realiza interogri folosind utilitarul QBE. n partea final a capitolului se prezint modul n care sunt realizate formularele i rapoartele, att n modul Wizard ct i n modul de proiectare. VI. DESCRIEREA TEMEI BAZE DE DATE N MEDIUL ACCESS. TABELE Microsoft Access face parte din pachetul de programe Microsoft Office. Principalele caracteristici ale produsului sunt urmtoarele: Sistemul de gestiune al bazelor de date este relaional i lucreaz sub sistemul de operare Windows; Este compatibil pentru comunicare cu alte sisteme de gestiune al bazelor de date de tipul FoxPro sau Paradox; Este compatibil cu tehnologia ActiveX care permite realizarea unor aplicaii de tip Client/Server; Permite comunicarea cu SQL Server, un alt produs al firmei Microsoft; Permite realizarea unor aplicaii complexe prin folosirea limbajului Visual Basic; 57

Permite accesul la bazele de date din reeaua Internet, fiind un instrument util pentru publicarea informaiilor n paginile de Web; Este autodocumentat prin help, apelabil contextual sau la cerere; Conine instrumente Wizard care permit utilizatorului crearea facil a unor obiecte; Permite crearea de grupuri de obiecte definite de utilizator n cadrul bazei de date.

1.1 Concepte ale mediului Access


Baz de date Ansamblu de obiecte utilizat pentru a gestiona informaii. O baz de date poate fi folosit ca s in evidena ntr-o videotec, s controleze un inventar, s lucreza cu liste de clieni ori s alctuiasc o list a persoanelor crora s le trimitei felicitri de Crciun. Ea conine unul sau mai multe tabele, precum i alte obiecte (de exemplu, rapoarte). O baz de date Acces este stocat sub forma unui fiier unic cu extensia MDB. Tabel Obiect ntr-o baz de date, n care informaiile sunt stocate i aranjate pe rnduri i coloane. Cmp Categorie de informaii dintr-un tabel, de pild o adresa, titlul unei casete sau actul de identitate al unui client. Cmpurile, reprezint coloanele tabelului. nregistrare Toate informaiile legate de un subiect dintr-un tabel. Rndurile reprezint nregistrrile unui tabel. Obiect O unitate identificabil ntr-o baz de date, de exemplu un tabel, un raport sau un formular. Putei considera sistemul de gestiune a bazelor de date ca pe un fiet. Fiecare baz de date reprezint un biblioraft din fiet, iar obiectele (inclusiv tabelele) sunt dosarele din biblioraft. Queries (interogrile) afieaz datele coninute n cel mult 16 tabele; Forms (formularele) afieaz datele existente n tabele sau interogri i permit introducerea altora noi; Reports (rapoartele) tipresc datele din tabele i interogri n aproape orice format; Macros (macrocomenzile) automatizeaz diverse operaii Access. n multe cazuri macrocomenzile iau locul diverselor instruciuni sau coduri de program; Modules (modulele) conin codul sau instruciunile limbajului. n afara fiierelor baz de date cu extensia MDB, Access include un fiier baz de date principal, System.mdw(System.mda-access2.0), care mai este denumit i fiier workgroup. El conine informaii despre: numele utilizatorilor i a grupurilor de utilizatori care pot deschide Sistemul Access; parolele utilizatorilor i un cod binar unic, denumit System ID care identific utilizatorul curent al programului Access; preferinele de lucru; definirea barelor cu instrumente personalizate, pe care le creeaz fiecare utilizator. O alt categorie de fiiere baz de date Access o formeaz cele denumite add-ins sau libraries. Ele au de obicei extensia MDA i pot fi activate din opiunea TOOLS a meniului sistem subopiunea ADD-INS. Vrjitorii din Access sunt stocai de asemenea n fiiere cu extensia MDA

1.1.1 Operaii elementare asupra programului Access


nainte de a porni programul, trebuie s-l avei instalat n calculator. Dup ce l-ai 58

instalat, trebuie s poat fi lansat din Windows. Nu uitai s repornii calculatorul, dup ce ai instalat Microsoft Access, folosind butonul existent pe ultimul ecran al instalarii. n primul rand, nainte de a putea instala Microsoft Access, trebuie s avei deja instalat i lansat Windows 3.11 sau Windows 95 sau Windows 98. Microsoft Access se instaleaz din interiorul programului Windows. Microsoft Access poate fi pornit n dou moduri: Executai dublu click pe pictograma Microsoft Access. Selectai pictograma utiliznd tastele cu sgei, apoi apasai R, sau click pe mouse. n ambele variante, Microsoft Access pornete afind fereastra iniial. Bara de meniuri conine doua opiuni: File i Help. Bara cu instrumente de lucru conine patru pictograme accesibile: New Database, Open Database, Cue Cards i Help. Din aceasta fereastra iniial, putei deschide o baz de date, ori putei executa operaii de gestionare a bazelor de date (fig 1). Pentru a prsi programul, utilizai una dintre urmtoarele metode: Selectai Exit din meniul File. Apsai A+4. Executai dublu click pe caseta meniului Control.

Fig

Microsoft Access utilizeaz meniuri dinamice, ale cror opiuni se modific n funcie de felul n care folosii programul. Atunci cnd pornii programul, exist doar dou meniuri derulante: File i Help. Dup ce deschidei o baz de date, bara de meniuri se va modifica i n cadrul ei vor aparea mai multe nume de meniuri. Modul cel mai rapid de operare n Microsoft Access este cu ajutorul unui mouse. Putei exersa utilizarea mousului, efectund urmtorii pai: 1. Deplasai cursorul mousului pe numele meniului dorit din bara principal de meniuri, apoi apasai i eliberai butonul stng al mousului (ceea ce se numete "a executa click". De pild, executai un click pe opiunea File. Meniul respectiv se deschide. 2. Executai click pe opiunea dorit din meniu; de exemplu, pe Open Database. 3. Atunci cnd se deschide caseta de dialog (fig. 2), selectai opiunile dorite, ori introducei textul dorit. 4. n mod obinuit, vei nchide caseta de dialog executand click pe OK i lansnd astfel aciunea respectiv. Dac executai click pe Cancel, caseta de dialog se nchide fr a iniia nici o aciune. n lucrul cu meniurile, este necesar s cunoatei cteva detalii. Un element de culoare gri al meniului nu poate fi selectat n momentul respectiv. Un triunghi mic afiat n dreapta unei comenzi din meniu arat c, selectarea comenzii respective va deschide alt meniu. De exemplu, dac ai deschis o baz de date i selectai meniul File, comanda New din acest meniu apare cu un mic triunghi cu vrful spre dreapta. Selectnd New, se va afia un submeniu, pe care-l putei folosi pentru a defini tipul de obiect pe care intenionai s-l creai n baza de date. 59

Punctele de suspensie (...) ce urmeaz unei comenzi indic apariia unei casete de dialog la selectarea comenzii respective. Dac deschidei un meniu i apoi hotari s nu-l mai folosii, l putei elimina de pe ecran, apsnd Esau executnd click oriunde n afara ecranului.

Fig

Tastatura se folosete pentru a introduce text ntr-o caseta de dialog ori n tabelul unei baze de date. n unele cazuri, de pild la un calculator laptop, tastatura poate fi extrem de util n activarea comenzilor din meniuri. Iat cum trebuie folosit pentru comenzi: 1. Apsai tasta A apoi introducei litera de selectare a meniului dorit. 2. Cnd este afiat meniul derulant, apsai litera de selectare a opiunii dorite. Litera de selectare este litera ce apare subliniata pe ecran i care, apasata, activeaz o comand dintr-un meniu. 0 serie de taste funcioneaz drept comenzi rapide n anumite operaii, astfel nct nu mai e necesar s deschidei meniul i s selectai comanda. Exist astfel comenzi rapide pentru anularea unei operaiuni, pentru decuparea sau copierea de texte ori pentru nchiderea unui program. Tabelul 1 prezint cteva dintre cele mai utilizate. Tabelul 1 TASTA FUNCIA A+4 Prsete mediul Access E Anuleaz un meniu, o comand sau o caset de dialog 1 Deschide sistemul Help S+1 Deschide asistena soft sensibil la context C+0 Mrete fereastra documentului C+X Transfer datele n memoria Clipboard, dup care le terge din fereastra curent C+C Copiaz datele n memoria Clipboard, pstrndu-le n fereastra curent C+V Transfer datele din memoria Clipboard n fereastra curent D Elimin sau terge date selectate S+2 Mrete o selecie C+6 Trece de la o fereastr deschis la alta ! Revine la fereastra bazei de date S+@ Salveaz un obiect al bazei de date care pot simplifica operaiile. Asistena soft se obine n orice moment, apsnd pe tasta 1 Dac se alege Contents din meniul Help se va deschide tabla de materii Help din care se poate alege orice subiect dorit. Dac se tasteaz S+1 pe o anumit comand a meniului se pot obine informaii despre utilizarea comenzii selectate din meniu. 60

1.2 Baze de date n mediul Access


Pentru a defini o aplicaie ca un sistem complet de gestionare al bazelor de date relaionale, aceasta trebuie s execute urmtoarele patru funcii de baz: Organizarea datelor include crearea i manevrarea tabelelor care conin date n formatul tabel denumit n Acces: Datasheet View; Legarea tabelelor i extragerea datelor. Sistemul Acces folosete interogrile pentru legarea tabelelor. Datele rezultate n urma interogrii se gsesc memorate ntr-un obiect denumit Recordset, acesta fiind un obiect virtual datele fiind stocate n memoria calculatorului, nu n fiiere de baze de date; Introducerea i editarea datelor, necesit proiectarea i implementarea modului de vizualizare al datelor, a formularelor de introducere i de editare; Prezentarea datelor necesit crearea rapoartelor, care pot centraliza informaiile din obiectele Recordset. Capacitatea de a asigura rapoarte este scopul final al oricrei aplicaii de gestionare a bazelor de date. Exist patru funcii suport care se aplic tuturor celor patru funcii de baz: Macrocomenzile sunt secvene de aciuni care automatizeaz operaiile repetitive n cadrul bazelor de date; Modulele sunt funcii i proceduri scrise n dialectul pentru Access al limbajului Visual Basic for Application (VBA). Funciile Access se utilizeaz la efectuarea calculelor mai complicate; Securitatea const n funcii disponibile numai ca opiuni ale meniurilor. ntr-un mediu multiuser putei permite altora s foloseasc o anumit baz de date; Tiprirea permite imprimarea a absolut tot ceea ce se vede n modul de rulare al programului Access.

1.2.1 Folosirea utilitarelor pentru bazele de date


Access deine trei funcii referitoare la bazele de date accesibile numai atunci cnd nu este deschis nici o baz de date. Aceste funcii sunt: convertirea bazei de date; compactarea bazei de date; repararea bazei de date. Convertirea bazei de date transform bazele de date din versiunile anterioare n formatul Access95. Procesul invers de convertire nu este permis. Compactarea bazei de date, permite refacerea informaiei, optimiznd att dimensiunile ct i organizarea tabelelor. (Echivalent PACK) Repararea bazelor de date, poate fi acionat n urmtoarele cazuri: probleme hardware la scrierea fiierului; iniializarea accidental a calculatorului, n timp ce o baz de date Access este deschis; o ntrerupere a tensiunii de alimentare. Utilitarul existent poate fi folosit n oricare din aceste cazuri.

1.2.2 Crearea bazei de date proprii utilizatorului


Prin acionarea butonului New Database de pe bara de instrumente sau prin alegerea opiunii din meniul File se creaz un nou fiier cu extensia MDB. Caseta de dialog New, permite alegerea tipului bazei de date: General - baz de date goal; Database - o baz de date corespunztoare unuia din abloanele predefinite. 61

S presupunem c ai primit drept sarcin alctuirea unei liste importante pentru societatea la care lucrai; s zicem c este o lista a vnztorilor poteniali, util compartimentului "Desfacere". Primul pas este definirea bazei de date. Dup aceea, putei decide dac sunt necesare tabele, rapoarte, formulare i cereri. Lista noastr va reprezent o baz de date foarte simpl; vor fi suficiente un tabel i cteva rapoarte. n exemplul de faa, adresele vnztorilor poteniali pot fi introduse ntr-un tabel. Dup aceea, tabelul poate fi stocat n acelai fiier baz de date cu rapoartele i formularele. Formularul este orice obiect pe care-l putei utiliza pentru a introduce, edita i vizualiza sau imprima datele inregistrate. Cererea este un obiect folosit pentru regsirea de intormaii specifice dintr-o baz de date, bazate pe o condiie anume. Raportul este o colecie de informaii organizate i aranjate pentru a corespunde specificaiilor. O baz de date poate deveni o structur destul de complex i trebuie organizat corespunzator. n crearea unei baze de date, trebuie urmrite aceste reguli generale: Examinai modul n care sunt gestionate informaiile; Definii noile obiective i creai baze de date care s le satisfac; Evitai s introducei prea multe informaii ntr-un singur tabel; S ncercm acum s crem o baz de date. Nu uitai c n acelai fiier putei stoca tabele, cereri, rapoarte i formulare asociate bazei de date. Ca s creai o nou baz de date, urmai aceti pai: 1. Alegei New Database din meniul File, sau executai click pe butonul New Database din bara cu instrumente de lucru. Este afiat caseta de dialog New Database (fig 3) 2. n caseta de text File Name, introducei numele noii baze de date. Dac nu introducei extensia, programul va aduga n mod automat extensia .mdb. Denumirea prestabilit este DB1.MDB, dar putei conferi fiierului un nume propriu. Pentru exemplul nostru, vom introduce VINZARI; 3. Dac dorii s salvai baza de date n alt catalog, selectai catalogul respectiv din caseta lista Directories; 4. Dac dorii sa salvai baza de date pe alt unitate de disc, alegei-o pe aceasta din caseta-list Drives; 5. Dup ce ai terminat, apsai Rsau executai click pe OK. Cnd ai terminat de creat fiierul baz de date, pe ecran apare o fereastra Database (fig 5). O putei folosi pentru a aduga tabele, rapoarte i alte obiecte n baza de date, sau ca s folosii orice obiecte pe care le-ai creat deja. Caseta-lista este goal, pentru c deocamdat nu ai creat nimic. Observai c pe bara de meniuri avei mai multe opiuni, iar pe bara cu instrumente de lucru mai multe butoane accesibile. Dac nchidei baza de date, toate obiectele sunt stocate corespunzator i se revine la fereastra

Fig

iniial. Ca s inchidei baza de date, alegei Close Database din meniul File. Reapare 62

fereastra de pornire; dac dorii, putei deschide alte baze de date, sau crea una nou. Salvnd baza de date nainte s-o nchidei, v asigurai c totul este stocat n mod corespunztor pe disc. Este obligatoriu s nchidei o baz de date nainte de a deschide alta, fiindc n program nu se pot deschide simultan dou baze de date.

1.3 Tabele n mediul Access


Mai nti, trebuie s stabilii ce informaii dorii s punei n tabel. S privim de pild baza de date pentru vnztorii poteniali. Iniial, coninea un singur tabel cu adresele acestora. Acum este necesar s stocam numele, adresa, telefonul, judeul, oraul i totalul vnzrilor din ultimele ase luni. Cnd concepei tabelul, identificai un anume element al su care s fie diferit i unic pentru fiecare nregistrare; de pild, numrul i seria actului de identitate, numrul legitimaiei de serviciu, sau seria model a inventarului. Acest element unic va ocupa primul cmp al nregistrrii; ulterior el va fi utilizat drept cheie primar. Access folosete cmpul cheii primare la indexarea bazei de date. n exemplul nostru, vom utiliza primul cmp ca sa atribuim fiecarei persoane un numr de identificare. Primul cmp va fi campul cheii primare. De ce nu numele? Este preferabil sa nu folosii numele unei persoane drept cheie primar. n baza de date pot aparea dou persoane cu acelai nume. Access nu va permite ca dou inregistrri sa conin aceeai informaie n cmpul cheii primare. Proprietile n ansamblu ale tabelelor se introduc n fereastra Table Proprieties care apare prin acionarea butonului Proprieties din fereastra Table Design View. Aceste sunt: 1. Description (descriere) prezint explicaii privind o anumit tabel. Util la dicionare de date; 2. Validation Rule (regula de validare) sunt diverse reguli sau constrngeri care pot fi introduse cu ajutorul expresiilor i care se refer n ansamblu la o tabel. 3. Valdation Text (text de validare) reprezint textul care apare ntr-o caset de dialog n cazul n care sunt nclcate regulile de validare stabilite. Aceste reguli se stabilesc ulterior pentru fiecare cmp n parte; 4. Filter, este un filtru care se aplic tabelei ori de cte ori aceasta este deschis; 5. Order By (ordoneaz dup) reprezint o modalitate de ordonare care se aplic tabelei ori de cte ori aceasta este deschis. n continuare se stabilesc cmpurile tabelei: denumire cmp, tipul de dat i comentariul aferent(opional). Butoanele barei de stare din modul Design Table apar n figura 6. 1. Activare modul DataSheet; 2. Salvare date; 3. Cut; 4. Copy; 5. Paste; 6. Cheie primar; 7. Index; 8. Inserare linie; 9. tergere linie; 10. Proprieti; 11. Constuctor de cmp; 12. Afiare fereastr; 13. Obiect nou; 14. Help.

63

Din fereastra care apare prin activarea modului Table Design se definete denumirea cmpului tipul datei, comentariu i se alege cheia primar acionnd butonul corespunztor. Cheia primar este format dintr-un cmp sau mai multe cmpuri din tabel. n cazul c exist

3 4 5

6 7 8 9
Fig. 6

10 11 12 13 14

mai multe cmpuri se selecteaz aceste cmpuri (tasta C apsat i click pe cmpul dorit) dup care se acioneaz butonul Primary key. Proprietile cmpului se definesc n fereastra Table Design, panoul Field Proprieties conine urmtoarele opiuni: Field Size, opiunea n care se introduce dimensiunea cmpului, funcie de un anumit tip de dat. Este folosit pentru cmpurile de tip text i cmpurile de tip numeric; Format ofer posibilitatea alegerii dintr-o list derulant a unui format prestabilit, funcie de tipul de date ales. Nu se aplic cmpurilor de tip OLE Object; Decimal Places afecteaz afiarea cmpurilor, nu i valorile datelor din cmp, ea aplicndu-se doar cmpurilor de tip numeric (Number i Currency). Se poate alege setarea implicit Auto sau un numr cuprins ntre 0 i 15 ea definind numrul de zecimale ale cmpului; Input Mask (masc de intrare), sunt iruri de caractere similare celor folosite de proprietatea Format, care determin modul de afiare al datelor. Se poate declana un wizard pentru alegerea tipului de masc dorit; Caption (titlu) Schimb opional numele cmpului n modul de afiare al tabelului Datasheet View; Default value (valoarea iniial), reprezint valoarea iniial a unui cmp funcie de tipul su; Validation Rule (regula de validare) reprezint constrngerile care se aplic pe anumite cmpuri. Ea nu este disponibil pentru tipurile de date Auto Number, Memo, Ole Object; Validation Text reprezint textul care apare n cazul n care regula de validare este nclcat la introducerea datelor n tabel; Required (cerin), aceasta nseamn c n respectivul cmp trebuie introdus o valoare. Deci este practic identic cu clauza IS NOT NULL dac se introduce valoarea Yes; Indexed (indexat) permite alegerea dintre un index care permite valori duplicat i un index care nu permite valori duplicat. Se poate elimina un index existent (exceptnd un cmp cheie principal unic) alegnd opiunea No; Allow Zero Length (permite lungime zero) specific Access 2003 i se aplic doar cmpurilor de tip Text Memo. irul de caractere de lungime zero nu este acelai lucru cu valoarea Null. New Value (valori noi) specific pentru Access 2003 i se folosete doar pentru cmpuri de tip Auto Number i poate lua valorile: Increment valoarea cea mai mare a cmpului crete cu 1; Random valoarea cmpului se modific cu o valoare aleatoare; No nici unul din cazurile prezentate nu este valabil. Formate standard ale tipurilor de date Number Date/Time i Yes/No sunt prezentate n tabelul 2 64

Tabelul 2 Tipul datelor Number Number Number Number Number Number Date/Time Date/Time Date/Time Date/Time Date/Time Date/Time Date/Time Yes/No Yes/No Yes/No Yes/No Format General Number Currency Fixed Standard Percent Scientific General Date Long Date Medium Date Short Date Long Time Medium Time Short Time Yes/No True/False On/Off fr Aspect 1234.5 $1,234.50 12345 1,234.50 0.1234=12.34% 1.23E+03 10/1/98 4:00:00 PM Thursday, October 1, 1998 1-oct-98 10/1/98 4:00:00 PM 04:00 PM 16:00 Yes sau No True sau False On sau Off -1 sau 0

Valoarea Null n tabelele Access arat c acel cmp nu conine date. Aceast valoare nu este identic cu valoarea 0 sau cu un cmp text fr nici un caracter. Valoarea Null este util pentru a determina dac ntr-un cmp a fost introdus o valoare.
Formatele personalizate se realizeaz cu ajutorul unor caractere speciale numite placeholder. Cteva dintre aceste caractere sunt sunt prezentate n tabelul 3 Tabelul 3 Caractere Funcie placeholder ir gol Afiaz numrul fr nici o aranjare 0 Afiaz un digit sau zero. Poate fi folosit la fiarea cifrei 0 cu care ncep numerele ntregi i a celor care ncheie fraciile zecimale. 00000.000 01234.500 # Asemntor cu 0 doar c nu afiaz zerourile de la nceput sau sfrit #####.### -- 1234.5 $ Afiaz semnul dolar n poziia dorit. $###.###.00 --$1,234.50 % Multiplic valoarea cu 100 adaug semnul procent n poziia indicat cu caractere 0 i #. #.#0.00% afiseaz valoarea 0.12345 ca 12.35% (12.345 rotunjit la 12.35) ,(virgula) Adaug n iruri 0 sau # virgule pentru separarea miilor. ###,###.00 1,234.50 .(punctul Afiaz punctu zecimal n poziia indicat ntr-un ir placeholder de 0 zecimal) sau #. ##.## -- 1234.5 E-eAfiaz numerele n formatul tiinific cu semn numai pentru exponentul negativ E+e+ Afiaz numerele n formatul tiinific cu semn numai pentru exponentul pozitiv / Separ luna ziua anul m Indic modul de afiare al lunii din data calendaristic: 65

h,n,s : AM/PM @ & > < *

m afieaz 1 mm afieaz 01 mmm afieaz Jan mmmm afieaz January Indic modul de afiare al zilei din data calendaristic: d afeaz 1 dd afieaz 01 ddd afieaz Mon dddd afieaz Monday Indic modul de afiare al anului din datele calendaristice: yy afieaz 98 yyyy afieaz 1998 asemntor cu m,d,y pentru ora separ orele minutele i secundele n formatul or Afieaz ora n formatul de 12 ore Indic necesitatea unui caracter n acea poziie dintr-un cmp text sau memo. De exemplu un numr de telefon:@@@-@@@@@@ Arat c un caracter dint-u cmp text sau memo este opional Transform n majuscule toate caracterele textului din cmp Transform n litere mici toate caracterele textului Afieaz caracterul care urmeaz asteriscului ca un caracter de completare a spaiilor libere dintr-un cmp ABCD*x apare ntr-un cmp de 8 caractere ca ABCDxxxx.

Exemple mmmm dd,yyyy - hh:nn pentru schimbarea modului de afiare al datei: December 08,1948 - 00:00 $###,###,##0.00 - 1234567.89$ se transform n $1,234,567.89; (###,###,##0.00) -1234567.89 se transform n $(1,234,567.89); semnul > transform caracterele mici n caractere mari pentru formatul de afiare abc = ABC; semnul < transform caracterele mari n caractere mici ABC = abc; @@@@-@@@@@@ transform n afiare 12345678910 = 1234-5678910; #.##Lei transform n afiare 1234 = 1.23Lei; ###E+ afieaz mantisa pe trei caractere 0.29 = 290E 3; d-m-yy afieaz data calendaristic n formatul z-l-aa 07/03/99 = 3-7-99 Utilizarea mtilor de intrare la introducerea datelor este folosit de Access pentru a permite limitarea la numere datele introduse n cmpurile de tip Text sau s controlai n alt fel aranjarea lor. Spre deosebire de Format, Input Mask nu permite tastarea n interiorul cmpurilor a caracterelor care contravin cu masca de intrare stabilit. n tabelul urmtor sunt prezentate caracterele placeholder care se folosesc pentru a aranja cmpurile ce conin iruri de caractere, ntr-o prezentare dorit. Aceste caractere sunt prezentate n tabelul 4. Tabelul 4 Caractere placeholder Empty String Funcie Nici o masc de intrare 66

0 9 # L ? A a & C .,:;/() > < ! \ Exemple

Necesit introducerea unui numr 0-9 sau a unui semn (+/-) Introducerea opional a unui numr Introducerea opional a unui numr sau a unui spaiu Este necesar introducerea unei litere Litera (A-z) nu este necesar Necesit introducerea unei litere sau a unui numr Introducerea opional a unei litere (A-z) sau a unui numr (0-9) Necesit inroducerea oricrui caracter sau a unui spaiu Introducerea oional a oricrui caracter sau a unui spaiu Separatori speciali, caractere literale pentru zecimale , mii, dat or Toate caracterele spre dreapta sunt transformate n majuscule Toate caracterele spre dreapta sunt transformate n liter mici Complecteaz masca de la dreapta la stnga Precede celelalte caractere placeholder pentru a introduce caractere literale n formatul ir

000000 numr format din 6 cifre; 999999 asemntor dar permite ca numrul cifrelor din masc s fie mai mic; ####### - apte cifre dar permite i folosirea caracterelor spaiu sau operatorii + i - LLLLL permite introducerea a cinci litere; ?????? permite introducerea a ase litere sau a caracterului spaiu; AAAAAA permite introducerea a ase litere sau a cifrelor. Dac ai realizat deja o baz de date utiliznd paii artai anterioar, deschidei-o dup cum urmeaz: 1. Alegei Open Database din meniul File, sau executai click pe butonul Open Database din bara cu instrumente de lucru. 2. Alegei unitatea de disc i catalogul, dac este necesar, apoi alegei baza de date din lista File Name. 3. Executai click pe OK, sau apasai Enter. Apare fereastra bazei de date (fig. 5). Dac n-ai creat nc o baz de date, o putei face alegand New Database din meniul File. Pentru a continua exemplul propus, introducei Desfacere n caseta de text File Name, apoi alegei OK.

Fig. 7

Asigurai-v c lista afiat n caseta de dialog poarta titlul Tables. Dac acesta nu apare, executai click pe butonul Table din partea stng a casetei de dialog (fig. 5). Pentru a crea un tabel nou, alegei butonul New. Va aprea caseta de dialog New Table. Alegei butonul New Table ca s creai un tabel simplu. Microsoft Access deschide o nou fereastra Table n modul Design (fig. 7). Putei folosi aceasta fereastra pentru a crea structura tabelului dorit. Modul Design constituie o afiare a unui tabel, formular, cerere sau raport, care va permite s67

i modificai structura de baza. Modul Foaie de Date sau Datasheet asigur afiarea datelor dintr-un tabel, cerere sau formular, ns nu v permite modificarea structurii. Definii un tabel, comunicnd programului Access care va fi structura acestuia. Structura este alcatuit din cmpuri; pentru fiecare din ele trebuie s specificai o denumire (de exemplu TELEFON sau NUME) i un tip de date (de pilda, Text sau Number). De asemenea, dac dorii, putei introduce o descriere simpl. Access folosete opt tipuri de date: Text indic text i numere care nu sunt folosite n calcule; Memo indic texte lungi (fraze); Date/Time este folosit pentru date calendaristice; Number indic numere folosite n calcule; Currency este folosit pentru valori bneti; Counter este folosit pentru un numr ntreg mrit n mod automat; Yes/no indic valori logice care pot fi adevarate sau false; OLE Object este utilizat pentru un obiect inserat; Pentru lista noastr, vom folosi urmtoarele cmpuri: Numele cmpului Tip Descriere Marca Number Marca de identificare Nume Text Numele vnztorului Prenume Text Prenumele vnztorului Adresa Text Adresa vnztorului Oras Text Oraul vnztorului Judet Text Judeul vnztorului Cod_Postal Number Codul potal Telefon Text Numrul de telefon Vanzari Currency Vnzrile n ultimele ase luni Pentru a crea structura bazei de date, urmai aceste instruciuni: 1. Deplasai cursorul n caseta de text a primului camp i introducei denumirea. (De exemplu, introducei marca.) 2. Apsai jsauT, ca s v deplasai pe coloana Data Type (tipul de date). 3. Se va afia valoarea prestabilit Text. Daca dorii s folosii tipul de date Text, apasai jsauT i trecei la urmtoarea coloan. Dac dorii alt tip de date, executai click pe sgeata descendent din coloana Data Type, sau apasai A+b, ca sa deschidei caseta lista Data Type. Pentru acest exemplu, alegei Number din caseta lista. 4. Dac este necesar, deplasai-v pe ultima coloan i introducei o descriere a acestui cmp. Pentru exemplul nostru, introducei Marca de identificare.

5. Trecei la rndul urmtor i introducei informaiile pentru al doilea cmp. Continuai pn ce ai definit toate cmpurile (fig. 8).

68

Fig

1.3.1 Stabilirea proprietilor de cmp


Pentru fiecare cmp dintr-un tabel, trebuie s prevedei anumite proprieti. Ai denumit deja cmpurile; de acum, singurele pentru care trebuie s stabilii proprietai sunt: Marca, Cod_Postal, Judet i Vanzari. Cmpurile text nu trebuie caracterizate n acest exemplu. Proprietatea este caracteristica unui obiect: de pild, mrimea, culoarea sau numele. Pentru a stabili proprietaile, procedai astfel: 1. Ca s stabilii formatul cmpului Marca, executai click pe orice celul de pe rndul cmpului respectiv. Caseta Field Properties din josul ecranului va afia proprietaile actuale ale cmpului. 2. Executai click pe caseta F'ield Size i va aparea o sgeat. Executai click pe ea (sau apasai A+b) pentru a afia opiunile. 3. Alegei Long Integer, pentru a anuna programul c vei utiliza doar numere intregi. 4. Executai click pe orice celula din cmpul Cod_Postal i modificai mrimea cmpului n Long Integer, repetnd paii 2 i 3. 5. Executai click pe orice celul din cmpul Jude i modificai mrimea cmpului n Integer. 6. Pentru a stabili formatul pentru Vanzari, executai click pe oricare celula din randul Vanzari, apoi pe caseta de proprietai Format. 7. Dac formatul curent nu este Currency, selectai-l din caseta-list.

2.3.2 Stabilirea cheii primare


Pentru etapa urmtoare, este necesar s stabilii cheia primar. Valoarea din acest cmp va fi unic pentru fiecare nregistrare n parte, ceea ce permite un acces mai rapid la nregistrri. Microsoft Access realizeaz acest lucru crend un index pe cmpul cheii primare. Ca sa stabilii cheia primar, procedai astfel: 1. Asigurai-v c tabelul se afl n modul Design. n caz contrar, executai click pe butonul Design View din bara cu instrumente de lucru; 2. Executai click oriunde n randul cmpului pe care dorii s-l folosii drept index. n exemplul de faa, executai click oriunde n rndul Marca; 69

3. Executai click pe butonul Primary Key din bara cu instrumente de lucru. n zona selectorului de rnd, va aprea o pictograma "cheie" n dreptul primului cmp Dac dorii s salvai tabelul fr o cheie primar Access v va ntreba dac dori s creai una nainte de salvare. Dac se rspunde cu Yes se va crea un nou cmp de tip Counter care va prelua rolul de cheie primar. Dup terminarea lucrului cu un tabel acesta poate fi salvat astfel: 1. Din meniul File se alege opiunea Save AS sau se execut click pe butonul Save de pe bara cu instrumente; 2. Introducei numele tabelului; 3. Alegei OK sau apsai j.

1.3.3 Prelucrarea datelor ntr-un tabel


n continuare vei afla cum se introduc nregistrarile ntr-un tabel i cum se tiparesc. nainte de a putea aduga nregistrri unui tabel, trebuie s deschidei baza de date (daca n-ai facut-o deja) i tabelul. Pentru a deschide o baz de date, alegei Open Database din meniul File, sau executai click pe butonul Open Database. Selectai baza de date dorit i alegei OK. Putei folosi tasta ! ca sa revenii rapid la orice fereastra Database deschis. Dup ce ai deschis o baz de date, examinai fereastra Database. Asigurai-v c deasupra casetei-lista apare cuvntul Tables. Dac aceasta nu exist, executai click pe butonul Tables din stnga casetei-lista. Acum, lista afieaz obiectele tabelului curent din baza de date. Executai click dublu pe numele tabelului dorit, sau selectai tabelul dorit (de exemplu Vanzari), apoi selectai Open. Tabelul se deschide, afind rnduri i coloane goale, similar unei foi de calcul. Acesta este modul Foaie de date (Datasheet View). Modul Datasheet Tabel ce afieaz datele n coloane i rnduri, cu rndurile drept nregistrri, iar coloanele drept cmpuri (fig. 9). Pentru a trece modul Design n Foaie de date (Datasheet), executai un click pe butonul Datasheet din bara de instrumente de lucru.

Fig

Dac ai creat un tabel nou, el nu va conine nici o nregistrare. Pentru a introduce o nregistrare, completai celulele din primul rnd. Folosii j i f, sau tastele cu sgei pentru a deplasa cursorul de la o coloan la alta pe masur ce introducei datele. Apasnd S+f, v deplasai napoi pe coloane. Dup ce ai completat introducerea unei nregistrri, putei apsa tasta Tab, ca s v mutai pe primul cmp al urmtoarei nregistrri i s-o introducei pe aceasta. Continuai pn ce ai introdus toate nregistrrile dorite. Dac un tabel conine deja nregistrri, orice alte nregistrri pe care le vei aduga vor fi plasate la sfritul tabelului. De exemplu, la sfritul tabelului Vinzari, pe care l-ai creat, vei vedea un asterisc ce marcheaza o nregistrare goal. Pentru a aduga o nregistrare, completai acest rnd, care dup aceea va deschide o nou nregistrare goal. n zona de 70

selectare a nregistrrilor din stnga primului cmp, un triunghi mic marcheaz nregistrarea curent. Dac ncepei s introducei o nou nregistrare fr s fi trecut pe rndul gol, vei scrie peste datele din inregistrarea curent. ntr-un asemenea caz, putei terge datele noi, selectndu-le i alegnd Undo Saved Records din meniul Edit. Datele noi sunt terse, fiind readuse cele vechi. Cnd terminai de adugat nregistrri, nchidei tabelul i baza de date. Microsoft Access v salveaz nregistrrile pe disc, pe msur ce le introducei. De fiecare dat cnd deplasai cursorul pe urmtoarea nregistrare, programul salveaz n mod automat nregistrarea introdus (ori modificat). Dup ce ai terminat de introdus date, trebuie s nchidei tabelul i baza de date. n acest fel va asigurai c totul este salvat n mod corespunzator pe disc i nu s-au pierdut date. Pentru a nchide tabelul, procedai astfel: 1. Alegei Close din meniul File. Tabelul e salvat pe disc i nu mai apare afiat. 2. Dupa ce ai terminat i cu baza de date, nchidei-o, alegnd Close Database din meniul File.

Dup ce ai introdus nregistrri, s-ar putea s descoperii unele erori ce trebuie corectate. Din fericire, deplasarea in interiorul unei foi de date este simpl. Ca s mutai cursorul, putei utiliza tastele de comenzi rapide.
Pentru ca S deplasai cursorul de la stnga la dreapta ntre cmpurile unei nregistrri Shift+Tab S+f S deplasai cursorul de la dreapta la stnga ntre cmpurile unei nregistrri Tastele cu sgei S v deplasai n sus, n jos, la dreapta ori la stnga Page Up u S derulai o foaie de date n sus ecran cu ecran Page Down d S derulai o foaie de date n jos ecran cu ecran Home h S deplasai cursorul la nceputul nregistrrii curente End e S deplasai cursorul la sfritul nregistrrii curente Ctrl+Home C+h S deplasai cursorul la primul cmp al primei nregistrri Ctrl+End C+e S deplasai cursorul la ultimul cmp al ultimei nregistrri Ctrl+PageUp C+u S v deplasai cu un ecran la stnga Ctrl+Page Down C+d S v deplasai cu un ecran la dreapta De asemenea, putei folosi mouse-ul ca s selectai orice cmp al unei nregistrri pe care dorii s-o editai; pur i simplu, executai click pe cmpul dorit. Putei executa click pe sgeile din barele de derulare, ca s derulai n sus, n jos, la stnga sau la dreapta cu cte un rnd sau o coloan. Similar, executand click n interiorul barei, putei deplasa un ntreg ecran, sau deplasa casetele de derulare pe o alta poziie. Atunci cnd mutai caseta de derulare, ecranul se deplaseaz corespunzator. Pentru a edita o nregistrare dintr-o foaie de date, mai nti selectai cmpul pe care dorii s-l editai. Utiliznd mouseul, putei poziiona cursorul oriunde n cmp. Pentru a v deplasa la un cmp, putei folosi tastatura, fcnd unul din urmtoarele lucruri: S nlocuii datele existente. Daca datele din cmp sunt selectate, putei ncepe introducerea altor date. Zona selectat este tearsa i apar noile date. S pstrai datele existente Dac datele din cmp sunt selectate, ns nu dorii s tergei totul, apsai 2 aceasta va permite s v deplasai prin cmp cu ajutorul tastelor cu sgei. Dup ce terminai, apsai iarai 2. Dac dorii s tergei complet o nregistrare, executai click pe caseta selectorului de rnd din stnga nregistrrii. n caset va aprea o sgeat i ntreaga nregistrare se selecteaz. Din meniul Edit, alegei Delete, sau apsai tasta D. Apare o caset de dialog care va cere s confirmai aciunea. Selectai OK. ntruct Access sorteaz baza de date dup cmpul cheii primare, noile nregistrri sunt inserate n mod automat la locul cuvenit. Dac folosii numere consecutive drept valori Tab f 71 Apsai

ale cheii primare, va trebui s renumerotai nregistrrile, pentru a o cuprinde i pe cea nou (dac nu este ultima). De exemplu, s presupunem ca avei zece nregistrari i trebuie s inserai o alt nregistrare la numarul opt. Atunci, schimbai valorile cheii primare din nregistrarile opt, nou i zece. Dup aceea, introducei noua nregistrare n ultimul rnd al tabelului, folosind o valoare diferit n cmpul cheii primare. Cnd Access salveaza tabelul, el va aranja nregistrrile n ordine secvenial. Pentru a simplifica editarea, putei utiliza meniul Edit, ca s "decupai" (s tergei) sau s copiai un material selectat, pe care dup aceea l "lipii" (l inserai). Decuparea unei selecii va muta datele din foaia de date n memoria-tampon "Clipboard". Copierea unei selecii pstreaza datele n poziia iniial i, simultan, transfer o copie a lor n Clipboard. Copierea datelor din Clipboard se face prin "lipirea" lor n foaia de date. Clipboard este o zon n care datele pe care le decupai sau copiai sunt stocate temporar. Atunci cnd inserai datele n alt loc, ele rmn disponibile n Clipboard, pentru alte lipiri, pn ce decupai sau copiai altceva. n felul acesta, putei utiliza comanda Paste n mod repetat, fr a fi nevoii s decupai, s lipii mereu aceleai date. Cnd prsii Windows, coninutul memoriei Clipboard dispare. De exemplu, considerm baza de date prezentat anterior. Dup ce ai introdus nregistrrile, v dai seama ca numrul Marca al lui Oaida Valentin este de fapt 100, iar cel al lui Ionescu Nicolae este 100. Putei muta nregistrarea lui Oaid Valentin, folosind comanda Cut. Procedai astfel: 1. Selectai datele care trebuie mutate. n cazul de fa, executai click pe caseta selectoare de rnd din stnga rndului pentru a selecta ntreaga nregistrare a lui Ionescu Nicolae. 2. Deschidei meniul Edit i alegei Cut. 3. Apare o caseta de dialog, care va cere confirmarea modificrilor. Selectati OK. 4. Ca s inserai selecia n alt loc, mai nti poziionai cursorul n rndul respectiv. n acest exemplu, deplasai cursorul pe rndul de sub nregistrarea lui Oaid Valentin. 5. Selectai o zon care are exact aceeai mrime cu zona decupat n exemplul de fa, executnd click pe caseta de selectare a rndurilor, selectai ntregul rnd. 6. Alegei Paste din meniul Edit. Acum, pentru ca baza de date s fie corect, mai trebuie doar s schimbai numerele din cmpul Marca pentru Ionescu Nicolae i Oaid Valentin. Copierea unor date selectate este similar cu decuparea lor. Singura diferena este faptul ca datele nu sunt terse din pozitia iniial. Pentru a copia date, procedai astfel: 1. Selectai datele pe care intenionai s le copiai. 2. Din meniul Edit, alegei Copy. Asigurai-v c zona selectat n care vei lipi datele are aceeai mrime cu zona datelor pe care le-ai copiat n Clipboard. 3. Alegei Paste din meniul Edit. Dac intenionai s copiai o ntreag nregistrare n alt locaie, asigurai-v c ai modificat datele din cmpul cheii primare. Trebuie s avei informaii diferite mcar n acest cmp, astfel nct Access s poat diferenia nregistrrile. Dac dorii s lipii datele copiate sau decupate la sfritul foii de date, alegei Paste Append din meniul Edit. Automat, datele sunt lipite n ultima nregistrare a foii de date.

1.3.4 Modificarea structurii i prezentrii unui tabel


Modificarea structurii tabelelor nu duce la pierderea datelor, dect dac tergei un cmp sau i modificai proprietile, n aa fel nct, noul format s nu accepte datele existente. Ca msur de sigurana, salvai ntotdeauna o baz de date nainte s modificai structura unui tabel din ea. Lucrul acesta se face copiind baza de date pe o discheta de rezerv. 72

Dac dorii s modificai structura unui tabel, executai click pe Design View (modul Structura), butonul din bara cu instrumente de lucru, ca s trecei tabelul n modul Design. Cmpurile reprezint ntr-un tabel coloanele i conn informaii despre toate elementele tabloului. nregistrrile sunt stocate sub form de rnduri i conin informaii legate de un anumit element. Pentru a terge un cmp trebuie procedat astfel: 1. Deschidei baza de date; 2. Executai click pe numele tabelului dorit i pe Design; 3. Executai click pe selectorul de rnd, pentru rndul cmpului ce trebuie ters sau folosii tastele cu sgei i apsai M+s pentru a activa selectorul de rnd; 4. Alegei Delete Row din meniul Edit sau apsai tasta Del; 5. Alegei OK, atunci cnd se afieaz cererea de confirmare; Cmpul i toate datele din el sunt terse. Selectorul de rnd este indicatorul triunghiular din stnga primei coloane a tabelului. Dup ce tergei un camp, toate datele din el sunt pierdute. Datele din alte campuri nu vor fi afectate. Daca avei nevoie s recuperai un cmp ters, trebuie s cerei imediat Undo delete din meniul Edit.

Dup ce ai conceput un tabel, putei dori s adugai un cmp nou. De pild, s presupunem c ai creat o baz de date pentru membrii unui club i, ulterior, intenionai s introducei nc un cmp pentru data intrrii n club.
Microsoft Access va permite s adugai oricnd cmpuri noi, far s pierdei datele din cmpurile existente. Pentru a aduga un cmp: 1. Dac e necesar, trecei n modul Design. Pentru aceasta, executai click pe butonul Design View din bara cu instrumente de lucru, sau alegei Table Design din meniul View. 2. Executai click pe selectorul de rnd pentru rndul aflat sub locul unde dorii s adugai noul cmp (ori folosii tastele cu sgei ca s v deplasai pn la rndul respectiv, apoi apsai S+s); 3. Alegei Insert Row din meniul Edit, sau apsai tasta I
4. Definii noul cmp, introducndu-i denumirea, tipul de date i descrierea.

Uneori putei dori s rearanjai cmpurile unui tabel. De pild, s mutai un cmp primar (folosit pentru index), aa nct s-l putei utiliza ca prim cmp, sau (n exemplul bazei noastre de date) s mutai cmpul numerelor de telefon naintea cmpului cu adresa. 1. Dac este necesar, trecei n modul Design. Pentru aceasta, executai click pe butonul Design View din bara cu instrumente de lucru, sau alegei Table Design din meniul View. 2. Selectai ntregul rnd al cmpului pe care dorii s-l deplasai. 3. Executai click pe selectorul de rnd i inei apsat butonul stang al mousului. Apoi deplasai rndul. Cnd acesta ajunge n locul dorit, eliberai butonul mousului. Dac apreciai c mutarea nu s-a facut acolo unde doreai, o putei anula, alegnd imediat (Undo Move din meniul Edit). Modificarea reprezentrii tabelului afecteaz ceea ce vedei n modul Foaie de date, dar nu-i schimb structura fundamental. De exemplu, putei micora o coloana, ns structura nu se modific, iar datele din coloana micorat nu sunt trunchiate. Uneori putei dori s schimbai locul unde apare un cmp ntr-o foaie de date, fr a schimba ordinea structurii. De pild, s pstrai o cheie primar drept prim cmp al structurii, dar s-i conferii o poziie mai convenabil pe foaia de date. Ca sa modificai poziia unui cmp pe foaia de date, procedai astfel: 1. Cu tabelul in modul Foaie de date, poziionai cursorul pe selectorul de cmp (zona cu numele cmpului de deasupra rndului). Cursorul devine o sgeata descendent; 2. Executai click pe selectorul de cmp, pentru a seleciona intregul cmp; 3. Executai click pe selectorul de camp, inei apsat butonul stang al mousului i 73

deplasai coloana n noua poziie; 4. Ca s deselectai cmpul, executai click oriunde n alt parte pe foaia de date. Unui cmp reordonat nu i se poate aplica Undo, totui reordonarea nu distruge datele. Dac facei vreo greeala, reordonai cmpurile, ca s le readucei la situaia iniial. Modificarea limii coloanelor cmpurilor ofer posibilitatea de afiare simultan a mai multor date n fereastra. Ca s redimensionai laimea coloanei unui cmp, procedai dup cum urmeaz: 1. Poziionai cursorul n dreapta coloanei pe care dorii s-o redimensionai, pe linia dintre numele cmpurilor. Cursorul se modific, indicnd c latura poate fi mutat; 2. Deplasai linia pn ce coloana capt dimensiunile dorite. Putei redimensiona un rnd n acelai fel, deplasnd linia ce separ rndurile. Atenie ns: redimensionarea unui rnd afecteaz toate rndurile, care se redimensioneaz simultan. Putei folosi comanda Save Table din meniul File, pentru a salva noua aezare n pagin. Dup ce ai modificat structura bazei de date, alegei Close Database din meniul File, ca s salvai modificrile.

1.3.5 Proprieti de ansamblu ale tabelelor


Proprietile n ansamblu ale tabelelor se introduc n fereastra Table Proprieties care apare prin acionarea butonului Proprieties din fereastra Table Design View. Aceste sunt: 1. Description (descriere) prezint explicaii privind o anumit tabel. Util la dicionare de date; 2. Validation Rule (regula de validare) sunt diverse reguli sau constrngeri care pot fi introduse cu ajutorul expresiilor i care se refer n ansamblu la o tabel; 3. Valdation Text (text de validare) reprezint textul care apare ntr-o caset de dialog n cazul n care sunt nclcate regulile de validare stabilite. Aceste reguli se stabilesc ulterior pentru fiecare cmp n parte; 4. Filter, este un filtru care se aplic tabelei ori de cte ori aceasta este deschis;

1.4 Relaiile ntre tabele


Relaiile dintre tabelele existente ntr-o baz de date ACCESS pot fi de mai multe feluri: one to one; one to many; many to one; many to many. Dou cmpuri care particip la o relaie trebuie s aib acelai tip de dat, sau cu alte cuvinte atributele trebuie s aib acelai domeniu. n cazul cmpului de tip Number, lungimea acestora trebuie s fie identic. n cazul n care dou tabele sunt asociate prin intermediul unui cmp de tip text, este permis ca lungimea acestora s fie diferit. Totui acest lucru poate genera neclariti n cazul interogrilor astfel nct este indicat s se foloseasc cmpuri de aceeai lungime. Access folosete la afiarea i crearea relaiilor o fereastr grafic numit Relationship. Etapele pentru crearea unei noi relaii ntre dou tabele sunt : 1. Se activeaz fereastra bazei de date (click pe butonul Database) 2. Se execut click pe butonul Relationship de pe bara cu instrumente. Va apare fereastra relationship. n aceast fereastr sunt afiate toate tabelele pentru care sunt definite relaii.

74

3. Cu ajutorul butonului Show Table pot fi adugate noi tabele n fereastra Relationship;

4. O anumit relaie ntre dou tabele se realizeaz fcnd click pe cmpul dorit i apoi innd butonul apsat plimbm mouse-ul peste cmpul unde dorim s realizm relaia. n final apare urmtoarea caset de dialog 5. Dac se alege tipul de relaie Join va aprea fereastra

Aceast fereastr are urmtoarele opiuni: 1. Creare de asociere de tipul one-to- many. Numai acele tuple pentru care cmpul de legtur este egal; 2. Include toate articolele din fiierul Angajat i acele articole din fiierul Copii pentru care cmpurile de legtur sunt egale; 3. Include toate articolele din Copii i numai acele articole din Angajat unde cmpurile de legtur sunt egale. Mediul Access realizeaz automat integritatea referenial. Aceast aciune mpiedic utilizatorul s modifice sau s terg o tupl dintr-o tabel fr s fie afectate i celelalte tuple din tabelele cu care acesta se gsete ntr-o relaie. Meninerea integritatii refereniale se realizeaz astfel: se alege din fereastra Relationship, semaforul Enforce Referential Integrity i se marcheaz casetele de validare Cascade Update Related Fields (actualizare 75

n cascad a cmpurilor asociate) i Cascade Delete Related Records (tergerea n cascad a nregistrrilor asociate).

1.5 Filtrarea datelor dintr-o tabel


n loc s examinai (utiliznd comanda Find) una cte una toate nregistrrile ce conin anumite informaii, putei cere ca acestea s fie afiate simultan; sau dorii s specificai criterii n mai multe cmpuri. n oricare din aceste cazuri, folosii un filtru pentru a crea un subset cu anumite date. Filtrul utilizeaz datele pe care le-ai precizat n scopul de a forma, cu anumite nregistrri, o foaie de date temporar numit subset.Un grup de nregistrri care conin datele specificate n filtru se numete subset. De exemplu, s presupunem c dorii s vedei un subset al nregistrrilor din tabela Vnzri a bazei de date. Se dorete vizualizarea numai a acelor nregistrri pentru care cmpul Judet are valoarea SB i cmpul Oras are valoarea Sibiu. nregistrrile se vor afia n ordinea cmpului Marca. Pentru a crea filtrul, procedai astfel: 1. Deschidei baza de date i tabela Vanzari, dac nu este deja deschis; 2. Executai click pe butonul Edit Filter/Sort (Editare Filtru/Sortare) din bara cu instrumente de lucru, sau alegei Edit Filter/Sort din meniul Records. Se deschide fereastra Filter (fig. 10); 3. Calculele nu sunt permise! Putei defini criteriile i selecta ordinea de sortare, dar nu putei efectua calcule. 4. Din lista cmpurilor, deplasai cmpul dorit n rndul Field. In exemplul nostru, deplasai prima dat cmpul Jude n prima celul din prima coloan, apoi cmpul Oras n rndul Field din cea de a doua coloan i cmpul Marca n cea de a treia coloan; 5. n rndul Criteria, introducei datele care trebuie cutate. De pild, introducnd irul de caractere Sibiu n coloana 2, anunai programul s caute toate cmpurile Ora ce conin aceast valoare. 6. Deschidei lista derulant din rndul Sort i selectai ordinea de sortare. n exemplul nostru, vei alege Descending (descresctor), pentru cmpul Judet i cresctor pentru cmpul Marca; 7. Pentru a vedea subsetul, executai click pe butonul Apply Filter/Sort (Aplicare Filtru/Sortare) din bara cu instrumente de lucru, sau alegei Apply Filter/Sort din meniul Records (fig. 11). Un subset reprezint doar o foaie temporar de date. Atunci cnd creai un filtru, nu modificai datele. Access pur i simplu extrage din tabel informaiile dorite i le afieaz ntro form mai uor de ne!es. ntrucat subseturile sunt temporare, ele nu pot fi salvate. Cu toate acestea, filtrele care creeaz subseturi se pot salva sub forma de cereri. Pentru a salva un filtru, selectai Save As Query din meniul File, cnd v aflai n fereastra Filter. Atribuii un nume filtrului, apoi apsai R, sau executai click pe OK.

76

Fig

11

Fig 12 Un filtru poate fi salvat sub forma unei interogri, putnd fi folosit ulterior n cadrul unei aplicaii. Un al doilea exemplu de filtru prezint modul n care se realizeaz o fereastr prin care se introduc informaii de interogare. Se va realiza un filtru prin care sunt vizualizai toi vnzatorii a cror nume incepe cu o anumit liter. Pentru acest exemplu se folosesc funcii specifice mediului ca de exemplu funcia Left. Cmpurile care apar ntr-o expresie a unei funcii trebuie ncadrate ntre paranteze mari [ i ]. Textul care apare n fereastr trebuie de asemenea ncadrat ntre paranteze mari.

Fig 13 n Access 2003 filtrrile sunt de trei tipuri i anume: Filter by Selection (filtrare conform seleciei) este cea mai simpl metod de filtrare, ea aplicndu-se doar asupra unui singur cmp al tabelei. Se alege din cmpul dorit un singur caracter sau mai multe caractere i se face click pe butonul Filter by Selection fiind afiate doar acele nregistrri care ndeplinesc condiia stabilit. De exemplu dac avem o tabel care conine date despre angajai i dorim s afim toi angajaii a cror nume ncepe cu I se selecteaz dintr-un caracterul I dintr-un nume care ncepe cu I i se face click pe butonul respectiv. Dac se alege I din interiorul unui nume atunci se vor afia toate nregistrrile care au n cmpul nume litera i. Dac se alege caracterul I de la sfritul numelui, atunci vor fi afiate toate nregistrrile a cror nume se termin cu litera i. Aceast metod de filtrare mai poate fi aleas i din meniul Record, opiunea Filter i subopiunea Filter by Selection. Filter by Form (filtrare conform formularului) permite aplicarea criteriului de filtrare n mai multe cmpuri. De asemenea permite ca n acelai cmp s putem avea mai multe condiii legate ntre ele prin operatorul logic OR. Pentru a activa aceast metod se face click pe butonul Filter by Form sau se alege opiunea Record din meniul mediului, opiunea Filter i opiunea Filter by Form. De exemplu dac exist o tabel n care se 77

ine evidena mai multor firme din diferite ri i orae i dorim s afim firmele din Romania i Germania se procedeaz astfel: se face click pe butonul Filter by Form, din cmpul ri se alege Romania dup care se face click pe butonul OR din partea de jos a ferestrei i se alege nc o ar i anume Germania. Se face click pe butonul Applay Filter i pe ecran apare o fereastr ce poate fi listat n care se gsesc doar firmele din cele dou ri. Dac de exemplu, se dorete vizualizarea firmelor din Romania i oraul Sibiu, atunci aceste dou informaii se aleg n fereastra Filter by Form, din cmpurile orae i ri. Rezultatul este vizualizarea firmelor din Romania oraul Sibiu. Pentru a forma expresii mai complexe de filtrare se folosesc funcii Built In ale mediului Access sau diverse funcii utilizator. Pentru a nu avea surpize c filtrrile alese nu merg se alege opiunea Edit, Clear Filter sau se face click pe butonul Clear Grid din fereastra Filter by Form Advanced Filter/Sort (Filtrare ordonat avansat) este cea mai puternic dar i cea mai dificil metod de filtrare. Cu ajutorul acestei metode se poate face pe lng filtrare i o operaie de sortare. O astfel de metod se aseaman mult cu o metod de interogare dar totui diferenele sunt urmtoarele: caseta Show Table nu apare; butonul SQL lipsete de pe bara de instrumente Pentru acest tip de sortare nu exist buton pe bara de instrumente. Ea poate fi apelat din meniul Record, Filter, Advanced Filter/Sort

1.6 Ordonarea datelor n tabele


O cerin fundamental a mediului de dezvoltare al bazelor de date este capacitatea de a ordona rapid nregistrrile, astfel nct ele s apar n succesiunea dorit. n mod implicit Access afieaz datele n ordinea n care ele au fost introduse. n cazul n care n tabel se gsete o cheie primar, el va afia datele n ordinea cheii primare. Dac tabela pe care dorim s o ordonm conine mai multe cmpuri dect pot fi afiate n fereastra Datasheet, unele cmpuri pot fi ngheate folosind opiunea Freeze Columns din meniul Format. Cmpurile ngheate rmn pe ecran putnd fi vizualizate alte cmpuri existente n tabel. Dac se dorete ordonarea unei tabele dup un singur cmp se selecteaz cmpul dorit dup care se apas butonul de ordonare cresctoare sau descresctoare. Dac se dorete ordonarea dup mai multe cmpuri atunci se selecteaz aceste cmpuri i se execut ordonarea. n mod automat prioritatea de ordonare se acord cmpului selectat cel mai din stnga. Pentru o vizualizare ordonat dup mai multe cmpuri se alege cmpul cel mai prioritar i duce n partea stng dup care se alege urmtorul cmp ca nivel de prioritate i se procedeaz la fel etc. Dezghearea coloanelor ngheate se realizeaz cu comanda Unfreeze All Columns.

1.7 Personalizarea modului Datasheet View


Dac se dorete ca modul Datasheet s fie vizualizat el poate fi personalizat prin ascunderea cmpurilor care nu se doresc a fi listate, eliminarea liniilor grilei, selectnd un font diferit i schimbnd nlimea rndurilor. Pentru a ascunde un cmp se selecteaz cmpul sau se poziioneaz cursorul n el dup care se alege din opiunea Format, Hide Columns. Pentru a dezvlui cmpurile ascunse se alege opiunea Unhide Columns;

78

Pentru a schimba fontul folosit la afiarea foii de date se alege opiunea Format, Font; Pentru a elimina liniile grilei se poate folosi opiunea Format Cells.n aceast caset de dialog se vor afia opiuni pentru distrugerea liniaturii pe vertical sau pe orizontal, sau de a schimba modul de prezentare; Pentru a schimba nlimea rndurilor afiate i tiprite se poate plasa mouseul pe latura de jos a unei tuple i se trage pn la ajustarea dorit. Acelai lucru se poate realiza i prin alegerea opiunii Format, Rowheight (nalimea rndului) sau Column Width pentru mrirea limii coloanelor. Se alege apoi Best Fit (potrivire optim), pentru a permite programului Access stabilirea dimensiunilor optime.

79

LIMBAJUL S.Q.L.
Limbajul SQL, este un limbaj utilizat n mod obinuit n gestionarea bazelor de date client/server. Principalul avantaj oferit de limbajul SQL este standardizarea. Se poate folosi un set obinuit de instruciuni SQL n oricare din sistemele de gestionare a bazelor de date, compatibile SQL. SQL este un limbaj concis care conine aproximativ 100 de cuvinte cheie n standardul ANSI pentru SQL (ANSI - American National Standards Institute), dar este complect relaional. Un limbaj este complect relaional dac instruciunile sale sunt suficient de puternice pentru a extrage rezultatele oricrei relaii definite prin intermediul expresiilor de calcul relaional. Instruciunile limbajului sunt mprite n patru instruciuni de definire a datelor DDL (Data Definition Language): CREATE, ALTER, DROP, INSERT i 20 de instruciuni de manipulare a datelor DML (Data Manipulation Language): SELECT, UPDATE, DELETE etc. Limbajul mai permite instruciuni pentru interogarea datelor,controlul cursorului, procesarea tranzaciilor, i administrarea sau controlul bazei de date SQL este un limbaj orientat ctre mulimi de date, spre deosebire de limbajele din familia Xbase care sunt orientate pe nregistrare (tupl), avnd ntodeauna ca rezultat o relaie. SQL lucreaz cu tabelele de date (relaiile) n cadrul unei baze de date, concept strin programelor Xbase. Limbajul permite optimizarea interogrilor i controlul accesului la datele utilizatorului. El lucreaz cu aa-zisul dicionar de date care este o mulime de tabele coninnd metadate, adic anumite date despre datele analizate.

2.1 Implementarea n produsul Access a limbajului S.Q.L


Proiectanii sistemului Access au conceput sistemul Access SQL pentru crearea de interogri, nu pentru crearea sau modificarea tabelelor. Comenzile SQL se mpart n urmtoarele categorii: comenzi de extragere a datelor, sunt comenzi folosite pentru extragerea datelor din tabele i pentru stabilirea modului de prezentare a rezultatelor. Comanda SELECT este principala comand din aceast categorie; comenzi care adaug, modific sau terg rnduri ntr-o anumit tabel. Aceste comenzi sunt INSERT, UPDATE, DELETE; comenzile de procesare a tranzaciilor, reprezint comenzile BEGIN TRANSACTION, COMMIT, ROLLBACK, care reprezint comenzi de manipulare a datelor (DML), multiple. Dac o operaie de tranzacie eueaz, atunci toate operaiile DML precedente, eueaz; comenzi de definire a datelor (DDL), care definesc structura tabelelor i a vizualizrilor. Aceste comenzi sunt: CREATE TABLE i CREATE VIEW; comenzile de procesare a cursorului care pot selecta un singur rnd, din setul de rezultate al interogrii n vederea procesrii; comenzi de control a datelor i de acordare a diverselor drepturi asupra unei baze de date. Acestea sunt GRANT i REVOKE; Cuvintele cheie care constitue limbajul SQL sunt alctuite din urmtoarele categorii care constitue vocabularul limbajului: Comenzi determin executarea unei aciuni (SELECT); Calificative limiteaz domeniul unei entiti incluse n interogare (WHERE); Clauzele modific aciunea unei instruciuni(ORDER BY); Operatorii care sunt relaionali sau logici i sunt folosii fr sintaxa Join; Funciile globale de grup ntorc un rezultat pentru un set de valori (SUM(), MIN()). 80

Cuvntul rezervat DISTINCTROW, care este folosit n instruciunea SELECT, determin programul ACCESS s elimine rndurile duplicat din interiorul interogrii. El este asemntor dar nu identic cu cuvntul DISTINCT din ANSI SQL. Ambele cuvinte determin eliminarea nregistrrilor duplicat, dar modul cum realizeaz acest lucru este diferit: DISTINCT elimin rndurile duplicat, innd cont numai de valorile datelor incluse n rndurile interogrii de la stnga la dreapta; DISTINCTROW elimin rndurile duplicat innd cont de ntregul coninut al tabelei, indiferent dac sunt introduse cmpuri suplimentare pentru a diferenia nregistrrile di tabel. De exemplu dac ntr-o tabel avem dou cmpuri Nume i Prenume i n cmpul Prenume avem Ion iar n cmpul Nume avem 10 valori diferite i se face o interogare dup cmpul Prenume, atunci DISTINCT returneaz o singur valoare deoarece n tabela cu rezultate lipsete cmpul Nume, pe cnd DISTINCTROW returneaz 10 valori pentru c el consider tabela n ansamblu, chiar dac interogarea se face pe un singur cmp. n expresii limbajul SQL poate utiliza operatorii relaionali, operatorii logici i semne de punctuaie: virgula separ elementele listelor cu parametrii, de exemplu numele cmpurilor; parantezele drepte care ncadreaz numele de cmpuri sunt necesare doar cnd numele cmpurilor conin spaii sau semne de punctuaie; apostroful i ghilimelele sunt folosite pentru a separa irurile de caractere; asterisc i semnul ntrebrii specific zero sau mai multe caractere; diez, folosit pentru a delimita datele de tip data/time sau pentru a reprezenta un digit; sfritul unei instruciuni Access SQL este obligatoriu s se termine cu punct i virgul; inegalitatea este specificat prin combinaia de caractere <>

2.2 Comenzi de manipulare a tabelelor folosind limbajul SQL implementat n mediul Access
n limbajul SQL comanda pentru crearea unei tabele este: CREATE TABLE. Sintaxa comenzii este: CREATE TABLE nume_tabel (nume_cmp1 tip [(precizie], scal]) [,nume_cmp2 tip]) creaz structura unei noi tabele. Semnificaia clauzelor comenzi sunt prezentate n tabelul 1 Tabelul 1 CLAUZA ( <nume_cmp1, nume_cmp2> <tip> <precizie> <scal> ) DESCRIERE Paranteza se pune n momentul n care ncepe descrierea cmpurilor tabelei Definete numele cmpurilor din tabel Definete tipul cmpului care poate fi:text, Number, Datetime, Yes/No, OleObject, Counter, Currency Specific lungimea cmpului care se definete. Definete numrul de zecimale n cazul tipurilor numerice. Paranteza se pune n momentul n care s-a terminat definirea cmpurilor. 81

Clauza CONSTRAINT a comenzilor CREATE TABLE sau ALTER TABLE are sintaxa: CONSTRAINT nume_index {PRIMARYKEY | UNIQUE | REFERENCES tabel_extern [(cmp_extern)] i are ca efect crearea unui index dup numele cmpului care precede expresia. Indexul poate fi specificat ca PrimaryKey sau Unique. Clauza Reference permite stabilirea unei relaii ntre cmpul specificat i un cmp al unei tabele externe. Comanda CREATE INDEX cu sintaxa: CREATE [ UNIQUE ] INDEX nume_index ON table (field [ASC|DESC][, field [ASC|DESC], ...]) [WITH { PRIMARY | DISALLOW NULL | IGNORE NULL }] permite crearea unui index care permite sau nu prezena valorilor NULL n cmpuri Comanda ALTER TABLE cu sintaxa: ALTER TABLE nume_tabel {ADD COLUMN nume_cmp| CONSTRAINT nume_index}{DROP COLUMN nume_cmp| CONSTRAINT nume_index} permite adugarea unor cmpuri noi, tergerea unora existente sau adugarea i tergerea unor indeci. Comanda DROP INDEX cu sintaxa DROP INDEX nume_index ON nume_tabel terge indexul cu numele specificat din tabela dorit. Comanda DROP TABLE cu sintaxa: DROP TABLE nume_tabel terge o tabel din baza de date. Exemple 1. Create Table Fis2(camp1 text(30), camp2 integer, camp3 datetime, camp4 yes/no, camp5 counter, camp6 oleobject, camp7 currency) - se creaz o tabel cu numele fis2 care conine cmpurile camp1-7, care au toate tipurile de cmpuri permise de mediul Access; 2. Create Table Fis3 (camp1 text (10), data_nastere datetime, marca counter, constraint index1 PrimaryKey) -creaz o tabel Fis3 i un index aferent tabelei cu numele index1 ca i cheie primar. Dac nu este specificat numele cmpului, acesta este implicit ultimul cmp descris n comand; 3. Create Table Angajat (matricol counter, nume text(20), varsta integer, constraint matriol unique (matricol, nume)) - creaz tabela Angajat i cte un index simplu dup cmpul Matricol i unul compus dup cmpurile Matricol i Nume; 4. Create Table Angajat1 (Matricol counter, Nume text (30), Varsta integer, constraint Pk Primarykey(Matricol), Constraint Index1 Unique (Matricol, Nume)) - creaz tabela Angajat1 i cheia primar Pk, precum i indexul compus Index1; 5. Alter Table Angajat Add Column Salar Number - adaug cmpul Salar la tabela angajat; 6. Drop Table Fis2 - terge tabela Fis2; 7. Create Unique Index Index2 On Angajat (salar) with Disallow Null - creaz un index simplu dup cmpul salar n tabela Angajat.

2.3 Scrierea interogrilor de selecie n SQL. Instruciunea SELECT


Comanda SELECT Sintaxa comenzii SELECT a limbajului S.Q.L implementat Access este urmtoarea: 82

SELECT [All | Distinct|Distinctrow] list_selecie From nume_tabele [Where criteriu_de_cutare] [Order By criteriu de sortare [Asc | Desc] Comanda SELECT este cea mai important comand din SQL. Parametrul list_de_ selecie, precizeaz cmpurile care intr n tabela cu rezultatele interogrii. Dac avem mai multe cmpuri n interogare acestea sunt desprite prin virgul. Pot fi unul sau mai multe cmpuri. Calificativele All- toate rndurile, Distinc i Distinctrow (prezentate anterior) determin modul de manipulare al rndurilor; From nume_tabele specific numele tabelei sau tabelelor care intr n interogare. Dac sunt specificate cmpuri din mai multe tabele fiecare tabel trebuie specificat, numele lor fiind desprite prin virgul; Where criteriu_de_cutare determin care nregistrri din lista de selecie vor fi afiate. Parametrul criteriu_de_cutare este o expresie care conine un operator de text sau ir de caractere sau un operator relaional. Clauza este opional; Order By criteriu de sortare [Asc | Desc] specific ordinea de sortare dorit. n general n interogare se creaz un obiect Recordset de tip Dynaset. Order By este opional. Ordinea de sortare este ascendent sau descendent (ASC | DESC) Exemple Se consider baza de date producie care are urmtoarele tabele: Produse COD_PRODUS prod001 prod002 prod010 prod060 prod080 prod500 Stocuri COD_DEPOZI dep01 dep01 dep01 dep10 dep10 Depozite COD_DEPOZI dep01 dep10 Beneficiari 83 LOCALITATE Bucuresti Pitesti COD_PRODUS prod001 prod060 prod080 prod060 prod080 CANTITATE 50 150 100 200 50 DENUMIRE recorder televizor walkman videocasetofon videocasetofon radiocasetofon PRET 800000 160000 300000 430000 280000 105000

COD_BENEFI bnf011 bnf012 bnf013 Comenzi NUMAR_COMANDA 1014 2200 Facturi NUMAR_COMANDA 1014 1014 2200 2200

NUME Vasilescu Georgescu Marinescu

ADRESA Bucuresti salcimilor 27 Bucuresti salcimilor 4 Pitesti privighetorii 12

DATA 11/23/96 6/28/96

COD_BENEFI bnf011 bnf013

COD_PRODUS prod001 prod002 prod020 prod500

CANTITATE 2 1 2 3

1. Interogare pe un singur cmp al unei tabele. S se scrie o interogare care vizualizeaz din fiierul Stocuri cmpurile cod_depozit i cod produs SELECT DISTINCTROW stocuri.COD_DEPOZI, stocuri.COD_PRODUS FROM stocuri; COD_DEPOZI dep01 dep01 dep01 dep10 dep10 COD_PRODUS prod001 prod060 prod080 prod060 prod080

2. Interogare pe un singur cmp al unei tabele care ilustreaz diferena ntre distinct i distinctrow: SELECT DISTINCT cod_depozi FROM stocuri; cod_depozi dep01 dep10 SELECT DISTINCTROW cod_depozi FROM stocuri; cod_depozi dep01 dep01 dep01 dep10 dep10 Sfrtul instruciunii Select n versiunea Access 2003 este opional. 84

3. Interogri ordonate dup mai multe cmpuri i interogri care folosesc operatorii: between, like, in. a) SELECT * FROM stocuri WHERE cod_depozi="dep01" and cod_produs="prod001"; COD_DEPOZI dep01 b) COD_PRODUS prod001 CANTITATE

SELECT DISTINCTROW * FROM produse WHERE (((produse.PRET) Between 400000 And 500000)); DENUMIRE videocasetofon PRET

COD_PRODUS prod060 c)

SELECT DISTINCTROW * FROM stocuri WHERE cod_produs like "*1"; COD_PRODUS prod001 CANTITATE

COD_DEPOZI dep01 d)

SELECT * FROM depozite WHERE localitate in ( 'bucuresti'); LOCALITATE bucuresti

COD_DEPOZI dep01 e)

SELECT * FROM stocuri WHERE cantitate in(50,100,200); COD_PRODUS prod001 prod080 prod060 prod080 CANTITATE 50 100 200 50

COD_DEPOZI dep01 dep01 dep10 dep10

2.4 Utilizarea funciilor globale SQL


n cazul n care se dorete folosirea funciilor globale pentru a obine totaluri, medii sau valori statistice pentru grupuri de nregistrri, care au atribute cu aceeai valoare, trebuie folosit clauza GROUP BY n instruciunea SQL. Limitarea aciunii GROUP BY se poate realiza folosind calificativul opional HAVING. SELECT [All | Distinct|Distinctrow] funcii agregat(nume_cmp) AS alias [,list_selecie] From nume_tabele [Where criteriu_de_cutare] 85

GROUP BY criteriu de grupare [HAVING criteriu de agregare] [Order By criteriu de sortare [Asc | Desc] AS alias atribuie un nume coloanei; GROUP BY criteriu de grupare precizeaz coloana pe care se grupeaz coloana; HAVING criteriu de agregare reprezint unul sau mai multe criterii aplicate coloanei care conine parametrul funcie agregat Criteriul specificat de parametrul criteriul de agregare din HAVING este aplicat dup aplicarea gruprii. n unele cazuri poate fi util corelarea unei tabele cu ea nsi. n acest caz trebuie adugat la denumirea cmpului o liniu de subliniere urmat de o cifr oarecare, pentru a deosebi prima tabel de a doua tabel. Funcia agregat este o funcie care acioneaz pe domeniul unui atribut. n mediul Access acestea sunt: AVG calculeaz media aritmetic a valorilor domeniului unui anumit cmp; COUNT calculeaz numrul de nregistrri care satisfac criteriul de agregare; SUM calculeaz suma nregistrrilor dintr-un domeniu al unui cmp; MIN, MAX calculeaz valoarea cea mai mare respectiv cea mai mic dintr-un anumit domeniu. Exemple 1. S se scrie o interogare care calculeaz cantitatea total de produse i numrul de produse pe depozite SELECT DISTINCTROW stocuri.COD_DEPOZI, Sum(stocuri.CANTITATE) AS Cantitate, Count(*) AS Nr_inreg FROM stocuri GROUP BY stocuri.COD_DEPOZI; COD_DEPOZI dep01 dep10 Cantitate 300 250 Nr_inreg 3 2

2. S se scrie o interogare care afieaz codul depozitului, cantitatea i numrul nregistrrilor a cror cantitate de produse este mai mare dect 250 SELECT DISTINCTROWstocuri.COD_DEPOZI, Sum(stocuri.CANTITATE) AS Cantitate, Count(*) AS Nr_inreg FROM stocuri GROUP BY stocuri.COD_DEPOZI HAVING sum (cantitate)>250; COD_DEPOZI dep01 Cantitate 300 Nr_inreg 3

2.5 Crearea asocierilor cu SQL


Pentru asocierea a dou sau mai multe tabele se folosete structura JOIN_ON care specific tabela care va fi asociat i relaia dintre cmpurile pe care se bazeaz JOIN: SELECT [All | Distinct|Distinctrow] list_selecie 86

From nume_tabele {INNER | LEFT | RIGHT} nume_tabel JOIN tabel de legtur ON criteriu de legtur Where criteriu_de_cutare] [Order By criteriu de sortare [Asc | Desc] nume_tabel JOIN tabel de legtur specific numele tabelei care este asociat cu celelalte tabele din lista nume_tabele. Fiecare din tabelele care particip la o asociere trebuie s fie inclus n lista nume_tabele i nainte i dup JOIN. Tipurile de asociere INNER, LEFT, RIGHT trebuie s apar n faa instruciunii JOIN. INNER este asocierea echivalent, LEFT este o asociere la stnga, iar RIGHT este o asociere extern la dreapta. ON criteriu de legtur specific cele dou cmpuri care vor fi asociate i relaia dintre elel. Unul dintre cmpuri se afl n tabel de legtur iar cellalt ntr-o tabel din lista nume_tabele. Criteriu de legtur conineun operator de comparaie de tip egalitate i returneaz valoarea adevrat sau fals. Dac valoarea este adevrat atunci nregistrarea din tabela asociat este inclus n interogare. Exemple 1. S se realizeze o interogare care vizualizeaz cmpurile cod produs, cod depozit, cantitate din fiierele stocuri i produsre. Legtura dintre tabele se realizeaz cu ajutorul cmpului comun ca denumire Cod_Produs. SELECT DISTINCTROW produse.cod_produs, stocuri.cod_depozi, stocuri.cantitate FROM produse, stocuri WHERE produse.cod_produs=stocuri.cod_produs; cod_produs cod_depozi cantitate prod001 dep01 50 prod060 dep01 150 prod060 dep10 200 prod080 dep01 100 prod080 dep10 50 SELECT DISTINCTROW produse.cod_produs,stocuri.cod_depozi,stocuri.cantitate FROM produse INNER JOIN stocuri ON produse.COD_PRODUS = stocuri.COD_PRODUS COD_PRODUS prod001 prod060 prod060 prod080 prod080 COD_DEPOZI dep01 dep01 dep10 dep01 dep10 CANTITATE 50 150 200 100 50

Al doilea select este specific QBE i demonstraz echivalena ntre clazele WHERE i INNER JOIN n cazul cnd n interogare se folosesc operatori relaionali se poate obine operaia definit n algebra relaional THETA JOIN 2. S se realizeze o interogare prin care sunt selectate acele nregistrri pentru care coninutul cmpului cantitate din tabela stocuri este mai mare dect coninutul cmpului cantitate din tabela Facturi. n locul denumirii tabelului sau folosit literele a i b. SELECT DISTINCTROW a.cod_produs, a.cantitate, b.numar, b.cantitate FROM stocuri a, facturi b WHERE a.cod_produs=b.cod_produs 87

and a.cantitate>=b.cantitate; cod_produs a.cantitate prod001 50

numar 1014

b.cantitate 2

3. S se scrie o interogare pe aceeai tabel. S se afieze produsele care au aceeai denumire i cu preul mai mare. SELECT produse_1.cod_produs,produse_2.cod_produs,produse_1.denumire FROM produse produse_1, produse produse_2 WHERE produse_1.denumire=produse_2.denumire and produse_1.pret>produse_2.pret Produse_1.cod_produs produse_2.cod_produs denumire prod060 prod080 videocasetofon Dac condiia AND este tears deci se vor afia produsele cu aceeai denumire atunci: SELECT produse_1.cod_produs,produse_2.cod_produs,produse_1.denumire FROM produse produse_1, produse produse_2 WHERE produse_1.denumire=produse_2.denumire Produse_1.cod_produs Prod001 Prod002 Prod080 Prod060 Prod080 Prod060 Prod500 Prod010 produse_2.cod_produs prod001 prod002 prod060 prod060 prod080 prod080 prod500 prod010 denumire recorder televizor videocasetofon videocasetofon videocasetofon videocasetofon radiocasetofon walkman

2.6 Compunerea interogrilor cu ajutorul operatorului UNION


Interogrile UNION permit combinarea ntr-un singur set de rezultate a dou sau mai multor seturi de rezultate produse de interogri SELECT. Restriciile impuse instruciunilor care creeaz interogri UNION sunt: numrul de cmpuri din fiecare interogare trebuie s fie acelai; este permis doar o singur clauz SORT BY i aceasta trebuie s apar dup ultima instruciune UNION SELECT; tipurile de date corespunztoare numelor de cmpuri trebuie s fie identice. Exemple S se afieze situaia stocurilor din depozitul Dep01 ct i situaia stocurilor care sunt n cantitate mai mare de 50. SELECT DISTINCTROW * from stocuri where cod_depozi= "dep01" UNION select * from stocuri where cantitate >50; 88

COD_DEPOZI dep01 dep01 dep01 dep10

COD_PRODUS prod001 prod060 prod080 prod060

CANTITATE 50 150 100 200

2.7 Interogri imbricate


Se numesc interogri imbricate dou interogri dintre care una aplic rezultatele celeilalte. Access permite scrierea unei interogri SELECT care utilizeaz o alt interogareSELECT pentru a preciza criteriul clauzei WHERE. Sintaxa general este: SELECT [All | Distinct|Distinctrow] list_selecie From nume_tabele Where [nume_tabel.]nume cmp IN SELECT [All | Distinct|Distinctrow] list_selecie [GROUP BY Criteriu de grup] [HAVING criteriu funcii de agregare] [Order By criteriu de sortare [Asc | Desc] Exemple 1. Se scrie o interogare care afieaz detaliile produselor comandate de ctre beneficiarul Vasilescu SELECT * FROM produse WHERE cod_produs IN (SELECT cod_produs FROM facturi WHERE numar_comanda IN (SELECT numar_comanda FROM benef, comenzi WHERE benef.nume = Vasilescu" AND benef.cod_benefi = comenzi.cod_benefi)); COD_PRODUS prod001 prod002 DENUMIRE recorder televizor PRET 800000 160000

Interogrile imbricate pot folosi ali operatori specifici. 2. S se evalueze produsele comandate n cantitate mai mare dect oricare din produsele aflate pe o anumit factur. SELECT DISTINCTROW cod_produs FROM facturi WHERE cantitate > ANY (SELECT cantitate FROM facturi WHERE numar =1014); Operatorul ANY se utilizeaz pentru a putea compara cantitatea comandat pentru un produs cu oricare din cantitile de pe factura 1014. El verific dac valoarea unui atribut este: mai mic; mai mare; egal; mai mic sau egal; mai mare sau egal; diferit dect orice valoare din lista generat de ctre subinterogare. = ANY este echivalent cu IN iar <> ANY este echivalent cu NOT IN Operatorul ALL se utilizeaz pentru a returna nregistrrile pentru care valorile atributului din clauza WHERE sunt >=,<=,>, < dect toate valorile generate de interogarea interioar. Nu

89

poate fi utilizat cu operatorul = care corespunde cazului n care toate valorile din list sunt egale 3. S se selecteze toate facturile a cror cantitate este mai mic dect toate cantitile pentru factura 2200, cea mai mare cantitate fiind de 3 buci. SELECT * from facturi where cantitate < all (select cantitate from facturi where numar=2200); NUMAR 1014 COD_PRODUS prod002 CANTITATE 1

2.8 Interogri de aciune


Interogrile de aciune n Access sunt: de adugare, de tergere, de creare a unei tabele i de actualizare 1. Interogrile de adugare utilizeaz urmtoarea sintax n cazul n care datele se introduc din alt tabel: INSERT INTO tabel_destinaie SELECT [All | Distinct|Distinctrow] list_selecie From tabel_surs [Where criteriu_de_cutare] dac nu se introduce clauza WHERE, toate nregistrrile din tabelul surs sunt adugate n tabelul destinaie. n cazul n care se doresc inserate anumite valori n anumite cmpuri ale unei tabele se folosete sintaxa: INSERT INTO nume_tabel (nume_cmp1, nume_cmp2.. nume_cmpn) VALUE (valoare1, valoare2,, valoaren) INSERT INTO produse (cod_produs, DENUMIRE, PRET ) values ("prod12","aspirator",1500000) 2. Interogrile de tergere au urmtoarea sintax DELETE FROM nume_tabel [WHERE criteriu de tergere] dac nu se introduce clauza WHERE, ntr-o interogare de tergere, vor fi terse toate datele din nume tabel. DELETE from prouse Where cod_produs=Prod12) 3. Interogrile de creere a unei tabele utilizeaz sintaxa urmtoare SELECT [All | Distinct|Distinctrow] list_selecie INTO nume tabel nou From nume_tabel_surs [Where criteriu_de_cutare] pentru a copia tabela original se nlocuiete lista de selecie cu un * i nu se introduce clauza WHERE SELECT cod_produs, denumire into produse1 from produse 90

where cod_produs='prod12' 4. Interogrile de actualizare utilizeaz comanda SET pentru a atribui valori coloanelor individuale: UPDATE nume_tabel SET nume_coloan= valoare [,, nume_coloan = valoare] [WHERE criteriu_de_actualizare] UPDATE produse SET pret = 2000000 where cod_produs='prod12'

2.9 Utilitarul pentru realizarea interactiv a interogrilor n mediul Access QBE-SQL


Mediul Access prezint utilitarul QBE pentru realizarea interogrilor la nivel de tabel sau tabele. Realizarea unei interogri sau QUERY se poate face din baza de date creat alegnd opiunea Query. n fereastra queries care apare se poate alege opiunea: NEW - interogare nou; OPEN - deschiderea unei interogri existente n vizualizare (datasheet); DESIGN - deschiderea unei interogri existente n modul proiectare. Butoanele care se folosesc n cazul proiectrii unei interogri noi se gsesc pe bara de butoane:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

20 21

22

Butoanele au urmtoarea semnificaie: 1. comutare n modul design; 2. vizualizare comand proprie limbajului SQL; 3. comutare n modul Datasheet pentru vizualizare nregistrri; 4. salvare interogare; 5. lansare n execuie a unei interogri; 6. deschide fereastra de definire a proprietilor interogrii sau cmpurilor din tabel; 7. deschide fereastra ADD TABLE (Show table in Access 2003); 8. activeaz opiunea total a ferestrei de definiie a interogrii; 9. selecie nume tabel pentru interogarea selectat; 10. selecie interogare; 11. selecie interogri incruciate; 12. interogare de aciune pentru crearea de tabele noi; 13. interogare de aciune pentru actualizarea unei interogri; 14. adugare de nregistrri noi ntr-o interogare; 15. tergerea de nregistrri dintr-o interogare; 16. creare interogare nou; 17. crearea unui formular nou; 18. crearea unui report nou; 19. activarea ferestrei bazei de date; 20. activarea constructorului de expresii, funcii etc; 21. buton pentru anularea unei comenzi nedorite; 22. butoane de help, de ajutor privind mediul Access. 91

Dac n fereastra QUERY a bazei de date se apas butonul NEW va apare fereastra ADD TABLE prin care se selecteaz tabela, tabelele, interogarea sau interogrile, care intr n interogare (Fig 1). Se nchide fereastra prin acionarea butonului CLOSE i se trece la crearea structurii interogrii.

Fig 1 Fereastra afieaz tabele, interogri sau amndou tipurile de entiti. Dup nchiderea acestei ferestre va aprea fereastra de realizare a interogrii (Fig 2). Cmpurile care vor aprea n interogare sunt fie tastate, fie aduse din tabela ce apare n fereastra de creare prin tragere n poziia dorit. Mai multe cmpuri pot fi selectate prin selecie cu ajutorul mouse-lui i innd apsat tasta Shift sau Ctrl. Cmpurile care vor fi vizualizate n interogare au setat butonul care apare n partea inferioar a cmpului Dac se acioneaz butonul 9 de pe bara cu butoane atunci n fereastr va apare i numele tabelei la care aparine cmpul. Dac interogarea exist, atunci se apas butonul OPEN pentru vizualizare sau butonul

Fig. 2 DESIGN pentru eventualele modificri asupra interogri sau vizualizarea structurii existente a interogrii.

2.9.1 Exemple de interogri folosind QBE


n continuare se va prezenta modul de realizare a interogrilor. Se consider o baz de date utilizator n care exist tabela Angajai cu urmtoarea structur: Marca Nume Data Profesia Data Sex Salariu Adresa naterii angajrii 92

Tabela conine un numr de minim 20 de nregistrri

Exemple 1. Se consider urmtoarea interogare: se vizualizeaz cmpurile: Marca, Nume, Salariu, pentru nregistrrile care au n cmpul salariu o valoare mai mare dect 200000 i cmpul Profesia =Economist(fig. 3) Dac se dorete realizarea unei interogri care s ofere posibilitatea de parametrizare a

Fig. 3

cmpului profesia, adic la fiecare rulare a interogrii s se tasteze profesia dorit, atunci se construiete o interogare conform cu figura (Fig 4). 2. S se scrie o interogare prin care se vizualizeaz toate nregistrrile care n cmpul Profesia conin aceeai valoare. Valoarea de cutare se introduce ntr-o fereastr de interogare. Va aprea o fereastr n care se va tasta profesia dorit, interogarea care va aprea este legat de numele profesiei tastat. Cmpurile interogrii se iau din tabele sau pot fi cmpuri calculate. Pentru a aprea o fereastr de interogare este necesar ca textul care apare n fereastr s fie ncadrat ntre paranteze mari. Dac cmpurile tabelei apar ntr-o tabel atunci este necesar ca aceste cmpuri s fie ncadrate ntre paranteze drepte.

93

Fig. 4

Fig. 5

3. S se scrie o interogare care afieaz cmpurile Marca, Nume, Profesia i Data Angajrii. Totodat interogarea afiaz i Vechimea care este un cmp calculat. Ca i criteriu de evaluare se consider vechimea mai mare de 10 ani.(Fig 5) 4. tiind c impozitul pe salar este 30% s se realizeze o interogare prin care se vizualizeaz n ordine alfabetic angajaii, salariul lor i impozitul pe salar.(Fig 6)

Fig

5. S se realizeze o interogare care vizualizeaz angajaii cu vrsta mai mic de 50 de ani, ordonai descendent dup vrst i ascendent dup nume. Vrsta este un cmp calculat (Fig 7).

94

Fig.7

6. S se realizeze o interogare care grupeaz nregistrrile pe profesii, calculeaz fondul de salarii pentru o anumit profesie (se nsumeaz cmpul salariu, pentru o anumit profesie) i contorizeaz numrul de salariai pentru o anumit profesie(fig 8). Pentru gruparea articolelor se tasteaz butonul TOTALS i se alege opiunea Group By. Prin acionarea acestui buton devin disponibile funciile agregat care acioneaz global asupra atributelor.

Fig. 8

7. Se consider tabelele Angajat i Copii. S se scrie o interogare prin care s fie vizualizai copiii unui salariat. Relaiile ntre tabele au fost stabilite n fereastra Relationship, activat cu butonul corespunztor din fereastra Table (Fig 9). Tabela Copii are structura urmtoare: Marca Nume Data nasterii Sex nr copii Marca este numele matricol al angajatului; Nume este numele copilului; Data naterii este data naterii copilului; Sex are dou valori: masculin sau feminin;

95

Nr copii este numrul de copii al angajatului. 8. S se scrie o interogare prin intermediul creia se calculeaz reinerile pentru diveri

Fig. 9

angajai. Reinerile pot fi: asigurri sociale; concediu de boal; amenzi; reineri diverse. Structura tabelei Reineri este urmtoarea: Contor Marca Tip_reinere Suma Contor reprezint cheia primar fiind un cmp counter;

Luna

Fig. 10

Marca este numrul matricol al salariatului; Tip_reinere este un tip de reinere dintre cele enumerate; Suma este suma reinut; Luna este luna n care se face reinerea. Interogarea realizat este ilustrat de figura 10.

2.9.2 Interogri tabel ncruciat

96

Interogrile tabel ncruciat sunt interogri totalizatoare care permit vizualizarea exact a modului n care apar pe ecran datele centralizatoare. Pentru a realiza o astfel de interogare este necesar s alegem butonul Crosstab de pe bara cu butoane. Pentru realizarea interogrii este necesar s se indice: cmpul care creeaz etichete (titluri) ale rndurilor; cmpul care atribuie valori interogrii rezultate;

Fig. 11

cmpul sau cmpurile care creeaz antetele coloanelor i criteriile care determin valorile care apar sub ele. S se realizeze o interogare n care sunt evideniate reinerile pentru fiecare salariat pe lunile unui anumit an. Pentru ca lunile s apar n ordinea fireasc este necesar ca ele s fie introduse n aceast ordine n linia Column Heading din Query Properties. Rezultatele interogrii sunt prezentate n tabelul urmtor: Marca Nume jan feb mar apr may jun jul aug sep oct nov dec 1020 Radulescu 30000 40000 50000 1030 Muntenas 500000 1040 Macrea Horia 200000 1100 Nora Daniel 123000 Cmpul pentru afiarea lunilor este Format ([Luna],mmm)

2.9.3 Interogri de aciune


Interogrile de aciune pot fi: interogri care genereaz tabele noi; interogri care adaug nregistrri noi n tabelele de date; interogri care terg anumite nregistrri din tabelele de date; interogri care modific datele in tabelele de date.

97

Aceste tipuri de interogri se obin prin acionarea butonului corespunztor tipului de

Fig.12

interogare de aciune dorit, de pe bara cu butoane a ferestrei Query. Se consider tabela Angajai n care se dorete creterea salariului cu 20% pentru salariaii care au profesia inginer i economist (Fig. 12)

3. FORMURI (FORMULARE)
Entitatea Formular, ofer n mediul Acces realizarea unor interfee (ecrane), ntre utilizator i tabelele existente ntr-o aplicaie. Formurile prezint datele ntr-o form organizat i atractiv. Cmpurile uneia sau a mai multor tabele pot fi aranjate astfel inct introducerea sau afiarea datelor s se fac dup dorina utilizatorului. Formularele permit selecia cmpurilor uneia sau mai multor tabele dup diverse criterii. Un formular este format dintr-o colecie de elemente specifice, numite obiecte de control. n general un formular conine dou tipuri de obiecte de control: cele care afieaz datele din tabele; cele care afieaz informaii generale. Formularele Access sunt multifuncionale; ele permit relizarea unor lucruri care nu sunt permise n alte moduri de lucru ca de exemplu modul Table Viw sau Query View. Astfel potfi validate datele de intrare ntr-o aplicaie pe baza datelor existente n mai multe tabele. Un formular poate include alte formulare. Un formular inclus n alt formular se numete subformular.

3.1 Tipuri de formulare


Coninutul unui formular depinde de tipul de date pe care-l conine. n general o aplicaie pentru baze de date poate fi de urmtoarele tipuri: Procesarea tranzaciilor, adic adaug noi informaii ntr-o tabel sau le editeaz pe cele existente. Pentru acest tip de aplicaii, formularele trebuie s permit scrierea n tabelele aplicaiei; Facilitarea lurii deciziilor, furnizeaz diverse informaii fr a pemite utilizatorului s modifice datele existente n tabele. Pentru acest tip de aplicaii este necesar ca formularele s permit doar citirea datelor existente n formular; ntreinerea bazei de date, execut funcii de administrare, cum ar fi crearea bazelor de date, a tabelelor, controlul accesului utilizatorilor la date, asigurarea securitii informaiilor prin criptare, compactare periodic a bazelor de date i 98

salvarea lor. Pentru acest tip de aplicaii este necesar accesul fr restricii la obiectele bazei de date.

3.1.1 Formulare pentru procesarea tranzaciilor


Acest tip de formular acioneaz direct asupra tabelei doar n cazul n care acioneaz doar asupra unei singure tabele. n cazul n care formularul se refer la mai multe tabele exist dou posibiliti: se poate crea inial o interogare n care apar cmpurile dorite n mai multe tabele, iar formularul s fie creat pe baza interogrii iniale; formularul principal utilizeaz o singur tabel, dar s conin un subformular care s conin date dintr-o tabel asociat

3.1.2 Formulare pentru facilitarea lurii deciziilor


Acest tip de formular este proiectat doar pentru a prezenta diverse informaii referitoare la una sau mai multe tabele. Acest tip de formulare se bazeaz des pe interogarea ncruciat care sumeaz datele funcie de o anumit perioad de timp. n interiorul unui formular poate exista un alt formular numit subformular iar n interiorul acestuia poate exista de asemenea un alt formular numit sub-sbformular. Acestea se numesc formulare imbricate. Nivelul de imbricare este pe trei niveluri.

3.2 Crearea formularelor de procesare a tranzaciilor


n general crearea unui formular se poate face prin dou metode: prin folosirea ferestrei de proiectare a formularului Design Form; prin folosirea utilitarului (vrjitorului) de proiectare a formularului FormWizard Cea mai simpl soluie este crearea formularelor de procesare a tranzaciilor sau formulare de baz, este folosind utilitarul FormWizard. Pentru realizarea primului formular, vom folosi dou tabele: Angajai, care conine informaii referitoare la angajaii unei societi; Activitati_Personal, care ine evidena activitilor de personal referitoare la salariai ntr-o anumit perioad de timp. Aceste activiti se pot grupa n urmtoarele categorii: date importante ca de exemplu data angajrii, data plecrii din societate, data mririi de salariu etc; tipuri de aciuni prin abrevierea acestora: A - angajare, P - plecare, etc; aprobarea aciunilor de personal de ctre eful departamentului sau un ef ierarhic superior; notarea activitii profesionale; sumele de bani ncasate de ctre angajat sub forma unor comisioane, prime sau salarii; comentarii referitoare la un anumit angajat; Cele mai multe formulare sunt de de tipul one -to - many , n majoritatea acestor formulare fiind necesare subformulare care s afieze datele din tabelele asociate tabelului principal Informaiile din cele dou tabele sunt urmtoarele:

Angajati
Marc Nume Prenu Functia Ziua Data Adresa Or Ju Co Tara Nr Nr F I S 99

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

David Fulea Lepad Petrut Bucna Surian Kovac Calloi Dodut Hellst Smirn Pata Britar Marti Pereir

Nancy Andre Janeta Marga Stefan Mihae Robert Laura Anne Albert Timut Caroli Justin Xavier Laure

Vinzator Viceprese Vinzator Vinzator Manager Vinzator Vinzator Coordona Vinzator Manager Administ Receptio Director Specialist Specialist

08-Dec19-Feb3019-Sep0402-Jul2909-Jan27-Jan1306-Jun11-Sep08-Oct3009-Dec-

291227301313293012011515011501-

Str B-dul B-dul B-dul B-dul B-dul B-dul Str Str B-dul B-dul B-dul B-dul B-dul B-dul

Sib Me Sib De Ara Ti Lu Bra Ag Ora Ba Iasi Ba Iasi Ara

SB SB SB H A T T B SB B B IS B IS A

240 240 240 270 280 290 290 250 240 210 200 180 200 180 280

RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO

(206) (206) (206) (206) (71) (71) (71) (206) (71) (206) (206) (206) 88 83 88 62 88 01

5467 3457 3355 5176 3453 428 465 2344 452 7559 6261 1411 377 380 376

2 5 2 2 2 5 5 2 5 2 3 3 2 1

Actiuni_Personal
Nr_matricol Cod 1 h 2 h 3 h 4 h 5 h 6 Q 7 y 8 y 9 y 10 y 11 h 12 h 13 h Nr Data planif act Nr director 1 11/24/98 6 1 11/24/95 0 2 12/1/89 2 2 11/24/93 2 2 11/24/91 3 5 11/24/90 2 5 1/24/88 2 2 2/24/78 2 5 11/24/83 2 7 5/24/98 7 5 8/24/98 2 5 4/24/98 9 2 9/24/98 2 Data 12/22/98 12/22/98 12/22/98 12/22/98 12/22/98 12/22/98 12/22/98 12/22/78 12/22/83 12/22/98 12/22/98 12/22/98 12/22/98 Nota Salariul lunar Comentariu 3 2,000,000.00 nici o schimbare 5 100,000.00 nici o schimbare 7 1,000,000.00 nici o schimbare 9 50,000,000.00 nici o schimbare 7 50,000,000.00 nici o schimbare 7 40,000.00 nici o schimbare 8 700,000.00 nici o schimbare 9 800,000.00 nici o schimbare 2 666,000.00 nici o schimbare 4 30,000.00 nici o schimbare 1 9,000,000.00 nici o schimbare 5 1,000,000.00 nici o schimbare 9 2,000,000.00 nici o schimbare

Formularul va conine date din tabele Angajai i un subformular care conine date din tabela Actiuni_Personal. Folosind utilitarul FormWizard, formularul va fi creat astfel: 1. Se execut click pe butonul Forms n fereastra Database dup care se apeleaz butonul New; 2. n fereastra NewForm care apare se selecteaz tabela care se dorete pentru cazul nostru tabela Angajai; 3. Se alege tipul de formular dorit adic modul n care se dorete s fie vizualizate cmpurile tabelei: Single Column pe o singur coloan; Tabular, cmpurile sunt afiate pe linie; Main/SubForm, permite crearea unui formular care conine un subformular; Graph permite crearea unui formular care conine un grafic; AutoForm permite crearea unui formular simplu care conine toate cmpurile tabelei Pentru formul pe care dorim s-l realizm se alege opinea Main/Subform. 4. n fereastra Main/Subform Wizard se alege tabela a cror cmpuri se dorete s apar n subformular. n cazul nostru aceasta este Actiuni_Personal dup care se acioneaz butonul Next. Celelalte butoane au urmtorul rol: Back ntoarcere la etapa anterioar; 100

Finish terminarea utilitarului; Cancel ntrerupera folosirii utilitarului; Hint comentarii 5. Se aleg cmpurile din tabela angajai care vor aprea n formular. Acestea vor fi marca, nume, prenume, data angajarii, adresa, oras. Alegerea cmpurilor se realizeaz astfel: se selecteaz cmpul dorit; se execut click pe butonul cu o singur sgeat. Cmpul este mutat din fereastra Available fields n fereastra Fields on main form. Dac se dorete mutarea tuturor cmpurilor dintr-o fereastr n alta se folosete butonul cu sgeat dubl. Mutarea cmpurilor n sens invers se realizeaz identic dar folosind butoanele cu sgeat n sens contrar; Se execut click pe butonul Next; 6. Se aleg n mod identic cmpurile tabelei Actiuni_Personal. Iniial se selecteaz toate cmpurile, dup care cmpul care conine marca salariatului se deselecteaz. Se fae click pe butonul Next; 7. Se alege tipul predefinit al formularului, adic forma n care acesta va apare pe ecran. Cmpurile tabelei pot apare n form standard, subliniate, ngropate, cu umbre, etc. Se face click pe butonul Next; 8. Se alege numele care va aprea n formular, dup care se apas butonul Finish. nainte de apariia formularului nou creat va aprea un mesaj prin care se cere tastarea numelui subformularului. La nchiderea formularului se cere salvarea lui sub un anumit nume. Rezultatul celor enunate este urmtorul form:

Fig. 1 n partea superioar apar cmpurile fiierului angajai iar n partea inferioar apare subformularul i toate cmpurile tabelei Actiuni_Personal cu excepia cmpului marca care face legtura ntre cele dou tabele. Barele de derulare care apar n partea de jos a ferestrei, permit poziionarea pe anumite nregistrri din tabele. Formularul de baz creat astfel cu Form Wizard este utilizabil imediat, dar aspectul formularului i al subformularului poate fi mbuntit ulterior, folosind fereastra Form Design.

101

3.3 Utilizarea ferestrei Form Design


Pentru a proiecta un formular sau pentru a modifica un formular deja existent se folosete modul Design Form prin acionarea butonului corespunztor. Dac dintr-o baz de date existent se proiecteaz un formular nou sau se modific unul deja existent se acioneaz butonul New sau Design din opiunea Forms a ferestrei Database. Dac se acioneaz butonul Form Design se va afia fereastra cu acelai nume(fig. 2)

Fig. 2

3.3.1

Elementele ferestrei Form Design

Bara cu instrumente Form Design, care conine butoane de comand rapid pentru selectarea opiunilor din meniul disponibil n modul de lucru Form Design; O mulime de rigle verticale i orizontale calibrate n inch sau centimetrii; O linie vertical care marcheaz marginea din dreapta a formularului i permite modificarea dimensiunilor acestuia pe orizontal; O linie orizontal care marcheaz marginea de jos a formularului. Cu ajutorul mouse-ului, prin tragerea barei se modific dimensiunile pe vertical ale formularului; Cte o bar de derulare pe orizontal sau pe vertical pentru vizualizarea formularului n cazul n care nu ncape pe ecran; O zon opional numit Form Header (antet) care este delimitat de o bar cu acelai nume i care delimiteaz zona de antet a formularului. Dac formularul este format din mai multe pagini, atunci antetul este afiat doar pe prima pagin; O zon Form Detail (detaliu) delimitat de bara cu acelai nume care o desparte de zona Footer. Aceast zon conine obiectele de control care definesc n totalitate formularul; Zona Footer este similar cu zona Header, doar c este definit n partea de jos a formularului.

Butoanele de pe bara cu instrumente sunt prezentate n fig 3


1 2 3 4 17 18 19 20 21 5 6 7 8 9 10 Fig. 3 11 12 13 14 15 16

1. butonul de comutare n modul Design; 2. butonul de comutare n modul vizualizare a formului sau n modul de execuie a acestuia; 3. butonul de comutare n modul de vizualizare datasheet pentru cmpurile tabelei existente n formularul de baz; 102

4. salveaz formularul curent; 5. previzualizarea formularului ce va fi tiprit; 6. afieaz fereastra Proprieties asociat uneia din obiectele de control active n formular la un moment dat; 7. prezint o list cu cmpurile rezultate dintr-o interogare sau ntr-o tabel existent n formularul de baz; 8. deschide fereastra Module, de editare a codurilor surs VBA ale unui modul care face parte integrant dintr-un formular; 9. activeaz sau dezactiveaz bara cu obiecte de control ale formularului; 10. activeaz sau dezactiveaz paletele de control pentru culoare necesare anumitor obiecte de control ale formularului:culoarea textului, a fundalului sau culoarea pentru chenar; 11. determin fontul dorit; 12. determin mrimea fontului dorit; 13. text ngroat; 14. text n modul italic; 15. alinierea textului la stnga; 16. alinierea textului la centru; 17. alinierea la dreapta; 18. activarea ferestrei Database 19. refacerea unei aciuni nterprinse din greal; 20. activarea instrumentului de ajutor Cue Cards; 21. activeaz Help-ul mediului Access.

3.3.2 Proprietile elementelor i obiectelor de control


Proprietile care se aplic unui formular n ansamblu, fiecrei seciuni a sa i fiecrui obiect n particular sunt determinate de valori existente n fereastra Properties. Pentru a vizualiza proprietile unui obiect sau element Access se selecteaz fiecare element n parte dup care se face click pe butonul Properties. n partea superioar fereastra permite alegera tipului de propriti referitoare la un anumit obiect: All properties se refer la toate proprietile care apar la un anumit obiect; Data properties se refer la proprietile despre date ale obiectului; Layout properties se refer la caracteristicile obiectului; Other properties se refer la alte proprieti specifice unui anumit obiect; Events properties se refer la diverse evenimente (cod program care poate fi ataat la fiecare obiect); Fiecare eveniment sau obiect Access are proprietile sale specifice. Propriettile unui formular pot fi vizualizate prin selecia formularului, click pe dreptunghiul alb din partea dreapt a acestuia urmat de selecia butonului Properties Data Properties se refer la datele care apar n formular: Record Source se refer la tabela sau interogarea care se ataeaz formularului i care se gsete n baza de date; Allow Editing se refer la faptul dac este sau nu permis editarea informaiilor; Allow Updating se refer la permisiunea de actualizare a datelor; Record Locks se refer la blocarea sau nu a articolelor i se folosete n special la lucrul n reea. Pentru cazul prezentat tabela ataat formularului este tabela Angajat avnd permisiunea de editare i de actualizare. Layout properties se refer la caracteristicile formului. Aceste sunt prezentate n figura 4 Caption definete numele formularului, numele care apare n partea stng sus a form-ului; 103

Default view definete vizualizarea implicit a formului. Aceasta poate fi: single form se vizualizeaz un singur articol; continuous form formularul este continuu vizualizndu-se mai multe articole; datasheet modul de vizualizare este pe linii i coloane, pentru mai multe artucole Scroll bars barele de derulare care pot aprea ntr-un obiect text box sau form pot fi: neither nu apar n text box i n formulare; horizontal only bara de derulare apare doar n poziie orizontal la formulare; vertical only bara de derulare apare doar n poziie vertical la fornulare; both barele de derulare apar att n poziie orizontal ct i n poziie vertical Record Selector selectorul de articole poate fi prezent sau nu;

Fig. 4

Navigation Button butonul de derulare articole est prezent sau nu; Auto Resize opiunea de redimensionare automat este prezent sau nu; Auto Center proprietatea de poziionare a formului n centrul ecranului, poate fi prezent sau nu; Border Style definete stilul n care se face marginea formularului; Control Box activeaz sau dezactiveaz butonul de mutare sau nchidere a unei aplicaii dau a unei ferestre; Width dimensiunile formularului pe orizontal; GridX i GridY caroiajul n faza de proiectare. Implicit este 10 i 12; Layout for Print este implicit No i folosete fonturi ecran.n caz contrar formularul folosete fonturi de imprimant; Palette Source poate direciona setul de culori implicite spre un fiier .DIB sau .PAL etc. Other properties conine o gam de proprieti care nu pot fi ncadrate n grupele celelalte. Aceste proprieti sunt vizibile n figura 5. Views Allowed vederile permise sunt n modul Form, Datasheet sau amndou; Default Editing editarea implicit poate fi: permis adic pot fi modificate, adugate, terse nregistrri(allow edit), numai n citire(read only), nu este permis 104

adugarea de articole noi(cant add records), este permis adugarea de articole noi(data entry);

Fig. 5

Allow Filters sunt permise sau nu filtrele; Shortcut Menu permite sau nu vizualizarea unui meniu la apsarea butonului drept al mouse-ului; Menu Bar specific un meniu bar din macrouri folosit mpreun cu formularul; Pop Up formularul este deschis sau nu ca un formular popup; Modal deschide formul ca o fereastr de interogri; Help File specific un fiier help creat de ctre utilizator n cadrul unui formular poate fi specificat doar seciunea natetului sau zona de detalii sau zona de jos a formularului(footer) executnd click pe una dintre aceste zone. Fiecare dintre aceste zone are proprieti specifice. Modificarea zonei de antet sau de subsol se poate realiza relativ uor fcnd click pe barele cu acelai nume i cu butonul mouse-ului apsat trgnd bara pn la dimensiunile dorite.

3.3.3 Selectarea, deplasarea i dimensionarea unui obiect de control


n momentul n care efectueaz un click pe suprafaa unui obiect acesta este selectat. Pentru mutarea obiectului n alt zon dect cea iniial, dup selectare se poziioneaz mouse-ul n interiorul obiectului selectat i innd butonul mouse-ului apsat se mut n zona dorit. Modificarea dimensiunilor se realizeaz astfel: dup selecie se acioneaz dreptunghiul de redimensionare aflat pe una din prile orizontale. Cursorul devine o sgeat vertical cu dou capete. Se execut click i se deplaseaz sgeata n noua poziie. Astfel se modific dimensiunile pe vertical adic nlimea obiectului. Pentru a modifica simultan limea i nlimea obiectului se execut click pe marcajele de redimensionare aflate pe colurile conturului obiectului de control. Cursorul mouse-ului devine o sgeat nclinat cu dou capete. Se execut click i se trage sgeata pn n noua poziie. Grila de control de pe suprafaa unui formular n faza de proiectare are rolul de a alinia mai uor obiectele existente n cadrul formului. Comanda View Grid din meniul modului design stabilete dac grila este activ sau nu. Propritile subformularului se pot schimba asemntor cu cele ale formularului. Pentru aceasta, trebuie nchis formularul curent i deschis subformularul n modul design dup care este acionat butonul Properties. Subformularul este prezentat fie n modul obinuit al unui form fie n modul Datasheet, care este i modul implicit de prezentare a unui subformular.

3.4 Butoanele barei de instrumente n modul Form View


105

Se lanseaz form-ul proiectat n modul Run sau (Form View) .n ordinea in care apar pe bar butoanele au urmtoarea semnificaie: 1. Selecteaz modul de proiectare al formularului (Form Design); 2. Selecteaz modul de prezentare Datasheet al formularului; 3. Tiprete formularul; 4. Vizualizeaz formularul n modul n care va fi tiprit; 5. Permite introducerea unui nou articol n formular deci i n tabelele asociate; 6. Cut; 7. Copy; 8. Paste; 9. Permite cutarea unei anumite nregistrri; 10. Sortare ascendent; 11. Sortare descendent; 12. Permite editarea unui filtru pe nregistrrile formului; 13. Aplic filtrul realizat; 14. Vizualizeaz toate nregistrrile; 15. Vizualizeaz fereastra database; 16. Reface articolul curent; 17. Reface o aciune nterprins din greeal; 18. Apeleaz Cue Card; 19. Apeleaz Help-ul mediului Acces. Folosind aceste butoane asupra formularului se pot realiza o serie de aciuni ca de exemplu: adugare de nregistrri noi, sortarea nregistrrilor ascendent sau descendent, cutarea anumitor nregistrri precum i realizarea de filtre asupra nregistrrilor. Pentru sortare se selecteaz n prealabil cmpul dorit dup care se realizeaz comanda de sortare. Folosind proprietile formularelor se poate valida modificarea datele existente ntr-un formular sau se poate invalida acest lucru, formularul avnd doar rol n vizualizarea datelor. Se poate aciona diferit din acest punct de vedere asupra formularului i subformularului.

3.5 Caseta cu instrumente Toolbox


Am vzut n pn acum modul n care am realizat un formular folosind utilitarul Wizard. Folosind instrumentele Toolbox avem posibilitatea de a realiza un formular. n formularele Access exist trei categorii de obiecte de control: Obiectele de control asociate sunt obiecte ataate unui cmp din sursa de date a formularului sau subformularului. Sursa de date poate fi o tabel sau o interogare. Casetele de text sunt cele mai utilizate obiecte de text asociate. n general obiectele de control asociate afeaz coninutul unui cmp, ele fiind nsoite de etichete care afieaz proprietatea Caption a obiectului respectiv. Aceste etichete pot fi terse fr a afecta obiectul de control; Obiectele de contol neasociate afieaz date furnizate de utilizator i care n general sunt independente de sursa de date a formularului sau subformularului. Acestea pot fi un desen sau imagine bitmap care se introduc ntr-un formular. Casetele de text neasociate sunt utilizate pentru introducerea valorilor care nu sunt utilizate pentru actualizarea unui cmp din baza de date, ci altor scopuri ca de exemplu introducerea unor valori destinate unor expresii. Unele obiecte neasociate conin i etichete, altele cum ar fi obiectele OLE nu conin etichete; Obiectele de control calculate folosesc ca surs de date expresiile. 0. Pointer (indicator) deselecteaz instrumentul selectat anterior. El este instrumentul activ implicit; 1. Label (eticheta) creaz o caset ce conine texte fixe de descriere sau instruciuni; 106

2. Text Box (caset de text) creaz o caset care afieaz i permite editarea datelor de tip text; 3. Option Group (grup de opiune) creeaz o caset dreptunghiular de dimensiune variabil, n care se pot plasa butoane, comutatoare, butoane de opiune sau casete de validare. Numai un singur obiect de control din interiorul casetei poate fi activat la un moment dat; 4. Toggle Button (buton comutator) este un buton care atunci cnd este selectat comut din starea On n starea Off i invers; 5. Option Buton (buton de opiune) se mai numete i buton radio care se comport identic cu butonul comutator; 6. Check Box (caset de validare) creaz o caset de validare care atunci cnd este selectat, comut ntre starea On i Off. Dac se doresc selectate mai multe opiuni simultan atunci aceste casete trebuie plasate n afara grupurilor de opiune; 7. Combo Box (caset combinat) este format dintr-o caset de text editabil, n care putei introduce o valoare i o list din care putei alege o valoare; 8. List Box (caset de list) creaz o caset care conine o list derulant de opiuni din care putei selecta o valoare. Ea este de fapt o parte a unei casete combinate; 9. Graph (grafic) permite introducerea n formular a unui grafic; 10. Subform (subformular) ataeaz unui formular un subformular; 11. Unbound Object (obiect neasociat) include in formular a unui obiect OLE obinut de exemplu cu Microsoft Graph sau Microsoft Draw; 12. Bound Object (obiect asociat) afieaz coninutul unui cmp OLE. Pot afia obiecte grafice, sunete sau imagini video, etc; 13. Line (linie) creaz o linie dreapt care poate fi redimnsionat ulterior; 14. Rectangle (dreptunghi) creaz un dreptunghi ce poate fi redimensionat ulterior; 15. Page Break (delimitatorul de pagin) determin imprimant s treac la pagin nou ncepnd de la poziia delimitatorului de pagin. n modul Run delimitatoarele nu sunt afiate; 16. Command Button (buton de comand) execut la selectare o comad macro Access sau o procedur VBA de tratare a evenimentelor; 17. Control Wizard activeaz utilitarul cu acelai nume; 18. Lock permite ca un element selectat s fie introdus de mai multe ori n form, prin click pe butonul stng al mouse-lui fr s fie necesar reselectarea lui. n continuare, ne punem problema de a ilustra folosirea obiectelor de control. Pentru
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

Fig. 6

107

aceasta, vom crea un formular nou. n formular se va afia numele i titlul angajatului din tabela Angajat, precum i mai multe informaii legate de angajat, informaii care se gsesc n tabela Actiuni_Personal. Datorit faptului c tabela Actiuni_Personal conine mai multe informaii despre un anumit angajat va trebui s realizm o interogare one-to-many prin care s legm tabela Angajai de tabela Actiuni_Personal. Se selecteaz: opiunea query din fereastra database i se face click pe butonul New; se aleg tabelele Angajai i Actiuni_Personal. Se face legtura ntre cmpul Marca i nr_matricol din cele dou tabele; se introduce n prima coloan din query caracterul * din tabela Actiuni_Personale care semnific faptul c n interogare vor aprea toate cmpurile tabelei respective; din tabela Angajai se ale cmpurile Nume, Prenume, Titlu care se introduc n coloanele 2,3,4i 5; n coloana Nume se activeaz opiunea de sortare; se salveaz interogarea sub un nume oarecare.

3.6 Crearea unui formular gol cu antet i subsol


Din fereastra Database se alege opiunea Form i se face click pe butonul New, se alege din lista derulant care apare (parete superioar a ferestrei) introgarea realizat anterior, dup care se face click pe butonul Blank Form. n continuare se va afia caseta Toolbox corespunztoare executnd click pe butonul corespunztor sau din opiunea View a meniului principal. dac formularul nu are zonele de antet i subsol se alege din meniul principal opiunea Format, Form Header/Footer. Dac se dorete ca formularul s apar fr gril se deselecteaz opiunea din meniu, View. Dac nu se dorete s apar riglele de pe margine se deselecteaz opiunea Ruler din View; modificarea zonei Detail se poate face prin repoziionarea liniilor Detail respectiv Form Footer de pe ecran;

Fig. 7

108

n continuare este prezentat modul de realizare al formului din figura 7

3.6.1 Adugarea unei etichete n zona de antet


Eticheta este obiectul cel mai uor de realizat. Se face click pe butonul corespunztor din zona ToolBox (butonul 1 din fig 6) dup care se poziioneaz n zona dorit. Pe linia de stare se afieaz numrul de linii i de caractere ce pot fi scrise n respectiva etichet. Dac eticheta depete limitele zonei de antet atunci bara Detail se deplaseaz automat, asfel nct eticheta s ncap n zon. Dac nu se tasteaz cel puin un caracter caseta dispare la urmtorul click al mouseului. n mod asemntor se creaz i celelalte obiecte de control. Dac se dorete schimbarea fontului sau a dimensiunilor caracterelor se aleg butoanele corepunztoare de pe bar. Dac textul nu ncape n caset se poate alege opiunea Format, Size, Size to Fit pentru ncadrarea perfect a acestuia n caset. Asemntor cu celelalte obiecte, dup selecia acestuia, i click pe butonul Properties apare o fereastr din care se pot seta o serie de proprieti ale obiectului. Aceste proprietti sunt structurate ca i propriettle celorlalte obiecte deci ca i cele enunate pentru formular. Proprietile Layout se refer la posibiliti de modificare a fontului, a mrimii acestuia, a culorii textului, a culorii fondului, a culorii marginii, a dimensinilor, a modului de aliniere a textului n caset etc. Data properties nu are iar other Properties se refer la numele care I se atribuie obiectului.

3.6.2 Crearea casetelor de text asciate, multilinie i casetelor calculate


Access utilizeaz urmtoarele patru tipuri de baz de casete de text: Casete de text cu o singur linie asociate de obicei obiectelor de control din formular ori cmpurilor unei tabele sau interogri; Casete de text multilinie asociate de obicei cmpurilor memo i includ o bar de derulare vertical care permite accesul la textul care nu apare n caset; Casete de text calculate, obin valori din expresiile care ncep cu semnul egal i au de obicei o singur linie. O astfel de caset se poate asocia unui cmp al unei tabele. Dac nu ea este un obiect neasociat Nu se poate edita valoarea afiat de o caset de text calculat. Casetele de text neasociate pot fi create pentru a furniza valori comenzilor macro i procedurilor VBA.

3.6.3 Casete de text asociate cu o singur linie


Acestea sunt cel mai frecvent utilizate obiecte de control pe un formular Access. Cu ajutorul acestor obiecte poate fi vizualizat coninutul unor anumitor cmpuri existente n tabele. Pentru adugarea unei astfel de obiect se procedeaz astfel: 1. Se activeaz butonul corespunztor listei de cmpuri de pe bara toolbars. Din lista care apare se selecteaz cmpul dorit; 2. Dup selectarea cmpului, innd butonul mouse-lui apsat, se trage cmpul peste formular n poziia dorit. n partea dreapt, este eticheta ataat cmpului. Aceasta conine un anumit text ce poate fi schimbat dup dorina utilizatorului; 3. Dimensiunile etichetei precum i ale cmpului pot fi modificate dup dorina utilizatorului. Pot fi modificate i celelalte proprieti ale obiectului folosind fereastra Properties care se activeaz cu ajutorul butonului corespunztor. Pentru exemplul dat, cmpurile din interogarea realizat sunt prezentate prin: matricol; nume; 109

prenume; nota, comentariu, etc.

3.6.4 Adugarea unei casete de text multilinie, cu bar de derulare vertical


Acesta este un tip special de obiect oferit de ctre mediul Access. Casetele multilinie permit afiarea irurilor lungi de text pe mai multe rnduri a cror lungime este determinat de lungimea casetei. Pentru exemplul nostru este cazul casetei comentariu.

3.6.5 Crearea unei casete de text calculate.


ntr-o caset de text calculat se poate afia rezultatul oricrei expresii Access valide. O expresie trebuie s nceap cu sermnul egal i poate conine funcii Access care returneaz valori. Pentru formularul prezentat este cazul casetei n care este afiat data curent. Pentru acesta se vor efectua urmtoarele aciuni: Se alege obiectul Text Box din caseta ToolBox; Eticheta casetei de text este Date/Time; n caseta de text se tasteaz =Now() prin care se afieaz valorile curente ale datei i orei din calculator. Cu ajutorul memoriei clipboard a mediului Windows folosind opiunile Copy, Cut, Paste pot fi manevrate cu uurin obiectele existente ntr-un formular.

3.6.6 Modul de afiare a formularului.


Modul de afiare al unui formular este obinut prin opiunea Default View i poate fi: Single Form prin care se afieaz un singur formular i se afieaz o singur nregistrare la un moment dat; Continous Forms sau formulare continue afieaz mai multe nregistrri fiecare fiind o copie a zonei detail a formularului. Pentru subformularele create cu utilitarul Form Wizard modul de afiare prestabilit este Continuous Forms; Datasheet (formulare tabelare), afieaz cmpurile formularului aranjate n linii i coloane. Schimbarea opiunii de afiare se face selectnd din fereastra Properties, Layout Properties opiunea Default View (Access 2.0), din properties optiunea Format, pentru Access 2003.

3.6.7 Crearea grupurilor de opiune


ntr-un formular pot fi alese diverse butoane care definesc diferite aciuni. Dac se dorete gruparea acestora se poate proceda n dou moduri: manual sau folosind utilitarul predefinit Option Group Wizard. Pentru generarea grupului de butoane de pe formularul nostru se va face click pe butonul Control Wizard i apoi pe butonul Option Group n prima fereastr care apare se aleg valorile pentru butoane: excelent, bun, acceptabil, suficient insuficient. Se execut apoi click pe butonul Next. n cea de a doua fereastr care va apare, se va stabili opiunea yes pentru valoarea prestabilit (prima valoare din list, care va aprea la execuia formularului). Se face click pe butonul Next i va apare cea de a treia fereastr de dialog. n aceast fereastr se vor stabilii valori dorite pentru fiecare opiune. Se execut click. n cea de a patra fereastr se va stabili legtura dintre grupul de butoane i un anumit cmp din tabel sau dintr-o interogare. n cazul nostru cmpul ales este nota. Al cincilea dialog va permite stabilirea stilului n care este afiat un anumit grup de butoane. 110

Ultima caset de dialog permite s se determine numele titlului care va apare deasupra grupului de butoane. n cazul n care se dorete o aciune manual fr afolosi utilitarul Wizard se pot alege unul sau mai multe obiecte numite: Toggle Button; Option Button; Check Box; Aceste butoane pot fi folosite separat sau impreun pentru diverse aciuni. Se vor aciona butoanele corespunztoare opiunii dorite dup care folosind fereastra Properties acestea vor fi personalizate individual din punct de vedere al aciunii prin acionarea butonului, dimensiunile acestuia, legtura cu un anumit cmp dintr-o tabel etc.

3.6.8 Utilizarea casetelor list i casetelor combinate


Acest tip de obiect permite alegerea unei anumite informaii dintr-o list i nu tastarea acestuia i introducerea ntr-o tabel. Casetele list permit vizualizarea informaiilor tot timpul. Ele se numesc n mediul Access, ListBox. Casetele combinate i listele derulante se mai numesc ComboBox. Ele ocup spaiu mai puin pe formular i trebuie deschise pentru a putea selecta o anumit valoare. Acestea sunt nsoite de ctre o caset de text, n care se poate tasta valoarea dorit pentru a putea gsi mai rapid informaia dorit. O astfel de list poate conine unul sau mai multe cmpuri ale unei tabele, ale unui query, o serie de valori ale utilizatorului sau funcii proprii mediului Access. Cele mai frecvent utilizate obiecte sunt acelea care conin doar dou cmpuri. Prima coloan conine codul care actualizeaz valoarea cmpului la care este asociat obiectul de control, iar a doua coloan conine numele codului. Pentru generarea acestor obiecte, poate fi folosit i utilitarul Wizard. Pentru aceasta nainte de a alege obiectul ListBox sau ComboBox se exexcut click pe butonul Control Wizard. Generarea manual presupune urmtoarele etape: se deschide formularul; se dezactiveaz butonul Control Wizard; se selecteaz obiectul ComboBox din bara de instrumente; se selecteaz fereastra Properties (click pe butonul corespunztor) din care se alege opiunea Data Properties; se alege n opiunea Control Source numele cnpului din tabela sau interogarea asociat formului n care se vor introduce valori din sursa selectat n proprietatea Row Source; din proprietatea Row Source se aleg cmpurile care vor aprea n lista derulant i cmpul care va fi surs pentru caseta combinat; se selecteaz Layout Properties din care se va selecta proprietatea Column Count cu ajutorul creia se vor specifica numrul de coloane care va apare n list; prima coloan din tabela sau interogarea selectat ca i surs va fi funcie de valoarea existent n coloana Bound Column (n data Properties) Dac sursa de date specificat de ctre Row Source este Table Query atunci se poate nlocui valoarea acestei proprieti cu o instruciune SQL. O caset combinat se poate realiza selectnd valorile dintr-o list de valori creat anterior. O astfel de caset se poate realiza cu ajutorul dialogului Combo Box Wizard astfel: n prima fereastr a dialogului care apare se selecteaz opiunea I will type in values that I want, dup care se face click pe butonul next; n urmtoarea fereastra care apare, se va selecta numrul de coloane necesar i se va stabili mrimea coloanelor i se apas next;

111

Se stabilete coloana care conine valoarea pe care dorii s-o pstrai sau s-o
utilizai ulterior. Aceasta trebuie s fie o coloan care conine valori unice. Se execut click; A cincea caset de dialog stabilete dou posibiliti i anume: memorarea valorilor din coloan pentru alte utilizri sau scrierea acestora n coloana n care se dorete. Dup stabilirea opiunii dorite se activeaz butonul Finish i dialogul se ncheie. Dac se dorete ca acest proces s se desfoare manual, atunci n proprietatea Row Source din caseta de dialog Properties - Data Proprties se va introduce un ir de caractere astfel: Valoare_n_coloana_1;valoare_n_coloana_2; pentru rndul 1 Valoare_n_coloana_1;valoare_n_coloana_2; pentru rndul 2 etc.

3.6.9 Crearea unui subformular al unui formular dat


n mediul Access 2.0 se poate introduce un formular n alt formular. Acest lucru este posibil i n Access 2003 dar n acest mediu, exist posibilitatea de a realiza folosind utilitarul Wizard un subformular, care n prealabil nu exista. Dac dorim introducerea unui subformular ntr-unul deja existent se va selecta din bara toolbar, butonul care corespunde tipului subformular, iar n caseta Properties se alege din opiunea Data Source numele formularul care se dorete s fie subformular. Subformularul se poate comporta ca o entitate independent n cadrul formularului printe precum i mpreun cu acesta. El poate conine cmpuri ale unei tabele sau ale unui query etc, la fel ca orice formular de sine stttor.

3.6.10

Crearea formularelor continue

Pentru a prezenta informaiile din mai multe nregistrri se pot realiza formulare continue, alegnd n procesul de realizare a formularului din caseta Properties, a obiectului Form, opiunea Layout Properties, opiunea Default View, valoarea Continuous Form.

3.6.11 Includerea antetului i a zonei de subsol n formular i n paginile tiprite


Seciunile Page Header/Footer selectate din meniul format, apar doar atunci cnd este tiprit un formular. Ele nu apar pe ecran n modul Run. Seciunea de antet permite utilizarea unui titlu diferit pentru formularul tiprit. Subsolul de pagin permite introducerea numrului de pagin precum i data n care acesta este elaborat.

3.7 Probleme rezolvate


Se consider baza de date producie care are urmtoarele tabele: Produse COD_PRODUS prod001 prod002 prod010 prod060 DENUMIRE recorder televizor walkman videocasetofon PRET 800000 160000 300000 430000 112

prod080 prod500 Stocuri COD_DEPOZI dep01 dep01 dep01 dep10 dep10 Depozite COD_DEPOZI dep01 dep10 Beneficiari COD_BENEFI bnf011 bnf012 bnf013 Comenzi

videocasetofon radiocasetofon

280000 105000

COD_PRODUS prod001 prod060 prod080 prod060 prod080

CANTITATE 50 150 100 200 50

LOCALITATE bucuresti pitesti

NUME vasilescu georgescu marinescu

ADRESA bucuresti salcimilor 27 bucuresti salcimilor 4 pitesti privighetorii 12

NUMAR COMANDA 1014 2200 Facturi NUMAR 1014 1014 2200 2200 Exemplul 1

DATA 11/23/96 6/28/96

COD_BENEFI bnf011 bnf013

COD_PRODUS prod001 prod002 prod020 prod500

CANTITATE 2 1 2 3

Se consider tabela produse. S se realizeze un form prin care sunt vizualizate informaiile din tabela produse. Pentru a realiza acest form se realizeaz urmtoarele aciuni: din fereastra database se acioneaz butonul Forms - New; se definete tabela din care se vor prelucra datele i se alege modul de lucru Blank Form; n fereastra Form care apare se alege Form Header din meniul format;

113

n zona FormHeader se alege un control text care conne Coninutul tabelei Produse; n zona Details se introduc cmpurile din tabela Produse. Se alege controlul Text Box i n Properties - Data Properties- Control Source se alege numele cmpului. O alt metod de definire a obiectelor dorite este urmtoarea: se acioneaz butonul Field List i se trage cmpul dorit n zona detail. Se procedeaz identic pentru celelalte cmpuri; Se definesc proprietile formului i ale obiectelor don Properties - Layout Properties. Formul realizat este prezentat n figura 8.

Fig. 8

Exemplul 2 S se realizeze un formular prin care sunt prezentate informaiile din tabelele Produse i Stocuri. Se realizeaz o interogare prin care sunt legate prin intermediul codului produs cele dou tabele;

Fig. 9

114

Se acioneaz butoanele pentru crearea unui formular nou care are zonele Details, Form Header, Form Footer. Se introduc n zona Detail cmpurile din interogare. Rezultatul este formularul din figura 9 Exemplul 3 S se realizeze un form prin care pot fi apelate alte formulare. Formularul va conine diverse butoane prin care se apeleaz formularele dorite. Etapele de realizare sunt urmtoarele: se realizeaz un form nou; se aleg controalele obiect pentru tipurile de butoane existente n Access. Vor fi apelate formulare create anterior. Formul realizat este prezentat n figura 10. Formularele sunt apelate prin nscrierea n metoda (events) on click a urmtoarelor linii de comand: DoCmd OpenForm "produse" pentru apelul form-ului cu numele produse; DoCmd OpenForm "stocform" pentru apelul form-ului cu numele stocuri; DoCmd Close pentru nchiderea formului care conine butoanele;

Fig. 10

Exemplul 4 S se relizeze un formular prin care pot fi vizualizate unele cmpuri dintr-o tabel prin selectarea unui anumit cmp dintr-un control List Box sau Combo Box. se creeaz un form nou; n zona Form Header se introduc controalele de cutare List Box i Combo Box. Cmpul Denumire din tabela Produse se ataeaz acestor controale ; n zona Details se introduc cmpurile tabelei Produse.

115

Formularul realizat este prezentat n figura 11. Se alege denumirea dorit din unul dintre cele dou controale i se vizualizeaz informaiile din tabela Produse.

Fig. 11

Exemplul 5 S se realizeze un form care conine un subform. Formularul care este subform este realizat n prealabil. n formularul principal vor fi vizualizate informaii referitoare la tabela Produse iar n subformular informaii referitoare la tabela stocuri. se creaz subformularul n care, se introduce n zona Details cmpurile tabelei stocuri. Acesta este de tipul Datasheet; se creaz formularul principal n care se introduc cmpurile tabelei produse; se realizeaz obiectul subformular n formularul principal cu ajutorul butonului cu acelai nume de pe bara cu butoane. Rezultatul acestor aciuni este formularul din figura 12

Fig. 12

116

RAPOARTE
n aceast capitol este prezentat modul de obinere al unui raport simplu dintr-un tabel. Rapoartele sunt utile pentru comunicrile cu alte persoane. n cazul programului Microsoft Access, modalitatea optim de comunicare a unor date este prin intermediul unui formular sau al unui raport. Capitolul 3 v-a artat cum s folosii formularele pentru a v transmite rezultatele. Formularele sunt utile pentru raportri simple, ca i pentru trecerea n revist i editarea datelor. Limitrile lor se datoreaz faptului c nu pot grupa datele, pentru afiare i calcule pe grupuri, c avei mai puin control asupra aezrii n pagin i nu putei insera un raport ntr-un formular. Rapoartele nu pot fi utilizate la trecerea n revist ori editarea datelor, dar permit un control superior n privina aezrii n pagin, posibilitatea gruprii datelor pentru totaluri i de inserare n raport a unui grafic, ori chiar a altui raport.

4.1 Crearea unui raport


Microsoft Access include o facilitate Raport Wizard, care uureaz obinerea rapoartelor din tabele sau cereri. Pentru a crea un raport, deschidei baza de date dac nu este deja deschis. (Selectai Open Database din meniul File, sau executai click pe pictograma Open Database din bara cu instrumente de lucru) Cnd apare fereastra Database, alegei butonul Report din stnga, apoi selectai New. Putei alege dup aceea ntre Report Wizards i Blank Report (fig 1).

Fig. 8

n caseta de text Select a Table/Query, executai click pe sgeata descendent din dreapta. Se deschide o caset cu lista tabelelor disponibile din care putei construi rapoarte. Executai click pe numele tabelului dorit pentru raport, apoi selectai Report Wizards. Urmtorii pai v permit s creai un raport cu ajutorul lui Report Wizard: 1. Pe primul ecran, selectai Single-Column drept instrument Wizard pe care dorii s-l folosii, apoi executai click pe OK; 2. Alegei cmpurile pentru raport, sau selectai ca s mutai toate cmpurile n caseta-list Field order on report (fig. 2). Apoi alegei Next >; 3. Alegei cmpul sau cmpurile dup care dorii s facei sortarea i selectai Next >. 4. Alegei aspectul raportului. Pentru exemplul nostru, alegei Executive (fig.3) i executai click pe Next >. 5. Introducei un titlu pentru raport, apoi alegei Finish. Report Wizard creeaz raportul i afieaza imaginea prealabil a ceea ce se va tipri.

117

Fig. 9

Fig. 10

4.1.1 Vizualizarea prealabil a raportului


Imaginea prealabil a tipririi ofera o idee asupra felului n care va arta raportul i cte pagini va avea. Paginile vor fi mrite i le putei derula folosind barele de derulare orizontale i verticale; de asemenea, putei utiliza butoanele Pagin din partea inferioar a ferestrei. Sgeile interioare v deplaseaz cu cte o pagin o dat, iar sageile exterioare v deplaseaz rapid la prima sau la ultima pagin. Pentru a vedea ntreaga pagin, deplasai cursorul mousului pe ea (cursorul se transform n imaginea unei lupe) i executai click. Putei reveni la vederea mrit, executnd click n locul unde dorii s privii. Putei oricnd intra n modul de vizualizare prealabil a unui raport, alegnd Print Preview din meniul File.

4.1.2 Tiprirea raportului


Raportul poate fi tiprit, alegnd butonul Print (Tiprire) din bara cu instrumente de lucru, ori Print din meniul File. Apare o caset de dialog. Indicai opiunile dorite, apoi alegei OK.

118

4.1.3 Salvarea raportului


Dup ce ai creat un raport este bine s-l salvai. Pentru aceasta, alegei Save As din meniul File. Introducei denumirea sub care dorii s salvai raportul i executai click pe OK. Nu folosii numele unui tabel, raport sau cerere deja existente.

4.2 Configurarea personal a rapoartelor


4.2.1 Modificarea formei unui raport
Forma unui raport poate fi modificat n mai multe feluri. De pild, putei muta obiecte n diferite locuri, le putei redimensiona, putei aduga etichete i prevedea atribute de text. Ca s modificai un raport, procedai astfel: 1. Deschidei baza de date i alegei butonul Report din fereastra Database. Lista arat toate rapoartele existente n baza de date. 2. Selectai raportul pe care intenionai s-l modificai i alegei butonul Design din fereastra Database. Raportul este afiat (fig. 4). El poate fi modificat precum un formular.

4.2.2 Redimensionarea controalelor


Fiecare obiect de pe raportul afiat este un control. n modul Design al raportului, putei deplasa i redimensiona controalele, sau adaug altele noi. Controlul este un obiect dintr-un raport sau formular care afieaz datele unui cmp, rezultatul unui calcul, un text, un grafic, o imagine sau alt obiect. Pentru a manipula un control, mai nti trebuie s-l selectai. Ca s selectai o caset de text cu etichet, executai click pe caseta de text asociat. Caseta de text cu eticheta asociat va fi afiat cu puncte de control impus. Acestea va permit urmtoarele modificri: Pentru a redimensiona o caset pe vertical, tragei punctul impus, superior sau inferior; Pentru a redimensiona o caset pe orizontal, tragei punctul impus, drept ori stng; Pentru a redimensiona o caset att pe orizontal ct i pe vertical, tragei pe diagonala punctele impuse din col.

Fig. 11

Ca s aliniai rezultatul obinut, utilizai riglele afiate. Putei selecta i mai multe 119

controale simultan, innd apsat tasta S i executnd click pe ele.

4.2.3 Deplasarea controalelor


Microsoft Access v permite s deplasai o caset de text i eticheta ei asociat, laolalt sau separat. Pentru a le deplasa separat, selectai controlul, apoi tragei punctul cel mare de control impus din colul stng superior. Acesta e cunoscut drept punct de mutare. Pentru a deplasa laolalt caseta de text i eticheta, executai click pe un control. Cnd sgeata mouse-ului se transform ntr-o palm, deplasai. caseta de text i eticheta ei n noua poziie. Atunci cnd deplasai i redimensionai controalele, putei efectua alinieri cu ajutorul riglelor.

4.2.4 Adugarea unei etichete


O etichet nu este altceva dect text adugat ulterior unui raport, pentru a afia informaie. Titlul deja existent dat raportului reprezint un tip de etichet. Putei, de asemenea, s adugai i alt text n raport ca de exemplu numele companiei dumneavoastr. Eticheta nu este legat de alte controale. Ca s adugai o etichet, folosii caseta cu instrumente de lucru (fig 5). Aceasta apare atunci cand deschidei un raport n modul Design; dac nu apare pe ecran, alegei Toolbox din meniul View, pentru a fi afiat. Executai click pe butonul Label (situat n stnga, n rndul al doilea, marcat cu un A). Apoi executai click pe raport n locul unde vrei s fie eticheta i introducei textul dorit.

6 7

10

11 12 13 14 15 16
Fig.12

17 18

19

Butoanele casetei de lucru au urmtoarea semnificaie 1. Pointer(indicator) deselecteaz instrumentul selectat anterior. El este instrumentul activ implicit; 2. Label (eticheta) creeaz o caset ce conine texte fixe de descriere sau instruciuni; 3. Text Box (caset de text) creaz o caset care afieaz i permite editarea datelor de tip text; 4. Option Group (grup de opiune) creaz o caset dreptunghiular de dimensiune variabil, n care se pot plasa butoane, comutatoare, butoane de opiune sau casete de validare. Numai un singur obiect de control din interiorul casetei poate fi activat la un moment dat; 5. Toggle Button (buton comutator) este un buton care atunci cnd este selectat comut din starea On n starea Off i invers; 6. Option Buton (buton de opiune) se mai numete i buton radio care se comport identic cu butonul comutator; 7. Check Box (caset de validare) creaz o caset de validare care atunci cnd este selectat, comut ntre starea On i Off. Dac se doresc selectate mai multe opiuni simultan atunci aceste casete trebuie plasate n afara grupurilor de opiune; 8. Combo Box (caset combinat) este format dintr-o caset de text editabil, n care putei introduce o valoare i o list din care putei alege o valoare; 9. List Box (caset de list) creaz o caset care conine o list derulant de opiuni din care putei selecta o valoare. Ea este de fapt o parte a unei casete combinate; 120

10. Graph (grafic) permite introducerea n raport a unui grafic; 11. Subform (subformular) ataeaz unui raport un subformular; 12. Unbound Object (obiect neasociat) include in raport a unui obiect OLE obinut de exemplu cu Microsoft Graph sau Microsoft Draw; 13. Bound Object (obiect asociat) afieaz coninutul unui cmp OLE. Pot afia obiecte grafice sau sunete sau imagini video, etc; 14. Line (linie) creaz o linie dreapt care poate fi redimensionat ulterior; 15. Rectangle (dreptunghi) creaz un dreptunghi ce poate fi redimensionat ulterior; 16. Page Break (delimitatorul de pagin) determin imprimanta s treac la pagin nou ncepnd de la poziia delimitatorului de pagin. n modul Run delimitatoarele nu sunt afiate; 17. Command Button (buton de comand) la selectare execut o comad macro Access sau o procedur VBA de tratare a evenimentelor; 18. Control Wizard activeaz utilitarul cu acelai nume; 19. Lock permite ca un element selectat s fie introdus de mai multe ori n form, prin click pe butonul stng al mouse-lui fr s fie necesar reselectarea lui.

4.2.5 Configurarea textului


Putei modifica textul oricrui raport, schimbnd fonturile, mrimile, culoarea, alinierea i atributele (normal, ngroat, cursiv). Pentru a schimba aspectul textului dintr-un control, executai urmtorii pai: 1 Executai click pe controlul pe care dorii s-l modificai. 2 Executai click pe oricare dintre butoanele Cut, Copy, Paste, Aliniere la stnga, Aliniere la dreapta, Centrare, Justfy, Alegere Font i Mrime Font ale barei cu instrumente de lucru, pentru a configura textul; 3 Pentru a stabili culoarea textului, executai click pe butonul Palette sau selectai Palette din meniul View; 4 Dup ce ai terminat lucrul, alegei Size to Fit din meniul Format, pentru a redimensiona eticheta la dimensiunile noului text.

4.2.6 Adugarea unui cmp la un raport


Dup ce ai creat un raport, i putei aduga cmpuri. Deschidei raportul n modul Design, apoi deschidei lista de cmpuri. Dup aceea, putei deplasa cmpurile n locul cuvenit din raport.

4.2.7 Crearea unui raport cu date grupate


Folosind Microsoft Access, puteti crea rapoarte cu date grupate, astfel nct s v arate subtotaluri i totaluri. De exemplu, s presupunem ca dorii s creai un raport care sa v arate vnzrile pe regiuni, indicnd i totalul general. Vei utiliza Report Wizard pentru a crea raportul din acelai tabel (fig 6), n modul urmtor: 1 Selectai Report din fereastra Database; 2 Executai click pe butonul New din fereastra Database; 3 n fereastra New Report, alegei tabelul Angajatr din caseta-lista, apoi alegei Report Wizards; 4 Din ecranul pe care se afieaz instrumentele Report Wizards, alegei Groups/Totals, apoi apsai OK; 5 Pe urmtorul ecran, selectai cmpurile ce trebuie tiprite i ordinea lor; Alegei Next >. 121

6 7 8

Pe urmtorul ecran, alegei sortarea dup cmpul dorit. Alegei Next >; Pe urmtorul ecran, alegei modul de grupare Normal", apoi Next >; Pe urmatorul ecran, alegei calculul totalului pentru cmpul PROFESIA, apoi executai click pe Next >. 9 Configurai aspectul n modul Executive (aspectul prestabilit), apoi alegei Next >; 10 Introducei titlul i alegei Finish pentru a vedea raportul.

4.3

Crearea graficelor

n aceast paragraf vei vedea cum se adaug cum se adaug i un grafic unui raport. Graficele ofer informaii vizuale i sunt extrem de utile persoanelor care n-au timp s citeasc un intreg raport. De pild, un director foarte ocupat poate prefera s examineze graficul vnzrilor pe regiuni dect s descifreze un raport statistic. Considerm baza de date prezentat n capitolele precedente. Considerm c dorim s obinem un grafic care ilustreaz situaia salariilor pe profesii. Pentru aceasta procedm astfel: 1. Se alege butonul Graph ntr-un raport nou sau ntr-un raport existent. Prin acionarea butonului se declaneaz generatorul de grafice; 2. Se alege tabela Angajatr din care se va genera graficul; 3. Se aleg cmpurile Salar i Profesia, funcie de care se va genera graficul; 4. Se alege tipul de grafic dorit, precum i diverse particulariti ale acestuia. Rezultatul este prezentat n figura 7

Fig. 7

FUNCII REFERITOARE LA TIPURILE DE DATE ACCESS


Pentru a lucra eficient n Access este necesar s tii modul n care s creai expresii folosind operatori, constante, identificatori i funcii.

122

Operatorii sunt aritmetici, de atribuire i comparare (relaionali), de concatenare, de identificare i logici. De asemenea operatori sunt operatorii: Between, In, Is, Like; Constantele (literals) sunt introduse de utilizator. Ele sunt folosite la stabilirea datelor iniiale i n combinaie cu identificatorii cmpurilor la compararea valorilor din cmpurile tabelelor; Identificatorii sunt numele obiectelor Access: tabele, interogri, rapoarte, formuri, module. Mediul conine cinci constante predefinite denumite care servesc i ca identificatori: True, False, Yes, No i Null. Constantele denumite i variabile pe care le creai n limbajul de programare Access VBA sunt de asemenea identificatori; Funciile ntorc n general o valoare n locul numelui funciei.; Perechea de paranteze drepte([]), trebuie s ncadreze numele obiectelor Access. n general la definirea numelor obiectelor este bine s nu fie folosite spaii, eventual liniua de subliniere (underscore)_.

5.1 Operatori care apar n expresiile Access


Operatorii sunt de mai multe tipuri i anume: arimetici care sunt +, - (i pentru semn), *, /(mparte un operand la altul), \ (mparte un operand ntreg la altul), mod (ntoarce restul mpririi la un ntreg), ^ (ridic un operand la o putere; relaionali sunt <, >, <=, >=, <> (diferit), =. Operatorul = mai este considerat i operator de atribuire. Rezultatul unei comparri este ntodeauna un rezultat logic de tipul True sau False, cu excepia cazului cnd unul dintre operanzi are valoarea Null. n aceast situaie orice comparare ntoarce rezultatul Null, deoarece aceasta reprezint o valoare necunoscut care nu se poate compara cu una tiut. logici sunt and, or, not, xor (sau exclusiv), eqv(echivalent) i Imp (implicaie). Ultimii trei operatori se folosesc foarte rar, de aceea, de obicei se neglijaz; de concatenare, combin dou valori text ntr-un singur ir de caractere. irul ABD concatenat cu irul FGH=> irul ABDFGH. Cel mai uzual operator de concatenare este caracterul ampersand (&). Ca i operator de concatenare mai poate fi folosit i caracterul plus +; de identificare sunt !(semnul exclamrii, denumit adeseori i operatorul bang) i .(punct). Ele execut urmtoarele operaii: combin clasele de obiecte cu numele unui obiect pentru al identifica; deosebete numele obiectelor de proprieti; identific anumite cmpuri din diverse tabele. ali operatori care se folosesc n Access sunt: Is folosit mpreun cu Null pentru a stabilii dac o valoare este Null sau Not Null; Like stabilete dac o valoare a unui ir ncepe cu unul sau mai multe caractere; In stabilete dac un anumit ir se gsete n interiorul altui ir sau ntr-o list de caractere; Between stabilete dac o valoare numeric se gsete ntre alte dou valori numerice. 123

Constantele pot fi numerice pozitive sau negative, text sau ir de caractere, date calendaristice/timp. Variabilele de memorie sunt zone de memorie care primesc un nume i care conin date de un anumit tip. Variabilele de memorie au tipul de dat identic cu tipul de date folosit n tabelele Access. Tipul de date Variant este un tip specific mediului Access, el permiind concatenarea de valori de tipuri diferite, precum un ntreg i un ir de caractere, fr s fie necesar folosirea instruciunilor de conversie a datelor. Funciile au sintaxa format dintr-un nume urmat de paranteze rotunde (). ntre paranteze pot exista mai muli parametrii. n general n mediul Access funciile sunt de dou categorii: cu carecter global care acioneaz asupra tuturor tipurilor de date ale mediului; care aconeaz numai asupra unui anumit tip de dat.

5.2 Funcii pentru tipul de date data calendaristic i timp


Variabila de tip dat calendaristic este ncadrat ntre semnele #. De exemplu dac dorim sdefinim variabila data_c de tip dat calendaristic avem: data_c = #20-10-98# Funcie Date() Date$() Descriere i Returneaz data i ora curent a sistemului ca tip variant sau string. La funcii n mediul Access 2003 parantezele pot s lipseasc. Exemplu ?date() 24.10.1998 ?date 24.10.1998 ?date$ 10-24-1998 ?date$() 10-24-1998 Returneaz o dat care poate fi mai mare ?dateadd("d",31,date) sau mai mic cu o valoare numeric dect ?dateadd("m",31,date) 24.05.2001 data considerat. Numrul adugat poate 24.11.1998 fi zile(d) sau luni(m) say ani(yyyy) ?dateadd("yyyy",31,date) 24.10.2029 ?datediff("d","01-03-98",date) 237 ?datediff("m","01-03-98",date) 7 ?datediff("yyyy","01-03-98",date) 0 ?datepart("d",date) 24 ?datepart("m",date) 10 ?datepart("yyyy",date) 1998 ?datepart("w",date) 7 din ?dateserial(98,10,24) 124

Dateadd()

Datediff()

Datepart()

Returneaz un numar ntre egal cu diferena dintre dou date calendaristice. Acest numr poate fi: numrul de zile(d), numrul de luni(m), numrul de sptmni (w) sau numrul de ani(yyyy) Returneaz un ntreg care reprezint: ziua sau luna sau sptmna, sau anul, funcie de caracterul de control de pe prima poziie.

Dateserial()

Returneaz

subtipul

Variant

Datevalue() Day() Hour() Minute() Month() Now() Second() Time() Time()$ Timeserial() Timevalue() Weekday()

argumentele an, lun, zi Returneaz data n formatul caracter Returneaz un ntreg ntre 1 i 31 care reprezint ziua dintr-o dat calendaristic Returneaz un ntreg ntre 0 i 23 care reprezint ora dintr-o dat calendaristic. Returneaz un ntreg ntre 0 i 59 care reprezint minutul dintr-o dat calendaristic. Returneaz un ntreg ntre 1 i 12 care reprezint luna dintr-o dat calendaristic. Returneaz data curent i ora din calculator Returneaz un ntreg ntre 0 i 59 care reprezint secunda dintr-o dat calendaristic. i Returneaz poriunea timp dintr-o valoare data calendaristic/timp

24.10.1998 ?datevalue("24-oct-98") 24.10.1998 ?day(date) 24 ?hour("01:20 PM") 13 ?Minute("01:20 Am") 20 ?month(date) 10 ?now 24.10.1998 17:56:14 ?second("01:24:23") 23 ?time 17:57:43

?time() 17:57:35 ?time$ 17:57:54 Returneaz valoarea serial a orei ?timeserial(17,58,34) 17:58:34 exprimat n ore minute i secunde Returneaz ca tip Variant valoarea serial ?timevalue("17:59") a orei introdus ca valoare string 17:59:00 Returneaz ziua din sptmn ?weekday(date) corespunztoare datei calendaristice. 7 Duminica (Sunday) este considerat prima zi a sptmnii. Returneaz anul dintr-o valoare ?year(date) Date/Time 1998

Year()

n general funcia fr caracterul $ returneaz subtipul Variant string iar cu $ tipul Text din VBA.

5.3 Funciile matematice i trigonometrice


Funcie Abs() Atn() Cos() Exp() Fix() i Int() Descriere ntoarce valoarea absolut a unei valori numerice Returneaz n radiani, arctangenta unei valori numerice Returneaz n radiani cosinusul unghiului reprezentat de o valoare numeric Returneaz exponeniala unei valori numerice Funcii identice dar care se comport diferit pentru valori negative. Ele trunchiaz partea zecimal. Sintax ?abs(-34) 34 ?atn(1) 0,785398163397448 pi=3.141593 ?cos(pi/4) 0,707106719949293 ?exp(2.302585) 9.9999990700 ?int(34.65) 34 ?fix(34.65) 125

34 ?int(-34.65) -35 ?fix(-34.65) -34 Log() Rnd() Returneaz logaritmul natural al unei ?log(23) valori numerice 3,13549421592915 Returneaz un numr aleator ?rnd 0,2895625 ?rnd 0,5795186 Returneaz semnul unei valori ?sgn(23.4) numerice; 0 dac este pozitiv i -1 dac 1 este negativ ?sgn(-23.4) -1 Returneaz n radiani sinusul unei valori ?sin(pi/4) numerice 0,707106842423796 Returneaz rdcina ptrat a unui ?sqr(81) 9 numr Returneaz n radiani tangenta unei ?tan(pi/4) 1,00000017320512 valori numerice

Sgn()

Sin() Sqr() Tan()

5.4 Funcii care se refer la tipul de dat Textsau ir de caractere


Funcia Asc() Exemplu ?asc("y") 121 ?asc("Y") 89 i Returneaz irul de caractere corespunztor valorii ?chr(121) numerice ASCII y ?chr(89) Y ?chr$(121) y ?chr$(89) Y ?format(date,"dd=m m=yy") 24=10=98 ?format$(date,"dd= mm=yy") 24=10=98 ?instr("aadgfhg","dg ") 3 ?lcase("ABVCDE") 126 Descriere Returneaz valoarea numeric a unui caracter

Chr() Chr$()

Format() i Aranjeaz o expresie conform formatelor irurilor Format$()

Instr() Lcase()

Returneaz poziia unui ir n cadrul altui ir i Returneaz irul iniial scris cu litere mici

Lcase$()

Left() Left$ Len() Ltrim() Ltrim$ Mid() Mid$()

i i

Right() Right$()

abvcde ?lcase$("ABVCDE" ) abvcde Returneaz cele mai din stnga caractere ale irului ?left("adfghty",4) adfg ?left$("adfghty",4) adfg Returneaz ca tip Long numrul de caractere dintr- ?len("asdfgtrewqyut un ir ytttyt") 19 Elimin spaiile de la nceputul irului ?ltrim(" asdferee") asdferee Extrage un subir de caractere dintr-un ir dat de la ?mid("asdfgreteee", o anumit poziie 4,67) fgreteee ?mid$("asdfgreteee" ,4,2) fg Returneaz cele mai din dreapta caractere ale unui ?right("asdfghhy",5) ir fghhy ?right$("asdfghhy",5 ) fghhy ?rtrim("addsasffa ") addsasffa ?rtrim$("addsasffa ") addsasffa ?space(20) ?space$(20) ?str(12345645678.6 78) 12345645678.678 ?str$(12345645678. 678) 12345645678.678 ?strcomp("ABCD"," ABCD") 0 ?strcomp("ABC","A BCD") -1 ?string(6,"a") aaaaaa ?string$(6,"a") aaaaaa ?trim(" asaassa ") asaassa 127

Rtrim() Rtrim$()

i Elimin spaiile de la sfritul irului de caractere.

Space() i Returneaz un ir care conine numrul de spaii Space$ specificat Str() i Str$() Transform ntr-un ir valoarea oricrui tip de dat

Strcomp()

Compar dou iruri i returneaz un rezultat ntreg cu privire la comparare; 0 dac irurile sunt identice i -1 dac sunt diferite.

String() String$() Trim() Trim$()

i Returneaz un ir format din caracterele care se repet de un anumit numr de ori. i Elimin spaiile de la nceput i de la sfritul unui ir de caractere.

Ucase() Ucase$() Val()

?trim$(" asaassa ") asaassa i Transform un ir de caractere n caractere mari ?ucase("yyryryrt") YYRYRYRT ?ucase$("yyryryrt") Transform un ir de caractere ntr-o valoare ?val("34334.67") numeric 34334,67 ?val("34334n67") 34334 ?val("34334,67") 34334

5.5 Funcii de conversie a tipurilor de date Numeric, Logical, Date/Time i Text


Cu ajutorul acestor funcii se poate transforma o valoare numeric n orice tip de dat. Funcia Descriere Exemplu Cbool() Transform o valoare numeric n tipul Logical sau Boolean ?cbool(56) True (True sau False) ?cbool(0) False Cbyte() Transform o valoare numeric n tipul Byte(0-255) ?cbyte(34) 34 Ccur() Transform o valoare numeric n tipul Currency ?ccur(23) 23 Cdbl() Transform o valoare numeric n tipul Double Precision ?Cdbl(98) 98 Cint() Transform o valoare numeric n tipul Integer ?cint(67) 67 Clng() Transform o valoare numeric n tipul Long Integer ?clng(87) 87 Csng() Transform o valoare numeric n tipul Single Precision ?Csng(56) 56 Cstr() Transform o valoare numeric n tipul String ?cstr(56) 56 Cvar() Transform o valoare numeric n tipul Variant ?cvar(87) 87 Cvdate() Transform o valoare numeric n tipul Variant subtipul 7 ?cvar(99) 99 CVerr() Transform un numr valid de eroare crend erori definite de utilizator

5.6 Funcii diverse


Funcia Chosse() Descriere Exemplu Returneaz o valoare din lista de ?choose(2,"a","b", valori pe baza poziiei ei din list "c","d") b 128

Iif()

Returneaz o valoare dac rezultatul expresiei este True i o alt valoare dec rezultatul expresiei este False

Isdate() Isempty()

Returneaz true dac argumentul este de tipul de Date/Time

?choose(4,"a","b", "c","d") d a=2 b=3 ?iif(a > b,"a este mai mare","b este mai mare") b este mai mare a=22 b=3 ?iif(a > b,"a este mai mare","b este mai mare") a este mai mare ?isdate(date) True

Returneaz true dac argumentul ?isempty(g) este o variabil neiniializat. True Altfel returneaz False Isnull() Returneaz rezultatul True dac argumentul este Null Toate aceste funcii pot fi executate n fereastra Immediate ce devine accesibil prin acionarea butonului corespunztor din bara de stare a entitii Module PROBLEME REZOLVATE

Problema rezolvat Nr 1 O bibliotec dorete informatizarea activitii sale. Abonailor bibliotecii li se ntocmesc fie ce conin un numr al fiei, data ntocmirii, seria, numrul i data eliberrii buletinului de identitate al persoanei precum i numele, prenumele, adresa i telefonul respectivului abonat. Acetia pot s mprumute maximum trei cri. Pentru fiecare carte se cunoate cota, titlul, numrul total de exemplare, numrul de exemplare disponibil, anul editrii i autorii. Autorii sunt caracterizai prin cod, nume i prenume. Fiecare carte aparine unui anumit gen i este editat de o anumit editur. Un titlu de carte nu poate fi editat dect de o singur editur. Editurile sunt caracterizate printr-un numr, denumire, adres i telefon. Pentru fiecare mprumut clientul trebuie s complecteze cte o cerere de mprumut care este caracterizat printr-un numr, dat i crile ce se doresc a fi mprumutate. Toate mprumuturile sunt acordate pe o perioad de 21 zile. Presupunnd c se dorete s se trimit cereri de somaie acelor abonai care nu au restituit crile mprumutate la timp, s se elaboreze o interogare care s furnizeze numele i adresele respectivelor persoane. Rezolvare

129

Problema rezolvat Nr 2 Se consider baza de date prezentat n capitolul 4 format din tabelele Produse, Stocuri, Depozite, Beneficiari, Facturi, Localitate. S se realizeze folosind utilitarul QBE: a) o interogare care afieaz detaliile produselor comandate de ctre beneficiarul Vasilescu; interogrea de pe nivelul cel mai de jos este urmtoarea

Interogarea de pe nivelul 2

130

Intergarea final este urmtoarea

Dup cum se observ, exemplul prezentat (instrucinea SQL este prezentat n capitolul 2 pag 100) se realizeaz folosind trei instruciuni SELECT imbricate. Realizarea instruciunilor SELECT s-a realizat folosind utilitarul QBE. b) o interogare prin care se insereaz un articol nou n fiierul produse;

131

S-a introdus articolul cu codul prod12, denumirea aspirator i preul 1500000. Pentru a introduce o interogare de aciune cu ajutorul utilitarului QBE se selecteaz tipul aciunii i tabela n care se dorete ca aceasta s se execute. Pentru versiunea Access 95 comanda INSERT arat astfel: INSERT INTO produse ( COD_PRODUS, DENUMIRE, PRET ) SELECT "prod12", "aspirator", 1500000; Celelalte aciuni i anume tergerea i modificarea informaiilor se realizeaz asemntor. c) o interogare prin care se modific informaia dintr-o nregistrare existent;

n tabela Produse se modific preul nregistrrii care are codul prod12. Comanda UPDATE corespunztoare este: UPDATE produse SET pret = 2000000 WHERE cod_produs='prod12'; d) o interogare care terge o nregistrare existent ntr-o tabel

Comanda DELETE corespunztoare acestei aciuni este: DELETE DISTINCTROW produse.COD_PRODUS FROM produse WHERE (((produse.COD_PRODUS)="prod12"));
132

VII. BIBLIOGRAFIE COMPLEMENTAR NECESAR APROFUNDRII: 1. Sorin Borza, Marinela Inta, Utilizarea Aplicatiilor Microsoft Office Ed., Universitii Lucian Blaga din Sibiu 2008 pp 159-271; 2. Sorin Borza, Proiectarea si Programarea Bazelor de Date Access, Ed. Universitatii Lucian Blaga Sibiu, 2000, 33-136 pp 10-37; 3. Sorin Borza, Dan Paul Brindasu, Baze de Date in Sistem Informatice de Gestiune Ed. Universitatii :Lucian Blaga Sibiu, pp 49-140 Timpul necesar de studiu 6h sau cate 1 h/zi

VIII. INTREBARI RECAPITULATIVE


1. Care sunt tipurile de date din tabelele Access. Descriere? 2. Ce reprezinta restrictia Input Mask? 3. Ce reprezinta restrictia Format? 4. Ce reprezinta restrictia Validation Rule? 5. Ce reprezinta filtrele si de cate tipuri sunt si cum se definesc? 6. Care sunt parametrii comenzii SQL, SELECT? 7. Care sunt interogarile de actiune si ce rol au? 8. Ce sunt formularele si ce rol au ? 9. Care sunt obiectele ce se pot introduce intr-un formular si ce rol au ? 10. Ce sunt rapoartele si ce rol au ?

IX. INTREBARI TIP GRILA


1. Forma de baza a limbajului SQL: a. A fost dezvoltata pentru prima data de IBM n 1980; b. Descrie cum un query trebuie s prelucreze mai mult dect rezultatele care ar trebui s existe; c. Seamana cu SQL; d. Foloseste GUI (graphical user interface); e. Demonstreaza clar superioritatea in controlul gestionarea informatiei din baza de date. 2. Tipurile de obiecte in Microsoft Access care se refera strict la managementul bazei de date sunt: a. Interogari; b. Vederi; c. Formulare; d. Pagini; e. Macrouri; f. Module.
133

3. Tipurile de obiecte in Microsoft Access care se refera strict la managementul bazei de date sunt: a. Tabele; b. Vederi; c. Formulare; d. Pagini; e. Macrouri; f. Module. 4. Cnd un tabel este sters din fereastra Microsoft Access Relationships, atunci: a. este imediat sters din baza de date; b. este marcat pentru stergere in baza de date; c. El rmne n baza de date, dar rndurile cu informatii toate sunt sterse; d. Relatiile apartinand tabelului sunt seterse; e. El rmne neschimbat n baza de date si este sters numai din fereastra Relationships. 5. Relatile din fereastra Microsoft Access Relationships: a. Reprezinta constrangerile referentiale in baza de date; b. Sunt definite ntre cheie primara si inregistrari ale unei tabele; c. Nu sunt posibile niciodata relatii recursive; d. Nu exista mosteniri intre tabelele care se leaga; e. Pot fi de tipul one-to-slave, one-to-master sau master-to-master. 6. Relatile din fereastra Microsoft Access Relationships: a. Reprezinta cate un index al bazei de date; b. Sunt definite ntre cheie primara si alternativ cu alte chei; c. Nu sunt posibile niciodata relatii recursive; d. Exista mosteniri in tabela care se leaga; e. Pot avea urmatoarele tipuri: one-to-many, one-to-one sau many-to-many. 7. In Microsoft Access fereastra de dialog Show Table cuprinde: a. Listele tuturor tabelelor din baza de date si tine seama de datele din tabelele adaugate, modificate si sterse; b. Numai lista tabelelor continute in baza de date; c. Listele tabelelor si/sau interogarilor continute in baza de date; d. Lista interogarilor continute in baza de date; e. Prevede capacitatea de a arata sau ascunde tabelele. 8. O coloana poate avea in Microsoft Access Query un rezultat sub forma de: a. Coloana a unui tabel; b. Coloana a unei interogari; c. Constanta; d. O valoare a unei expresii calculate;
134

e. Toate raspunsurile corecte. 9. Cnd intr-o interogare (Query) nu exista nici un criteriu inclus, rezultatul este: a. mesaj de eroare; b. NU este afisata nici o inregistrare; c. Toate intregistrarile din tabela sunt afisate; d. un produs cartezian; e. Nici un raspuns corect. 10. Cand comanda de sortare a liniilor nu este introdusa intr-o comanda query liniile interogarii rezultate: a. nu sunt intr-o ordine oarecare; b. se gasesc in ordinea celei de a treia coloane din tabela; c. in ordine conform cheii primare; d. aranjate ascendent dupa prima coloana; e. aranjate ascendent dupa index. 11. Intr-un query, criteriul de cautare REGIUNE NOT = SB OR REGIUNE NOT = VL va afisa: a. Un mesaj de eroare b. Toate integistrarile din tabela c. Toate integistrarile unde Regione este egala cu SB sau VL d. Toate inregistrarile din tabela cu exceptia celor unde Regiune este SB sau VL e. Nici o inregistrare 12. Caseta Criteria din QBE in Microsoft Access poate fi a. Legata de operatorul logic AND daca sunt utilizate conditii pe aceeasi linie; b. Legata de operatorul logic OR daca sunt utilizate conditii pe aceeasi linie; c. Legata de operatorul logic AND daca sunt utilizate conditii in acelasi coloana; d. Legat de operatorul logic OR daca nu sunt utilizate conditii in acelasi coloana. 13. Caseta Criteria ntr-un query in Microsoft Access poate fi: a. Legata de operatorul logic OR daca este utilizat impreuna pe aceeasi linie; b. Legata de operatorul logic AND daca, conditiile sunt in acelasi coloana; c. Legata de operatorul logic OR daca nu avem conditii in acelasi coloana; d. Legata de operatorul logic AND pe acelasi rnd si conectat cu alte linii folosind operatorul logic OR. 14. Conectorul de legatura intre doua tabele sau interogari in Microsoft Access Query: a. Nu poate fi creat manual prin tragerea unei coloane dintr-o tabela sau interogare peste o alta coloana din cealalta tabela sau interogare;
135

b. Nu poate fi mostenit din fereastra Relationships; c. Nu poate fi definit prin left, right, si full outer joins; d. Determina aparitia unui produs cartezian in cazul in care nu este definit correct; e. Determina aparitia unui produs cartezian in cazul in care intr-o interogare nu este definite legatura intre tabele sau interogari. 15. Conectorul de legatura intre doua tabele sau interogari in Microsoft Access Query: a. Poate fi creat manual prin tragerea unei coloane dintr-o tabela sau interogare peste o alta coloana din cealalta tabela sau interogare; b. Poate fi mostenit din fereastra Show Tables; c. Nu poate fi definit prin left, right, si full outer joins; d. Determina aparitia unui produs cartezian in cazul in care nu este definit corect; e. Determina aparitia intodeauna a unui produs cartezian in cazul in care intr-o interogare este definita legatura intre tabele sau interogari. 16. Conectorul de legatura intre doua tabele sau interogari in Microsoft Access Query: a. Nu poate fi creat manual prin tragerea unei coloane dintr-o tabela sau interogare peste o alta coloana din cealalta tabela sau interogare; b. Poate fi definit in fereastra Relationships; c. Nu poate fi definit prin left, right, si full outer joins; d. Determina aparitia unui produs cartezian in cazul in care nu este definit corect; e. Nu determina aparitia unui produs cartezian in cazul in care intr-o interogare nu este definite legatura intre tabele sau interogari. 17. Cand se utilizeaza o legatura de tip outer join, intre coloanele unor tabele (sau interogari), unde datele nu sunt egale, se: a. Vizualizeaza zero pentru o coloana tip numeric; b. Vizualizeaza spatiu pentru o coloan tip caracter; c. Vizualizeaza in culoarea gri; d. Vizualizeaza textul NULL; e. Va seta la valoarea NULL. 18. O functie agregat: a. Combina datele din mai multe coloane impreuna; b. Combina datele din mai multe linii impreuna; c. Ar putea a fi aplicata la coloanele tabelei dar la coloanele calculate; d. Este un tip special de functie care nu poate fi definita; e. Necesita ca fiecare coloan din query sa fie de tip memo ori nume n lista GROUP BY pentru un query.
136

19. O functie agregat: a. Combina datele din mai multe coloane impreuna; b. Combina datele dintr-o singura linie; c. Ar putea a fi aplicata la coloanele tabelei dar la coloanele calculate. d. Este un tip special de functie; e. Necesita ca fiecare coloan din query sa dea eroare sau sa fie nume n lista GROUP BY dintr-o interogare. 20. O functie agregat: a. Combina datele din mai multe coloane impreuna; b. Nu combina datele din mai multe linii impreuna; c. Ar putea a fi aplicata la coloanele tabelei dar la coloanele calculate; d. Este un tip banal de functie; e. Necesita ca fiecare coloan din query sa fie ori functie agregat ori nume n lista GROUP BY dintr-un query. 21. Care dintre functiile urmatoare este functie agregat: a. AVGE; b. COUNT; c. ROUND; d. SUMPROD; e. MIX. 22. Care dintre functiile urmatoare este functie agregat: a. AVGE; b. COUNTER; c. ROUND; d. SUM; e. MIX. 23. Care dintre functiile urmatoare este functie agregat: a. AVG; b. COUNT; c. ROUND; d. SUM; e. MIX. 24. Care dintre functiile urmatoare este functie agregat: a. AVGE; b. COUNT; c. ROUND; d. MIN; e. MIX. 25. Intr-o interogare numele atribuit unei coloane calculate:
137

a. Este NULL daca nu se prevede definitia atributului; b. Este n mod automat desemnat de Microsoft Access, dac nu este definit numele in interogare; c. Este un nume aleator folosit n formul; d. Poate fi furnizat automat in orice situatie; e. Poate fi furnizat folosind o etichet standard care apare ulterior in campul definit. 26. Numele atribuit unei coloane calculate intr-o interogare rezulta: a. Este NULL daca nu se prevede in query definitia sa; b. Nu este n mod automat desemnat de Microsoft Access dac nu prevede n query definitia; c. Este mai nti numele coloanei folosit n formul; d. Poate fi furnizat folosind o etichet care apare mai nti in campul definit folosind parametrul AS; e. Poate fi furnizat folosind o etichet care apare ulterior in campul definit. 27. Tabelele pot fi unite: a. Utilizand numai cheie primara n unul din tabele si o cheie externa in alta; b. Utilizand oricare coloan n oricare tabel. (teoretic); c. Doar intre ele; d. Doar cu alte tabele; e. Doar folosind o formula calculata. 28. Interogarile Microsoft Access: a. Sunt denumite views alte baze de date relationale; b. Sunt denumite entitati in majoritatea bazelor de date relationale ; c. Nu pot fi memorate in baza de date pentru a putea fi refolosite ulterior; d. Nu contine comenzi flexibile pentru regasirea datelor din baza de date; e. Nu generaza comenzi ale limbajului SQL. 29. Interogarile Microsoft Access: a. Sunt denumite rame in alte baze de date relationale. b. Nu sunt denumite entitati in majoritatea bazelor de date relationale; c. Pot fi memorate in baza de date pentru a putea fi refolosite ulterior; d. Nu pot fi folosite ca si comenzi pentru regasirea datelor din baza de date; e. Este un mod de a genera o comanda Visual Basic. 30. Interogarile Microsoft Access: a. Sunt denumite ajutoare in alte baze de date relationale; b. Sunt denumite entitati manageriale in majoritatea bazelor de date relationale; c. Nu pot fi memorate in baza de date pentru a putea fi refolosite ulterior; d. Contin comenzi flexibile pentru regasirea datelor din baza de date; e. Este un mod de a genera o comanda Access-Visual.
138

31. Interogarile Microsoft Access: a. Sunt denumite metadate alte baze de date relationale. b. Sunt denumite entitati macro in majoritatea bazelor de date relationale; c. Nu pot fi memorate in baza de date pentru a putea fi refolosite ulterior; d. Contin comenzi flexibile pentru regenerarea datelor din baza de date; e. Este un mod de a genera o comanda SQL. 32. O coloana este stearsa in Microsoft Access Query, cand: a. Coloana este stearsa numai din interogarea curenta de tip DELETE; b. Coloana este stearsa din toate interogarile care se refera la ea; c. Coloana este stearsa din tabela si toate interogarile cu referinta la ea; d. Un mesaj de eroare este afisat dac coloana este folosit si n alte interogari; e. Coloana rmne n query dar este marcata astfel ca datele din coloana nu pot fi afisate in rezultatele query. 33. SQL poate fi divizat n urmtoarele subseturi: a. Data Selection Language (DSL) Limbaj de selectare a datelor; b. Data Control Language (DCL)Limbaj de control a datelor; c. Data Purge Language (DPL)Limbaj ......... date; d. Data Interog Language (DIL) Limbaj de interogare a datelor; e. Data Replication Language (DRL). 34.SQL poate fi divizat n urmtoarele subseturi: a. Data Selection Language (DSL) Limbaj de selectare a datelor; b. Data Convert Language (DCL)Limbaj de conversie a datelor; c. Data Purge Language (DPL)Limbaj ......... date; d. Data Query Language (DQL) Limbaj de interogare a datelor; e. Data Replication Language (DRL). 35. SQL a fost dezvoltat la nceput : a. De Microsoft ; b. In 1982; c. Bazat pe specificatii ANSI; d. De ANSI ; e. In anii 70. 36. O instructiune SELECT fr clauza WHERE : a. Selecteaz toate randurile n tabelul surs sau interogare; b. Selecteaz toate coloanele n tabelul surs sau interogare; c. Rezult un mesaj de eroare; d.Totdeauna iesirile rezult ca fisiere lungi; e. Listeaz numai definitia unei table sau vederi. 37. In SQL ordinea randurilor in rezultatul unei interogari este: a. specificat folosind clauza SORTED BY;
139

b. luata in considerare numai dac este specificat n query prin clauza specifica acestui gen de operatie; c. definite prin index; d. implicit descendent dac secventa nu este specificat; e. raspuns corect b si c. 38. In SQL ordinea randurilor in rezultatul unei interogari este: a. specificat folosind clauza SORTED BY; b. nesemnificativa, neputandu-se defini; 39. ascendent sau descendent pentru orice coloan daca se specifica parametrul corespunzator al comenzii SELECT d. implicit descendent dac secventa nu este specificat; e. specificata numai pentru coloane in rezultatele query; 40. Operatorul BETWEEN : a. Include valori intregi; b. Selecteaz randurile adaugate la un tabel ntr-un interval de timp; c. Poate fi rescris folosind operatorii <= si NOT =; d. Poate fi rescris folosind operatorii <= si >=; e. Este o extensie Oracle la SQL. 41. O subinterogare: a. Poate fi congruent sau necongruent; b. Este un mod puternic de calculul a coloanelor; c. Nu permite selectia flexibil a randurilor; d. Poate fi inclus ntre paranteze; e. Poate fi folosit pentru selectarea valorilor necesare in clauza WHERE a unei comenzi Select. 42. O subinterogare: a. Poate fi congruent sau necongruent; b. Este un mod puternic de calculul a coloanelor; c. Permite selectia flexibil a inregistrarilor din tabele sau interogari; d. Nu trebuie inclus ntre paranteze intr-o interogare principala; e. Poate fi folosit pentru selectarea numai a valorilor zecimale; 43. O interogare intre mai multe tabele fara clauza WHERE sau JOIN a. Totdeauna lucreaz ca un inner join; b. Genereaza un mesaj de eroare; c. Genereaza o lgatura externa; d. Genereaza un produs cartezian intre inregistrarile din tabele e. Nu returneaz randuri n setul de rezultate; 44. O legatura externa : a. Poate fi scrisa folosind simbolul + in clauza FROM;
140

b. Poate fi scris folosind simbolul - n clauza WHERE; c. Nu genereaza niciodata un produs cartezian d. Genereaza toate randurile din una sau din dou tabele e. Poate fi o legatura de tip stanga (left), de tip dreapta (right) sau full in ambele parti 45. O declaraie SQL coninnd o funcie agregat: a. Trebuie s conin clauza GROUP BY b. Poate include coloane; c. Nu poate s includ atat clauza GROUP BY si ORDER BY; d. Poate sa includa deasemenea linii conditionale; e. Nu implic legaturi cu tabele multiple. 46. O declaraie SQL coninnd o funcie agregat: a. Trebuie s conin clauza GROUP BY; b. Poate include randuri referentiate; c. Nu poate s includ atat clauza GROUP BY si ORDER BY; d. Poate sa includa coloane calculate; e. Nu implic legaturi cu tabele multiple. 47. O declaraie INSERT: a. Poate conine o coloana; b. Poate conine valori indivizibile; c. Poate adauga multiple coloane intr-o tabela; d. Poate conine un subquery; e. Creaz un nou tabel 48. O declaraie INSERT: a. Poate conine o coloana; b. Poate conine valori macroereditare; c. Poate adauga multiple randuri intr-o tabela; d. Poate conine o constrangere de integritate referentiala; e. Creaz un nou tabel; 49.O declaratie UPDATE fara o clauz WHERE : a. Rezulta un mesaj de eroare; b. Nu actualizeaz randurile intr-un tabel; c. Actualizeaz fiecare rand intr- un tabel; d. Rezult ca un produs cartezian; e. Actualizeaz fiecare coloan intr-un tabel; 50. O comanda DELETE de stergere a unei coloane: a. Genereaza un mesaj de eroare; b. Sterge fiecare rand intr-un tabel; c. Sterge fiecare coloan ntr-un tabel;
141

d. Rezult ca produs cartezian; e. Poate fi folosit pentru a terge o interogare. 51. O declaraie DELETE a unei linii dintr-o tabela a. Genereaza un mesaj de eroare; b. Sterge un anumit rand intr-un tabel; c. Sterge fiecare coloan ntr-un tabel; d. Genereaza ca produs cartezian; e. Poate fi folosit pentru a terge o interogare; 52. O declaraie CREATE: a. Este o form DML; b. Creaz drepturi noi pentru un utilizator; c. creaz un obiect baz de date d. Poate fi corectat ulterior folosind declaratia ALTER; e. Poate fi reactualizata mai tarziu folosind declaraia DROP ; 53. O comanda CREATE: a. Este o form DML; b. Creaz drepturi noi pentru un utilizator; c. creaz un obiect baz de date ; d. Poate fi definita definitiv folosind declaratia ALTER ; e. Poate fi introdusa intr-o interogare folosind declaraia DROP ; 54. O comanda CREATE: a. Este o form DML; b. Creaz drepturi noi pentru un utilizator; c. creaz un obiect baz de date ; d. Poate fi definita definitiv folosind declaratia ALTER ; e. Poate fi stearsa ulterior folosind declaraia DROP

IX PROBLEME PROPUSE PENTRU REZOLVARE Problema Nr 1


I.

S se construiasc in Acces baza de date Universitate, care conine tabelele Facultate si Studenti cu urmtoarele cmpuri: PENTRU TABELA FACULTATE Den_facult T 30 Cod_sect T5 Nume sectie T30 sunt litere mici Nr_stud N Integer denumire facultate cheie primar cod secie denumire sectie. Prima litera este mare celelalte numr studeni 142

PENTRU TABELA STUDENTI Denumirefac T 30 Matricol N 10 Nume_stud T 30 Grupa N

denumire facultate cheie primar matricolul studentului cheie primara denumire secie grupa studentilor

Restrictii asupra campurilor: i Nr_stud >0 si <100. Denumirea cmpului in modul DataSheet View va fi Numar Studenti, cu valoarea initiala 1; ii Cod_sect masca de intrare din doua litere si trei cifre; iii Den_facult si Denumirefac poate fi Inginerie, Medicina, St. Economice, Stiinte sau Drept; iv Grupa formata din 4 caractere numerice; v Matricol format din 10 caractere cifre sau spatiu. Se vor lega intre ele cele doua tabele; Sa se realizeza un filtru Advanced Filter, care vizualizeaza campurile in ordine alfabetica functie de denumirea facultatii si denumirea sectiei. Filtrul se va salva ca si o interogare; Sa se realizeze un filtru avansat care vizualizeaza acele inregistrari din tabela pentru care Den_facult incepe cu o litera si are Nr_stud mai mare decat o valoare numerica. Filtrul se va salva ca si o interogare; Sa se realizeze un filtru avansat care vizualizeaza studentii a caror nume are pe a doua pozitie a numelui o anumita litera si sunt intr-o anumita grupa. Filtrul se va salva ca si o interogare; Sa se realizeze o interogare prin care se vizualizeaza studentii dintr-o anumita grupa si o anumita facultate; Sa se realizeze o interogare tabel incrucisat prin care se vizualizeaza numarul total de studenti in grupe pe facultati; Sa se realizeze interogari de actiune prin care se permit operatiile de adaugare, modificare si stergere de date asupra uneia dintre tabelele bazei de date; Sa se realizeze un formular de culoare albastra, care vizualizeaza datele din tabela in campuri textbox si contine butoane de comanda pentru deplasare in fisier, butoane pentru adaugare de date si stergere date, butoane de comanda pentru apelul filtrelor realizate anterior. Formularul contine textul Universitate scris cu culoare rosie pe fond galben; Sa se realizeze un tabel pivot pentru tabela studenti, care calculeaza numarul de studenti dintr-o anumita grupa; Sa se realizeze un grafic pivot care vizualizeaza numarul de studenti pe facultati; Sa se realizeze un raport care afiseaza numarul total de studenti pe grupe.

Problema nr 2
S se construiasc baza de date STUDENI, care conine fisierul Grupa_STUD. cu urmtoarea structur: NUME_STUD T 30 nume student; NR_GRUPA N numr grup; NR_STUD N nr. legitimaie student; VARSTA N vrsta studentului; cheia primar format din cmpurile Nr_grupa i Nr_stud;

143

si tabela NOTE cu campurile: NR_LEGITIMATIE N, NOTA N cu doua zecimale; CODUL DISCIPLINEI N; cheia primara este formata din toate cele trei campuri. Restrictiile care se vor pune asupra campurilor vor fi: In tabela Grupa_stud, a) Nume student, prima litera este mare celelalte sunt litere mici b) Varsta nu poate fi mai mic de 18; c) Nr_stud >0 si <30; d) Nr_grupa si Varsta campuri de tip numeric byte si sunt formate din doua caractere numerice; e) Nota este cuprinsa intre 1 si 10; Se vor lega intre ele cele doua fisiere si se vor afisa concomitent datele din cele doua fisiere. Sa se realizeze un filtru avansat prin care se vizualizeaza studentii dintr-o anumita grupa si care au varsta mai mare decat o anumita valoare. Se va salva filtrul ca si o interogare; Sa se realizeze un filtru avansat prin care se va afisa studentii cu varsta cuprinsa intre doua valori numerice; Sa se realizeze o interogare prin care se vizualizeaza studentii dintr-o anumita grupa si cu notele mai mari decat 7; Sa se realizeze o interogare calculeaza nota medie a studentilor pe grupe pe facultati; Sa se realizeze interogari de actiune prin care se permit operatiile de adaugare, modificare si stergere de date asupra uneia dintre tabelele bazei de date; Sa se creeze un formular si un subformular cu datele din cele doua tabele; Sa se realizeze un formular pentru vizualizarea datelor din tabela Grupa_stud in obiecte label si textbox. Formularul contine butoane pentru cautarea unei anumite inregistrari, pentru deplasarea la sfarsitul formularului si la inceputul sau, pentru vizualizarea filtrelor si a formularului creat anterior. Sa se creeze un tabel pivot care afiseaza varsta medie a studentilor pe grupe; Sa se realizeze un raport pentru tabela NOTE care vizualizeaza media notelor de la o anumita disciplina.

Problema Nr 3
S se realizeze in Access o baz de date cu numele Teritoriu, care conine fiierul de date ORAE cu urmtoarea structur: NUME_ORAS T 20denumire ora; NR_LOC N long integer numr locuitori; NUME_JUD T 20 nume judet; cheia primar format din cmpurile Nume_jud i Nume_ora si fisierul JUDET cu campurile: NUME_JUDET T 20; SUPRAFATA N cu doua zecimale, NR_LOCUITORI N de tip intreg; cheia primara este formata din campul Nume_judet Restrictii asupra campurilor: i. Nume_Judet se va scrie prima litera mica celelalte litere mari; ii. Numrul de locuitori este mai mare dect 20000; iii. Nume_ora i Nume_jud se vor scrie cu caractere mari indiferent de caracterul introdus si se vor transforma in modul introducere date in Numele Orasului, Numele Judetului; iv. Pentru campul Suprafata valoarea initiala este 10000. Se vor lega intre ele cele doua tabele;

PROGRAMAREA CALCULATOARELOR SI LIMBAJE DE PROGRAMARE PARTEA II Se va realiza un filtru avansat prin care se vor vizualiza numai oraele a cror nume au pe a doua i a patra poziie litera I. Filtrul se va salva ca interogare; Se va vizualiza fiierul n ordinea alfabetic a judeelor i a oraelor folosind un filtru avansat. Filtrul se va salva ca interogare; Sa se realizeze un filtru avansat prin care se vor vizualiza judele pentru care suprafata este cuprinsa intre doua valori si numarul de locuitori este mai mare decat o anumita valoare; Sa se realizeze o interogare prin care se vizualizeaza orasele dintr-un anumit judet care are suprafata cuprinsa intre doua valori numerice; Sa se realizeze o interogare tabel incrucisat prin care se vizualizeaza numarul total de locuitori din orase pe judete; Sa se realizeze interogari de actiune prin care se permit operatiile de adaugare, modificare si stergere de date asupra uneia dintre tabelele bazei de date; Sa se realizeze o interogare care creaza o noua tabela in care se gasesc informatii numai despre un anumit judet si orasele din acel judet; Sa se realizeze un formular care vizualizeaza datele din tabela ORASE in campuri textbox si contine butoane de comanda pentru deplasare in fisier, butone pentru adaugare de date si stergere date. Formularul are culoare galbena, titlul formularului este ORASE scris cu culoare galbena pe fond negru; Sa se realizeze un tabel pivot care afiseaza numarul mediu de locuitori al oraselor pe judete; Sa se realizeze un grafic pivot al judetelor functie de suprafata.

Problema Nr 4
S se creeze baza de date Magazin care conine fiierul PRODUSE cu urmtoarea structur: COD_PRODUS N integer codul produsului; NUME_PRODUS T 20 nume produs; PRE N cu doua zecimale preul produsului; DENM T 20 denumire magazin; COD_FURNIZOR T 6 Cheia primara este formata din campul Cod_Produs si tabela FURNIZORI cu urmatoarea structura: CODF T 6 codul furnizorului; NUMEF T 20 numele furnizorului; NRTELEFON T 11 Cheia primara este formata din campul Codf Se vor impune urmtoarele restricii asupra cmpurilor: i. Cod_produs format din patru cifre; ii. Pretul >1000000; iii. Nume_produs conine numai caractere mari; iv. Cod_furnizor si Codf formate din doua cifre si 4 litere restrictionate printr-o masca de intrare; v. Numarul de telefon format din 4 caractere numerice, liniuta, sase caractere numerice; vi. Numef se transforma in Numele Furnizorului. Automat prima litera este mica celelalte sunt litere mari. Se vor lega intre ele cele doua tabele si se va forta integritatea referentiala; Se va realiza un filtru avansat prin care se vor vizualiza produsele care au pretul mai mare decat o anumita valoare si numele are pe a doua pozitie o anumita litera. Se va salva filtrul ca si o interogare; Sa se realizeze un filtru avansat care vizualizeaza acele produse din fisier, pentru un anumit magazin si pretul cuprins intre doua valori. Se va salva filtrul ca si o interogare;

145

PROGRAMAREA CALCULATOARELOR SI LIMBAJE DE PROGRAMARE PARTEA II Sa se realizeze un filtru avansat prin care se va afisa produsele furnizate de trei furnizori. Se va salva filtrul ca si o interogare; Sa se realizeze o interogare prin care se vizualizeaza produsele dintr-un magazin furnizate de catre un furnizor cu un anumit prefix la numarul de telefon; Sa se realizeze o interogare tabel incrucisat prin care se vizualizeaza pretul mediu al produselor pe magazine; Sa se realizeze o interogare prin care se creaza o tabela noua cu numele unui furnizor si contine informatii despre produsele furnizorului; Sa se realizeze interogari de actiune prin care se permit operatiile de adaugare, modificare si stergere de date asupra uneia dintre tabelele bazei de date; Sa se realizeze un formular de culoare portocalie care vizualizeaza datele din tabela Produse in campuri textbox si contine butoane de comanda pentru deplasare in fisier: inainte, inapoi, la inceput si la sfarsit buton de cautare, butoane pentru adaugare de date si stergere date. Formularul nu are butoanele de navigare implicite; Sa se realizeze un formular prin care se vor vizualiza datele din cele doua tabele; Sa se realizeze un raport prin care se calculeaza pretul mediu pe furnizor; Sa se realizeze un grafic pivot in care se vizualizeaza produsele functie de pret.

Problema Nr. 5
S se creeze baza de date Stocuri care conine un fiier de date STOCINIT cu urmtoarele cmpuri: DENMAT T 20 denumire material; COD N 4 cod material; CANTINIT N 6 cantitate iniial; PRET contine 2 zecimale pre material; Cheia primara este formata din campul Cod si tabela FURNIZORI cu campurile CODF N cod furnizor; NUMEF nume furnizor; DATA D data furnizarii; CODPRODUS N codul produsului. Cheia primara este formata din campul CODF Restrictii asupra campurilor: Preul este mai mare dect 100000. n modul DatasheetView, cmpul Denmat apare cu numele Denumire Material, datele din cmp se vor scrie cu litere mari, cmpul Cod apare cu numele Cod Material. In campul DATA se pune restrictia ca datele sa fie numai din anul 2010. Numele furnizorului va aparea automat cu prima litera mare si celelalte mici; Se vor lega intre ele cele doua tabele; Se va realiza un filtru prin care se vor afia acele nregistrri a cror nume are pe pozia 4 o anumit liter i cmpul Cantitate cuprins ntre dou valori numerice definite de ctre utilizator. Filtrul se va salva ca si o interogare; Sa se realizeze un filtru avansat prin care se vor vizualiza acele date pentru care codul are numai trei valori, dintre datele din tabela. Filtrul se va salva ca si o interogare; Sa se realizeze un filtru avansat prin care se vor vizualiza furnizorii care diferenta dintre campul Data si data curenta este mai mare decat o anumita valoare; Sa se realizeze o interogare prin care se vizualizeaza materialele furnizate de catre furnizorii cu acelasi prefix la numarul de telefon; Sa se realizeze o interogare tabel incrucisat prin care se vizualizeaza pretul mediu al materialelor pe furnizor;

146

PROGRAMAREA CALCULATOARELOR SI LIMBAJE DE PROGRAMARE PARTEA II Sa se realizeze o interogare prin care se creaza o tabela noua cu numele unui furnizor si contine informatii despre materialele furnizorului; Sa se realizeze interogari de actiune prin care se permit operatiile de adaugare, modificare si stergere de date asupra uneia dintre tabelele bazei de date; Sa se realizeze un formular de culoare verde care vizualizeaza datele din tabela FURNIZORI in campuri textbox care au fondul de culoare galbena si contine butoane de comanda pentru deplasare in fisier: inainte, inapoi, la inceput si la sfarsit, un buton de cautare, butoane pentru adaugare de date si stergere date. Formularul nu are butoanele de navigare implicite; Sa se realizeze un formular prin care se vor vizualiza datele din cele doua tabele; Sa se realizeze un raport care vizualizeaza datele din tabela grupate dupa DENMAT, si calculeaza pretul mediu pe produs; Sa se realizeze un grafic pivot in care sa se reprezinte intr-un grafic de tip placinta (pie) pretul mediu pe produs al produselor din tabela.

Problema Nr. 6
I. S se creeze baza de date MATERIALE care conine un fiier de date STOC cu urmtoarele cmpuri: DENMAT T 20 denumire material; COD N 4 cod material; CANTINIT N 6 cantitate iniial; PRET contine 2 zecimale pre material; Cheia primara este formata din campul Cod si tabela FURNIZORI cu campurile CODF N cod furnizor; NUMEF nume furnizor; DATA D data furnizarii; CODPRODUS N codul produsului. Cheia primara este formata din campul CODF

Restrictii asupra campurilor: Preul este mai mare dect 100000. n modul DatasheetView, cmpul Denmat apare cu numele Denumire Material, datele din cmp se vor scrie cu litere mari, cmpul Cod apare cu numele Cod Material. In campul DATA se pune restrictia ca data sa fie mai mica decat data curenta cu 30 de zile; Se vor lega intre ele cele doua tabele; Se va realiza un filtru prin care se vor afia acele nregistrri a cror nume are pe poziia 3 o anumit liter i cmpul Pret cuprins ntre dou valori numerice definite de ctre utilizator. Filtrul se va salva ca si o interogare; Sa se realizeze un filtru avansat prin care se vor vizualiza acele date pentru care codul are numai trei valori, dintre datele din tabela. Filtrul se va salva ca si o interogare; Sa se realizeze un filtru avansat prin care se vor vizualiza furnizorii dintr-o anumita luna si an; Sa se realizeze o interogare prin care se vizualizeaza materialele furnizate in aceeasi luna; Sa se realizeze o interogare tabel incrucisat prin care se vizualizeaza pretul mediu al materialelor pe furnizor; Sa se realizeze o interogare prin care se creaza o tabela noua cu numele unui material si contine informatii furnizor; Sa se realizeze interogari de actiune prin care se permit operatiile de adaugare, modificare si stergere de date asupra uneia dintre tabelele bazei de date; Sa se realizeze un formular de culoare albastra care vizualizeaza datele din tabela FURNIZORI in campuri textbox care au fondul de culoare rosie si contine butoane de 147

PROGRAMAREA CALCULATOARELOR SI LIMBAJE DE PROGRAMARE PARTEA II comanda pentru deplasare in fisier: inainte, inapoi, la inceput si la sfarsit de fisier. Formularul contine butoane de vizualizare a filtrelor realizate anterior. Formularul nu are butoanele de navigare implicite; Sa se realizeze un formular prin care se vor vizualiza datele din cele doua tabele; Sa se realizeze un raport care vizualizeaza datele din tabela grupate dupa DENMAT, si calculeaza pretul mediu pe produs; Sa se realizeze un grafic pivot in care sa se reprezinte intr-un grafic de tip placinta (pie) pretul mediu pe produs al produselor din tabela.

Problema Nr. 7
S se realizeze in Access o baz de date cu numele Teritoriu, care conine fiierul de date ORAE cu urmtoarea structur: NUME_ORAS T 20denumire ora; NR_LOC N long integer numr locuitori; NUME_JUD T 20 nume judet; cheia primar format din cmpurile Nume_jud i Nume_ora si fisierul JUDET cu campurile: NUME_JUDET T 20; SUPRAFATA N cu doua zecimale, NR_LOCUITORI N de tip intreg; cheia primara este formata din campul Nume_judet Restrictii asupra campurilor: i. Numrul de locuitori este mai mare dect 20000; ii. Nume_ora i Nume_jud se vor scrie cu caractere mari indiferent de caracterul introdus si se vor transforma in modul introducere date in Numele Orasului, Numele Judetului; iii. Nume_jud poate lua numai valorile Sibiu, Alba, Cluj, Valcea. Se vor lega intre ele cele doua tabele; Se va realiza un filtru avansat prin care se vor vizualiza numai oraele a cror nume au pe a doua i a patra poziie litera I si numarul de locuitori mai mare decat o anumita valoare. Filtrul se va salva ca interogare; Se va vizualiza fiierul n ordinea alfabetic a judeelor i a oraelor folosind un filtru avansat. Filtrul se va salva ca interogare; Sa se realizeze un filtru avansat prin care se vor vizualiza judele pentru care suprafata este cuprinsa intre doua valori si numarul de locuitori este mai mare decat o anumita valoare; Sa se realizeze o interogare prin care se vizualizeaza orasele dintr-un anumit judet care are numarul de locuitori cuprins intre doua valori numerice; Sa se realizeze o interogare tabel incrucisat prin care se vizualizeaza numarul mediu de locuitori din orase pe judete; Sa se realizeze interogari de actiune prin care se permit operatiile de adaugare, modificare si stergere de date asupra uneia dintre tabelele bazei de date; Sa se realizeze o interogare care creaza o noua tabela in care se gasesc informatii numai despre un anumit judet si orasele din acel judet; Sa se realizeze un formular care vizualizeaza datele din tabela ORASE in campuri textbox si contine butoane de comanda pentru deplasare in fisier, butone pentru adaugare de date si stergere date. Formularul are culoare galbena, titlul formularului este ORASE scris cu culoare galbena pe fond negru; Sa se realizeze un tabel pivot care afiseaza numarul mediu de locuitori al oraselor pe judete; Sa se realizeze un grafic pivot al judetelor functie de suprafata.

148

PROGRAMAREA CALCULATOARELOR SI LIMBAJE DE PROGRAMARE PARTEA II

Problema Nr. 8
S se creeze fiierul de date CARTI. n baza de date BIBLIOTECA care conine urmtoarele cmpuri: NR_INV N4 numr inventar; TITLU T 50 titlul crii; AUTOR T 30 numele autorului; PRE N 10.2 preul crii; DATA_INTRARII D 8 data cumprrii crii; TIP_CARTE Lookup cheia primara este formata din campul NR_INV In aceeasi baza de date sa se creeze tabela AUTORI cu campurile: Nume_autor T 30 numele autorului; Data_nasterii D data nasterii autorului; ADRESA T adresa autorului. Cheia primara este formata din campurile Nume_autor si Adresa Asupra cmpurilor se vor introduce urmtoarele restricii: Nr_inv>1000, Data_intrarii mai mic dect data curent, Data nasterii autorului mai mica decat data curenta cu 15 ani. Pentru campul Tip_carte se va realiza o lista de tip Combo Box cu valorile Roman, Nuvela, Basm, Piesa de teatru, Schita. Campul Adresa va avea pe primele caractere cuvantul SIBIU. Se va definii o masca de intrare prin care numele autorului va avea prima litera litera mare celelalte litere mici; Sa se realizeze un filtru avansat prin care se vizualizeaza cartile intrate in aceeasi luna si an. Filtrul se va salva ca interogare; S se obin urmtoarele filtre avansate: lista crilor n ordinea valorii numerice a preului, lista crilor a cror titlu ncepe cu o anumit liter si au pretul de o anumita valoare. Filtrele se vor salva ca interogari; Sa se realizeze o interogare prin care se vizualizeaza cartile autorilor care sun nascuti in acelasi an; Sa se realizeze o interogare care calculeaza pretul mediu al cartilor pe autori; Sa se realizeze interogari de actiune prin care se permit operatiile de adaugare, modificare si stergere de date asupra uneia dintre tabelele bazei de date; Sa se realizeze o interogare care creaza o noua tabela in care se gasesc informatii numai despre un anumit autor si cartile sale; Sa se realizeze un formular si un subformular pentru vizualizarea datelor din cele doua tabele; Sa se realizeze un formular care contine un titlu cu textul CARTI intr-un obiect label. Fondul obiectului este verde, fontul semibold de culoare rosie. Obiectul este incadrat cu linie neagra intrerupta. In formular se vor vizualiza datele din tabela in obiecte textbox. Formularul contine butoane de comanda pentru adaugare de date, stergere de date, cautare de date si butoane prin care se apeleaza filtrele create anterior ; Sa se realizeze un tabel pivot care vizualizeaza cate carti apartin unui autor Sa se realizeze un raport care vizualizeaza pretul mediu al cartilor pe autori.

Problema Nr. 9
S se creeze baza de date SPORT care conine o tabela cu numele TENIS, care ine evidena ocuprii unei baze de tenis pe zile i ore. Cmpurile fiierului de date vor fi urmtoarele: NR_TEREN N 2 numrul terenului de tenis; 149

PROGRAMAREA CALCULATOARELOR SI LIMBAJE DE PROGRAMARE PARTEA II DATA D 8 data inchirierii; ORA N 2 intervalul de timp de nchiriere n ore; OCUPAT L 1 este True dac terenul este ocupat i este False dac terenul este liber; TARIF N pretul pentru inchirierea terenului; Cheia primara este formata din campul Nr_teren. Tabela CLIENTI tine evidenta clentilor care au inchiriat tabelele si este formata din campurile: CODCLIENT N 5 codul clientului; NUMEC T 30 numele clientului ; NRT N 2 numarul terenului. Cheia primara este formata din campul CODCLIENT. Restriciile asupra cmpurilor vor fi urmtoarele: Data este egal cu data curent din calculator, Nr_teren >0 i Nr_teren<=10. Numec se transforma in numele clientului. Caracterele introduse in camp se vor transforma in caractere mari; Sa se lege intre ele cele doua tabele; Sa se realizeze un filtru avansat prin care se vor afia terenurile libere dintr-o anumita data calendaristica. Filtrul se va salva ca interogare; Sa se realizeze un filtru avansat care afiseaza terenul care a fost inchiriat intr-o anumita luna un anumit interval de timp. Filtrul se va salva ca interogare; Sa se realizeze un filtru avansat prin care se vor vizualiza terenurile ocupate. Filtrul se va salva ca interogare; Sa se realizeze o interogare prin care se vizualizeaza terenurile ocupate si clientii care le-au inchiriat; Sa se realizeze o interogare tabel incrucisat prin care se vizualizeaza clientul care a inchiriat terenul cu cel mai mare tarif; Sa se realizeze interogari de actiune prin care se permit operatiile de adaugare, modificare si stergere de date asupra uneia dintre tabelele bazei de date; Sa se realizeze o interogare care creaza o noua tabela in care se gasesc informatii numai despre un anumit judet si orasele din acel judet; Sa se realizeze un formular care vizualizeaza datele din tabela TENIS in campuri textbox si contine butoane de comanda pentru deplasare in fisier, butone pentru adaugare de date si stergere date; Sa se realizeze un tabel pivot care vizualizeaza pe terenuri, timpul total de inchiriere; Sa se realizeze un formular care contine butoane de comanda pentru apelul formularului si a filtrelor create anterior. Sa se realizeze un raport care vizualizeaza tariful mediu pe teren inchiriat.

Problema Nr. 10
S se realizeze o baz de date LOCALITATI care conine o tabela cu numele ORASE cu urmtoarea structur : NUME_ORAS C 20 denumire ora; NR_LOC N 7 numr locuitori; NUME_JUD C 20 nume judet Cheia primara este formata din campurile Nume_oras si Nume_jud si o tabela JUDETE cu campurile: NUME_JUDET C 20;

150

PROGRAMAREA CALCULATOARELOR SI LIMBAJE DE PROGRAMARE PARTEA II SUPRAFATA N 6; NR_LOCUITORI N. Cheia primara este formata din campurile nume_judet si nr_locuitori Restrictii asupra campurilor din tabele: Nume_jud poate fi numai Sibiu, Alba sau Valcea, Suprafata mai mare decat 1000 si mai mica decat 100000, numarul de caractere al campurilor numerice se defineste prin masca de intrare. Pentru campul Nume_oras se defineste o masca de intrare prin care primul caracter al numelui este o litera mica celelalte sunt litere mari; Se vor lega cele doua tabele intre ele si se vor vizualiza datele din ambele tabele; Se va vizualiza din fiierul ORASE datele despre doua orase diferite. Se va salva filtrul ca si interogare; Se va realiza un filtru avansat prin care se va vizualiza numrul de locuitori din oraele care ncep cu o anumit liter, dintr-un anumit jude. Litera i numele judeului sunt alese de ctre student si se introduc prin ferestre separate. Se va salva filtrul ca si interogare; Se va realiza un filtru avansat care vizualizeaza datele despre orasele dintr-un anumit judet, cu numarul de locuitori cuprins intre doua valori. Se va salva filtrul ca si interogare; Sa se realizeze o interogare prin care se vizualizeaza orasele dintr-un anumit judet care are suprafata cuprinsa intre doua valori numerice; Sa se realizeze o interogare prin care se vizualizeaza numarul total de locuitori din orase pe judete; Sa se realizeze interogari de actiune prin care se permit operatiile de adaugare, modificare si stergere de date asupra uneia dintre tabelele bazei de date; Sa se realizeze o interogare care creaza o noua tabela in care se gasesc informatii numai despre un anumit judet si orasele din acel judet; Se va crea un formular si un subformular pentru vizualizarea datelor din cele doua tabele. Se va realiza un formular care vizualizeaza datele dintr-o tabela in obiecte label si text box si care contine butoane de comanda pentru deplasarea prin tabela si butoane de comanda pentru adaugarea de inregistrari sau pentru stergerea de inregistrari. Formularul nu are butoanele de navigare implicite; Se va realiza un formular care are fondul de o anumita culoare, un obiect label care contine textul MENIU, cu un anumit font marime si grosime diferite de cele implicite. Numele implicit al formularului se modifica din form, in MENIU. Formularul contine butoane de comanda pentru apelul filtrelor si al formularelor realizate anterior; Se va realiza un grafic pivot pentru tabela JUDETE care va calcula suprafata totala si numarul total de locuitori; Se va realiza un raport pentru tabela ORASE prin care se va vizualiza numarul mediu de locuitori grupati pe nume judet.

Problema Nr. 11
I. S se realizeze o baz de date LOCALITATI care conine un fiier de date cu numele ORAS cu urmtoarea structur : NUME_ORAS T 20 denumire ora; NR_LOC N 7 numr locuitori; NUME_JUD T 20 nume judet Cheia primara este formata din campurile Nume_oras si Nume_jud si o tabela JUDETE cu campurile: 151

PROGRAMAREA CALCULATOARELOR SI LIMBAJE DE PROGRAMARE PARTEA II NUME_JUDET T 20; SUPRAFATA N 6; NR_LOCUITORI N 5. Cheia primara este formata din campurile nume_judet si nr_locuitori Asupra fiierului de date se vor introduce restriciile Nr_loc > 25000 i 500000, Nume_jud apare ntr-o comand de vizualizare Numele judeului i are valoarea iniial Sibiu, Suprafata >0 si mai mica decat 500000. Pentru campul Nume_oras se defineste o masca de intrare prin care primul caracter al numelui este o litera mare celelalte sunt litere mici; Se vor lega cele doua tabele intre ele si se vor vizualiza datele din cele doua tabele concomitent; Se va vizualiza fiierul ORAS n ordinea judeului, si in ordinea oraselor din judete printr-un filtru avansat. Se va salva filtrul ca si interogare; Se va realiza un filtru avansat care va afisa judetele care au suprafata si numarul de locuitori cuprinsa intre doua valori. Se va salva filtrul ca si interogare; Sa se realizeze o interogare prin care se vizualizeaza orasele din judetele a caror nume are pe a doua si a patra pozitie o anumita litera; Sa se realizeze o interogare prin care se vizualizeaza numarul total de locuitori din orase pe judete; Sa se realizeze interogari de actiune prin care se permit operatiile de adaugare, modificare si stergere de date asupra uneia dintre tabelele bazei de date; Sa se realizeze o interogare care creaza o noua tabela in care se gasesc informatii numai despre un anumit judet si orasele din acel judet; Se va crea un formular si un subformular pentru vizualizarea datelor din cele doua tabele. Se va realiza un formular care vizualizeaza datele dintr-o tabela in obiecte label si text box si care contine butoane de comanda pentru deplasarea prin tabela si butoane de comanda pentru adaugarea de inregistrari sau pentru stergerea de inregistrari. Formularul nu are butoanele de navigare implicite; Se va realiza un formular care are fondul de o anumita culoare, un obiect label care contine textul MENIU, cu un anumit font marime si grosime diferite de cele implicite. Numele implicit al formularului se modifica din form, in MENIU. Formularul contine butoane de comanda pentru apelul filtrelor si al formularelor realizate anterior; Se va realiza un grafic pivot pentru tabela JUDETE care va calcula suprafata totala si numarul total de locuitori; Se va realiza un raport care care se vizualizeaza suprafata totala a judetelor si numarul mediu de locuitori al judetelor.

Problema Nr. 12
Se consider baza de date Hotel care conine urmtoarele tabele: Clienti si Camere. Structura tabelelor este urmtoarea: CLIENTI Nume NR_Buletin Data_nasterii

Text Numeric Date/Ti

Se vor afisa litere mari indifirent de caracterele tastate in camp Cmp numeric de 6 caractere.In modul Datasheet numele campului va fi Numar Buletin In camp se va afisa doar data calendaristica in format

152

PROGRAMAREA CALCULATOARELOR SI LIMBAJE DE PROGRAMARE PARTEA II me Serie_Buletin TEXT MON/01/2010 Lungime doua caractere n modul Datasheet numele campului va fi SB NR_Camera Numeric Campul este format din trei caractere mai mari decat 0 si mai mic decat 500 Cheia primara format din cmpurile: Serie_Buletin + Nr_Buletin CAMERE Numar_Camera Ocupat

Campul este format din trei caractere Are valoarea adevarat daca o camera este ocupata Pret N Camp numeric cu doua zecimale NR_Paturi Numeric Format dintr-un singur caracter Cheia Primar este format din cmpul Numar_Camera Se vor introduce 5 nregistrri n ambele tabele. Restrictiile apar in tabelele de mai sus Se vor lega intre ele tabelele; S se realizeze un filtru care afieaz numele clienilor care ncep cu o anumit liter introdus de la tastatur; S se realizeze un filtru avansat care s afieze clienii care sunt cazai n camere cu numarul cuprins intre doua valori. Valorile se vor introduce in ferestre cu parametrii; Sa se realizeze un filtru avansat prin care se vizualizeaza clientii care au diferenta dintre data nasterii si data curenta mai mare decat 1000 zile; Sa se realizeze o interogare prin care se vizualizeaza clientii din camerele ocupate; Sa se realizeze o interogare prin care se vizualizeaza clientii care stau in camera cu cel mai mare pret; Sa se realizeze interogari de actiune prin care se permit operatiile de adaugare, modificare si stergere de date asupra uneia dintre tabelele bazei de date; Sa se realizeze o interogare care creaza o noua tabela in care se gasesc informatii numai despre un anumit client si camera in care acesta sta; S se realizeze un formular i un subformular prin care sunt afiate datele din tabele Clieni i Camere; Se va realiza un formular care vizualizeaza datele dintr-o tabela in obiecte label si text box si care contine butoane de comanda pentru deplasarea prin tabela si butoane de comanda pentru adaugarea de inregistrari sau pentru stergerea de inregistrari. Formularul nu are butoanele de navigare implicite; Se va realiza un formular care are fondul de o anumita culoare, un obiect label care contine textul MENIU, cu un anumit font marime si grosime diferite de cele implicite. Numele implicit al formularului se modifica din form, in MENIU. Formularul contine butoane de comanda pentru apelul filtrelor si al formularelor realizate anterior; Se va realiza un tabel pivot pentru tabela camere care va calcula pretul mediu al camerelor ocupate; Se va realiza un raport care care se vizualizeaza suma totala care se incaseaza pentru camerele ocupate.

Numeric Yes/NO

153

PROGRAMAREA CALCULATOARELOR SI LIMBAJE DE PROGRAMARE PARTEA II

Problema Nr. 13
I. CLIENTI Nume NR_Buletin Se consider baza de date Hotel care conine urmtoarele tabele: Clienti si Camere. Structura tabelelor este urmtoarea: Text Numeric Format numai din litere, prima litera mare, celelalte mici

Camp numeric de 6 caractere. In modul Datasheet numele campului va fi Numar Buletin Serie_Buletin TEXT Lungime doua caractere n modul Datasheet numele campului va fi SB NR_Camera Numeric Campul este format din trei caractere Data_C Date/Ti Data cazarii egala cu data curenta din calculator me Cheia primara format din cmpurile: Serie_Buletin + Nr_Buletin CAMERE Numar_Camera Ocupat

Campul este format din trei caractere Are valoarea adevarat daca o camera este ocupata NR_Paturi Numeric Format dintr-un singur caracter Pretc Numeric Camp numeric cu doua zecimale Cheia Primar este format din cmpul Numar_Camera Se vor lega intre ele cele doua tabele; S se realizeze un filtru prin care se vizualizeaz clienii cazai ntr-o anumit camer. Numrul camerei se va introduce de la tastatura intr-o fereastra cu parametrii; S se realizeze un filtru avansat prin care se vizualizeaza camerele ocupate cu dou paturi. Sa se realizeze un filtru avansat prin care se vor vizualiza clientii care au data cazarii cuprinsa intre doua valori; Sa se realizeze o interogare prin care se vizualizeaza clientii din camerele ocupate si cu numarul de paturi mai mare decat 1; Sa se realizeze o interogare prin care se vizualizeaza clientii care stau in camera cu cel mai mic pret; Sa se realizeze interogari de actiune prin care se permit operatiile de adaugare, modificare si stergere de date asupra uneia dintre tabelele bazei de date; Sa se realizeze o interogare care creaza o noua tabela in care se gasesc informatii numai despre clientii care u ocupat camerele intr-o anumita luna; S se realizeze un formular prin care sunt vizualizate datele din tabela Clieni i care conine butoane de deplasare prin tabel si butoane de comanda pentru adaugarea de inregistrari sau pentru stergerea de inregistrari. Formularul nu are butoanele de navigare implicite; Se va realiza un formular care are fondul de o anumita culoare, un obiect label care contine textul MENIU, cu un anumit font marime si grosime diferite de cele implicite. Numele implicit al formularului se modifica din form, in MENIU. Formularul contine butoane de comanda pentru apelul filtrelor si al formularelor realizate anterior; Se va realiza un grafic pivot pentru tabela camere care va afisa pretul mediu al camerelor libere si ocupate; 154

Numeric Yes/NO

PROGRAMAREA CALCULATOARELOR SI LIMBAJE DE PROGRAMARE PARTEA II Se va realiza un raport care care se vizualizeaza numarul total de paturi din camerele ocupate.

Problema Nr. 14
Se consider baza de date Hotel care conine urmtoarele tabele: Clienti si Camere. Structura tabelelor este urmtoarea: CLIENTI Nume NR_Buletin

Text Numeric

Se vor afisa litere mari indifirent de caracterele tastate in camp

Cmp numeric de 6 caractere.In modul Datasheet numele campului va fi Numar Buletin Serie_Buletin TEXT Lungime doua caractere n modul Datasheet numele campului va fi SB NR_Camera Numeric Campul este format din trei caractere Cheia primara format din cmpurile: Serie_Buletin + Nr_Buletin CAMERE Numar_Camera Ocupat

Campul este format din trei caractere Are valoarea adevarat daca o camera este ocupata NR_Paturi Numeric Format dintr-un singur caracter Pret_camera Numeric Camp numeric cu trei zecimale Cheia Primar este format din cmpul Numar_Camera Se vor lega intre ele cele doua tabele; S se realizeze filtru avansat n care sunt vizualizate cmpurile: Nume, Numar_Camera n ordinea alfabetica a numelui. Filtrul se va salva ca si o interogare; S se realizeze un filtru avansat prin care sunt vizualizati clienii n ordinea seriei de buletin i n ordinea numrului de buletin; Sa se realizeze o interogare prin care se vizualizeaza clientii din camerele ocupate; Sa se realizeze o interogare prin care se vizualizeaza clientii care stau in camera cu cel mai mare pret; Sa se realizeze interogari de actiune prin care se permit operatiile de adaugare, modificare si stergere de date asupra uneia dintre tabelele bazei de date; Sa se realizeze o interogare care creaza o noua tabela in care se gasesc informatii numai despre un anumit client si camera in care acesta sta; S se realizeze un formular prin care sunt vizualizate datele din interogarea de la punctul 2 in obiecte de tip TextBox si butoane de deplasare inainte, inapoi, adaugare de date si de inchidere a formularului Se va realiza un formular care vizualizeaza datele dintr-o tabela in obiecte label si text box si care contine butoane de comanda pentru deplasarea prin tabela si butoane de comanda pentru adaugarea de inregistrari sau pentru stergerea de inregistrari. Fiecare obiect label are o alta culoare. Formularul nu are butoanele de navigare implicite; Se va realiza un formular care are fondul de o anumita culoare, un obiect label care contine textul MENIU, cu un anumit font marime si grosime diferite de cele implicite. Numele implicit al formularului se modifica din form, in MENIU. Formularul contine butoane de comanda pentru apelul filtrelor si al formularelor realizate anterior; 155

Numeric Yes/NO

PROGRAMAREA CALCULATOARELOR SI LIMBAJE DE PROGRAMARE PARTEA II Se va realiza un tabel pivot pentru tabela camere care va calcula pretul mediu al camerelor ocupate; Se va realiza un raport care care se vizualizeaza suma totala care se incaseaza pentru camerele ocupate.

Problema Nr. 15
I. Se consider baza de date NHotel format din urmtoarele tabele: Nume_Hotel, Orase. Structura tabelelor este urmtoarea:

NHOTEL Nume_Hotel Categoria Localitate

Numele hotelului format numai din litere Numarul de stele al hotelului Orasul in care se gaseste hotelul. Se alege dintr-o lista derulanta care contine valorile: Sibiu, Cluj, Bucuresti, Brasov Nr_Locuri Numeric Numarul de locuri in hotel Cheia primara este format din cmpurile Nume_Hotel si Localitate Orase Nume_Oras

Text Text Lookup

Numele orasului format din 30 de caractere litere sau spatiu, prima litera este mare, celelalte mici. Nume_Judet Text Numele judeului format numai din litere mari. Numele judetului poate fi Sibiu, Cluj, Brasov, Valcea. Numar_loc Numeric Numar de locuitori dintr-un ora format din 7 caractere Cheia primara format din cmpul Nume_Oras Se vor lega intre ele cele doua tabele; S se realizeze un filtru avansat pentru vizualizarea: numelui, numrul de locuri, categoria unui anumit hotel. Numele hotelului este introdus de la tastatur; S se realizeze un filtru avansat care afieaz numele hotelului, numrul de locuri al acestuia categoria, pentru hotelurile din doua orae. Filtrul se va salva ca si o interogare; S se realizeze filtru avansat n care sunt vizualizate cmpurile din tabela Orase in ordinea alfabetica a numelui pentru numarul de locuitori cuprins intre doua valori. Filtrul se va salva ca si o interogare; Sa se realizeze o interogare prin care se vizualizeaza hotelurile dintr-un anumit oras, care are numarul de locuitori mai mare decat o anumita valoare numerica; Sa se realizeze o interogare prin care se vizualizeaza judetul in care exista hotelul cu cel mai mare pret; Sa se realizeze interogari de actiune prin care se permit operatiile de adaugare, modificare si stergere de date asupra uneia dintre tabelele bazei de date; Sa se realizeze o interogare care calculeaza numarul total de locuri din hotelurile unui anumit judet; S se realizeze un formular prin care sunt vizualizate datele din interogarea de la punctul 5; Se va realiza un formular care vizualizeaza datele dintr-o tabela in obiecte label si text box si care contine butoane de comanda pentru deplasarea prin tabela si butoane de comanda pentru

Text

156

PROGRAMAREA CALCULATOARELOR SI LIMBAJE DE PROGRAMARE PARTEA II adaugarea de inregistrari sau pentru stergerea de inregistrari. Fiecare obiect label are o alta culoare. Formularul nu are butoanele de navigare implicite; Se va realiza un formular care are fondul de o anumita culoare, un obiect label care contine textul MENIU, cu un anumit font marime si grosime diferite de cele implicite. Numele implicit al formularului se modifica din form, in MENIU. Formularul contine butoane de comanda pentru apelul filtrelor, interogarilor si al formularelor realizate anterior. Are buton pentru inchiderea formularului curent; Se va realiza un tabel pivot pentru tabela Orase care va calcula numarul mediu al numarului de locuitori al oraselor pe judete; Se va realiza un raport care care se vizualizeaza nr total de locuitori al oraselor pe judete.

Problema Nr. 16
I Se consider baza de date NHotel format din urmtoarele tabele: Nume_Hotel, Orase. Structura tabelelor este urmtoarea:

NHOTEL Nume_Hotel Categoria Localitate Nr_Locuri

Numele hotelului format numai din litere Numarul de stele al hotelului Orasul in care se gaseste hotelul Numarul de locuri in hotel cuprins intre doua valori Cheia primara este format din cmpurile Nume_Hotel si Localitate Orase Nume_Oras Nume_Judet

Text Text Text Numeric

Numele orasului format din 30 de caractere mari Numele judeului apare automat sub forma primele doua litere mari celelalte mici. Numar_loc Numeric Numar de locuitori dintr-un ora format din 7 caractere mai mari decat 5000 si mai mic decat 9000000. Cheia primara format din cmpul Nume_Oras Se vor lega intre ele cele doua tabele; S se realizeze un filtru avansat care afieaz hotelurile n ordinea hotelurilor i a numelor oraelor din judee; S se realizeze un filtru avansat care afieaz numele hotelurilor care au pe a doua pozitie o anumita litera si are numarul de locuri mai mare decat o anumita valoare; Sa se realizeze o interogare prin care se vizualizeaza hotelurile dintr-un anumit oras, care are numarul de locuitori mai mare decat o anumita valoare numerica; Sa se realizeze o interogare prin care se vizualizeaza orasul in care exista hotelul cu cel mai mare pret; Sa se realizeze interogari de actiune prin care se permit operatiile de adaugare, modificare si stergere de date asupra uneia dintre tabelele bazei de date; Sa se realizeze o interogare tabel incrucisat care calculeaza numarul mediu de locuri din hotelurile unei anumite localitati;

Text Text

157

PROGRAMAREA CALCULATOARELOR SI LIMBAJE DE PROGRAMARE PARTEA II Sa se realizeze in modul Wizard un formular si un subformular prin care sa se gestioneze datele din cele doua tabele. Se va realiza un formular care vizualizeaza datele dintr-o tabela in obiecte label si text box si care contine butoane de comanda pentru deplasarea prin tabela si butoane de comanda pentru adaugarea de inregistrari sau pentru stergerea de inregistrari. Fiecare obiect label are o alta culoare. Formularul nu are butoanele de navigare implicite; Se va realiza un formular care are fondul de o anumita culoare, un obiect label care contine textul MENIU, cu un anumit font marime si grosime diferite de cele implicite. Numele implicit al formularului se modifica din form, in MENIU. Formularul contine butoane de comanda pentru apelul filtrelor si al formularelor realizate anterior. Are buton pentru inchiderea formularului curent; Se va realiza un tabel pivot pentru tabela Orase care va calcula numarul mediu de locuri in hotelurile dintr-un anumit oras; Se va realiza un raport care care se vizualizeaza nr total de locuri in hoteluri pe orase.

Problema Nr. 17
I. Se consider baza de date NHotel format din urmtoarele tabele: Nume_Hotel, Orase. Structura tabelelor este urmtoarea:

NHOTEL Nume_Hotel Text Numele hotelului format din 30 litere si spatiu Categoria Text Numarul de stele al hotelului Localitate Text Orasul in care se gaseste hotelul Nr_Locuri Numeric Numarul de locuri in hotel Cheia primara este format din cmpurile Nume_Hotel si Localitate Orase Nume_Oras Text Numele orasului format din 30 de caractere mari Nume_Judet Text Numele judeului format numai din litere mari Numar_loc Numeric Numar de locuitori dintr-un ora Cheia primara format din cmpul Nume_Oras Se vor lega intre ele cele doua tabele; S se realizeze un filtru avansat prin care sunt vizualizate informaiile referitoare la un anumit hotel, dintr-un anumit ora. Numele hotelului i al oraului este introdus de la tastatur; S se realizeze un filtru avansat prin care se vor vizualiza orasele din doua judete. Filtrul se va salva ca si o interogare; Sa se realizeze un filtru avansat in care se vor vizualiza hotelurile dintr-o anumita localitate si au numarul de locuitori cuprins intre doua valori; Sa se realizeze o interogare prin care se vizualizeaza hotelurile dintr-un anumit oras, care are numarul de locuitori mai mare decat o anumita valoare numerica; Sa se realizeze o interogare prin care se vizualizeaza judetul in care exista hotelul cu cel mai mare pret;

158

PROGRAMAREA CALCULATOARELOR SI LIMBAJE DE PROGRAMARE PARTEA II Sa se realizeze interogari de actiune prin care se permit operatiile de adaugare, modificare si stergere de date asupra uneia dintre tabelele bazei de date; Sa se realizeze o interogare care calculeaza numarul total de locuri din hotelurile unui anumit judet; Sa se realizeze un formular prin care se apeleaza filtrele si interogarile create anterior; Sa se realizeze in modul Wizard un formular si un subformular prin care sa se gestioneze datele din cele doua tabele. Se va realiza un formular care vizualizeaza datele dintr-o tabela in obiecte label si text box si care contine butoane de comanda pentru deplasarea prin tabela si butoane de comanda pentru adaugarea de inregistrari sau pentru stergerea de inregistrari. Fiecare obiect label are o alta culoare. Formularul nu are butoanele de navigare implicite; Se va realiza un formular care are fondul de o anumita culoare, un obiect label care contine textul MENIU, cu un anumit font marime si grosime diferite de cele implicite. Numele implicit al formularului se modifica din form, in MENIU. Formularul contine butoane de comanda pentru apelul formularelor realizate anterior. Are buton pentru inchiderea formularului curent; Se va realiza un tabel pivot pentru tabela Orase care va calcula numarul mediu de locuitori din orase pe judete Se va realiza un raport care care se vizualizeaza nr total de locuitori din orase pe judete.

Problema Nr. 18
Se consider o agenie de turism care organizeaz diferite activiti n ar i strintate. Baza de date se numete Turism i conine urmtoarele tabele: Clieni, Excursii. Structura tabelelor este urmtoarea: CLIENTI Cod_Client

Campul este format din 6 caractere. Primele 4 caractere sunt cifre iar ultimele doua litere. Se va realiza masca de intrare corespunzatoare. Nume_Client Text Numele Clientului Cod_Excursie Text Camp format din 8 caractere, 7 cifre si o litera. Litera poate fi "E" pentru excursii externe si "I" pentru excursii interne Cheia primar este format din cmpul Cod_Client EXCURSII Cod_Excursie

Text

Identic cu campul cu acelasi nume din tabela CLIENTI. Litera este I sau E. Destinatie Text Defineste destinatia excursiei. Campul este format din litere sau spatiu Data_Excursie Date/Time Data excursiei. Data apare in formatul Sat.01.2010 Pret Numeric Pretul excursiei numeric cu doua zecimale Cheia primar este format din cmpul Cod_Excursie Se vor lega intre ele cele doua tabele; S se realizeze un filtru avansat care vizualizeaza excursiile care se desfasoara in aceeasi luna a unui an;

Text

159

PROGRAMAREA CALCULATOARELOR SI LIMBAJE DE PROGRAMARE PARTEA II S se realizeze un filtru avansat care afiseaza destinatia excursiilor care au pretul cuprins intre doua valori; Sa se realizeze un filtru avansat care afiseaza excursiile care au data excursiei mai mare decat data curenta cu 20 de zile. Filtrele se vor salva ca si interogari; Sa se realizeze o interogare prin care se vizualizeaza clientii participanti la excursiile a caror destinatie incepe cu o anumita litera si se efectueaza in aceeasi luna; Sa se realizeze o interogare prin care se vizualizeaza clientii participanti la excursia cu cel mai mare pret; Sa se realizeze interogari de actiune prin care se permit operatiile de adaugare, modificare si stergere de date asupra uneia dintre tabelele bazei de date; Sa se realizeze o interogare care calculeaza suma totala incasata de la clienti pe excursii; Sa se realizeze un formular prin care se apeleaza filtrele si interogarile create anterior; Sa se realizeze in modul Wizard un formular si un subformular prin care sa se gestioneze datele din cele doua tabele. Se va realiza un formular care vizualizeaza datele dintr-o tabela in obiecte label si text box si care contine butoane de comanda pentru deplasarea prin tabela si butoane de comanda pentru adaugarea de inregistrari sau pentru stergerea de inregistrari. Fiecare obiect label are o alta culoare. Formularul nu are butoanele de navigare implicite; Se va realiza un formular care are fondul de o anumita culoare, un obiect label care contine textul MENIU, cu un anumit font marime si grosime diferite de cele implicite. Numele implicit al formularului se modifica din form, in MENIU. Formularul contine butoane de comanda pentru apelul formularelor realizate anterior. Are buton pentru apelul mediului excel si pentru inchiderea formularului curent; Se va realiza un tabel pivot pentru tabela Excursii care va calcula pretul mediu al excursiei pe destinatie; Se va realiza un raport care care calculeaza suma incasata pentru excursiile cu aceeasi destinatie.

Problema Nr. 19
I. Se consider o agenie de turism care organizeaz diferite activiti n ar i strintate. Baza de date se numete Turism i conine urmtoarele tabele: Clieni, Excursii. Structura tabelelor este urmtoarea:

CLIENTI Cod_Client

Campul este format din 6 caractere. Primele 4 caractere sunt cifre iar ultimele doua litere. Se va realiza masca de intrare corespunzatoare. Nume_Client Text Numele Clientului. Permite doar introducerea literelor Cod_Excursie Text Camp format din 8 caractere, 7 cifre si o litera. Litera poate fi "E" pentru excursii externe si "I" pentru excursii interne Cheia primar este format din cmpul Cod_Client EXCURSII Cod_Excursie Destinatie

Text

Text Text

Identic cu campul cu acelasi nume din tabela CLIENTI. Litera este I sau E. Defineste destinatia excursiei. Campul este format din litere 160

PROGRAMAREA CALCULATOARELOR SI LIMBAJE DE PROGRAMARE PARTEA II sau spatiu Data_Excursie Date/Time Data excursiei. Data apare in formatul 1.1.2010 Pret Numeric Pretul excursiei numeric cu doua zecimale Cheia primar este format din cmpul Cod_Excursie Se vor lega intre ele cele doua tabele; S se realizeze un filtru avansat care vizualizeaza excursiile care se desfasoara in aceeasi luna a unui an; S se realizeze un filtru avansat care vizualizeaza datele din tabela, pentru care pretul este cuprins intre doua valori si destinatia se termina cu o anumita litera; Sa se realizeze un filtru avansat care afiseaza excursiile care au data excursiei mai mare decat data curenta cu o luna de zile. Filtrele se vor salva ca si interogari; Sa se realizeze o interogare prin care se vizualizeaza clientii participanti la excursiile a caror destinatie se termina cu o anumita litera si se efectueaza in acelasi an; Sa se realizeze o interogare prin care se vizualizeaza clientii participanti la excursia cu cel mai mic pret; Sa se realizeze interogari de actiune prin care se permit operatiile de adaugare, modificare si stergere de date asupra uneia dintre tabelele bazei de date; Sa se realizeze o interogare care calculeaza suma totala incasata, de la clienti pe cod excursie; Sa se realizeze un formular prin care se apeleaza filtrele create anterior; Sa se realizeze in modul Wizard un formular si un subformular prin care sa se gestioneze datele din cele doua tabele. Se va realiza un formular care vizualizeaza datele dintr-o tabela in obiecte label si text box si care contine butoane de comanda pentru deplasarea prin tabela si butoane de comanda pentru adaugarea de inregistrari sau pentru stergerea de inregistrari. Fiecare obiect label are o alta culoare. Formularul nu are butoanele de navigare implicite; Se va realiza un formular care are fondul de o anumita culoare, un obiect label care contine textul MENIU, cu un anumit font marime si grosime diferite de cele implicite. Numele implicit al formularului se modifica din form, in MENIU. Formularul contine butoane de comanda pentru apelul formularelor realizate anterior. Are buton pentru apelul mediului excel si pentru inchiderea formularului curent; Se va realiza un tabel pivot pentru tabela Excursii care va calcula suma totala incasata functie de destinatia excursiilor; Se va realiza un raport care care calculeaza pretul mediu al excursiilor cu aceeasi destinatie.

Problema NR. 20
Se consider o baz de date cu numele Product format din urmtoarele fiiere: Produse, Comenzi, Clienti cu urmtoarea structur:
Produse Nr_prod Nume_Prod Numr produs Descrierea produsului format din litere mari. n modul Datasheet numele cmpului apare Numele Produsului Pret_Prod Numeric Preul produsului Cheia primar este format din cmpul Nr_prod Numeric Text

161

PROGRAMAREA CALCULATOARELOR SI LIMBAJE DE PROGRAMARE PARTEA II

Comenzi: Cod_Client Nr_prod Cant_Prod Cod_Cda Achitat

Cod client format din 4 caractere numerice Numr produs Cantitate produs Cod comad n modul Datasheet va apare pentru cmp textul Cod Comanda Se consider valoarea yes dac factura este achitat i valoarea no dac factura nu este achitat Data_Cda Date/Time Data comenzi. Data apare in formatul Mon.01.2010 Cheia primar este format din cmpul Cod_Cda. Clieni Cod_Client Nume_Client Adresa

Numeric Numeric Numeric Numeric yes/no

Nume client Adresa clientului. Primele caractere reprezinta localitatea de domiciliu, urmata de numele strzi, nr, bloc etc Judet Text Judeul de domiciliu al clientului Nr Telef Text Numrul de telefon al clientului Masca de intrare este de forma 4 cifre liniuta 6 cifre Cheia primar este format din cmpurile Nume Client i Adresa.

Numeri c Text Text

Cod client format din 4 caractere numerice

Se vor lega intre ele cele trei tabele; S se realizeze un filtru avansat prin care s se vizualizeze produsele ce au pretul cuprins intre doua valori; Sa se realizeze un filtru care vizualizeaza comenzile achitate cu data comenzii cuprinsa intre doua date calendaristice; Sa se realizeze un filtru avansat care vizualizeaza clientii din aceeasi localitate. Filtrele se vor salva ca si interogari; Sa se realizeze o interogare prin care se vizualizeaza clientii care au comandat un anumit produs; Sa se realizeze o interogare prin care se vizualizeaza clientii care au comandat produsul cel mai scump; Sa se realizeze interogari de actiune prin care se permit operatiile de adaugare, modificare si stergere de date asupra uneia dintre tabelele bazei de date; Sa se realizeze o interogare care calculeaza valoarea produselor comandate de clientii care au achitat comenzile. Valoare =pret*cantitate; Se va realiza un formular care vizualizeaza datele dintr-o tabela in obiecte label si text box si care contine butoane de comanda pentru deplasarea prin tabela si butoane de comanda pentru adaugarea de inregistrari sau pentru stergerea de inregistrari. Fiecare obiect label are o alta culoare. Formularul nu are butoanele de navigare implicite; Se va realiza un formular care are fondul de o anumita culoare, un obiect label care contine textul MENIU, cu un anumit font marime si grosime diferite de cele implicite. Numele implicit al formularului se modifica din form, in MENIU. Formularul contine butoane de comanda pentru apelul filtrelor realizate anterior. Are buton pentru inchiderea formularului curent; Se va realiza un tabel pivot pentru tabela Produse care va calcula pretul mediu pe produs; Se va realiza un raport care care calculeaza cantitate totala pe cod client.

162

PROGRAMAREA CALCULATOARELOR SI LIMBAJE DE PROGRAMARE PARTEA II

Problema Nr 21
Se consider o baz de date cu numele Product format din urmtoarele fiiere: Produse, Comenzi, Clienti cu urmtoarea structur:
Numr produs Denumire produs format din litere mari. n modul Datasheet numele cmpului apare Numele Produsului Pret_Prod Numeric Preul produsului Cheia primar este format din cmpul Nr_prod Comenzi: Cod_Client Numeric Cod client format din 4 caractere numerice Nr_prod Numeric Numr produs Cant_Prod Numeric Cantitate produs Cod_Cda Numeric Cod comad n modul Datasheet va apare pentru cmp textul Cod Comanda Achitat yes/no Se consider valoarea yes dac factura este achitat i valoarea no dac factura nu este achitat Data_Cda Date/Time Data comenzi. Data apare in formatul Fra.01.2010 Cheia primar este format din cmpul Cod_Cda. Clieni Cod_Client Numeric Cod client format din 4 caractere numerice Nume_Client Text Nume client Adresa Text Adresa clientului. Primele caractere reprezinta localitatea de domiciliu, urmata de numele strzi, nr, bloc etc Judet Text Judeul de domiciliu al clientului Nr Telef Text Numrul de telefon al clientului Masca de intrare este de forma 4 cifre liniuta 6 cifre Cheia primar este format din cmpurile Nume Client i Adresa. Produse Nr_prod Nume_Prod Numeric Text

Se vor lega intre ele cele trei tabele; S se realizeze un filtru avansat prin care s se vizualizeze produsele ce au pretul cuprins intre doua valori si numarul produsului intre doua valori; Sa se realizeze un filtru care vizualizeaza comenzile neachitate cu data comenzii mai mica decat data curenta Sa se realizeze un filtru avansat care vizualizeaza clientii din aceeasi localitate si au acelasi prefix la nr de telefon. Filtrele se vor salva ca si interogari; Sa se realizeze o interogare prin care se vizualizeaza clientii care au comandat un anumit produs a carui nume se termina cu o anumita litera; Sa se realizeze o interogare prin care se vizualizeaza clientii care au comandat produsul aflat in cantitatea cea mai mare; Sa se realizeze interogari de actiune prin care se permit operatiile de adaugare, modificare si stergere de date asupra uneia dintre tabelele bazei de date; Sa se realizeze o interogare care calculeaza valoarea produselor comandate de clientii care au achitat comenzile. Valoare =pret*cantitate; Se va realiza un formular care vizualizeaza datele dintr-o tabela in obiecte label si text box si care contine butoane de comanda pentru deplasarea prin tabela si butoane de comanda pentru adaugarea de inregistrari sau pentru stergerea de inregistrari. Fiecare obiect label are o alta culoare. Formularul nu are butoanele de navigare implicite; Se va realiza un formular care are fondul de o anumita culoare, un obiect label care contine textul MENIU, cu un anumit font marime si grosime diferite de cele implicite. Numele

163

PROGRAMAREA CALCULATOARELOR SI LIMBAJE DE PROGRAMARE PARTEA II implicit al formularului se modifica din form, in MENIU. Formularul contine butoane de comanda pentru apelul filtrelor realizate anterior. Are buton pentru inchiderea formularului curent; Se va realiza un grafic pivot pentru tabela Comenzi care va vizualiza cantitatea totala pe cod client; Se va realiza un raport care calculeaza pretul mediu pe produs.

Problema Nr 22
I Se considera baza de date PERSONAL cu tabelele SALARIAT cu urmtoarea structur: MARCA N lungimea campului este de 5 caractere numerice NUME T lungimea este de 20 caractere. Apare numai cu caractere mari PRENUME T lungimea este de 20 caractere SALAR N lungimea este de 10 cu doua zecimale mai mare ca 700 si mai mic decat 30000 DATA_NAS D format General Date COD_SECTIE T lungime de 6 caractere care pot fi numai litere DATA_ANGAJARII D mai mare cu 16 ani decat data nasterii Cheia primara este campul MARCA si tabela DATE_PERSONALE cu campurile MATRICOL N lungimea este de 5 caractere numerice STARE_CIVILA T lungimea este de 10 caractere NR_COPII N lungime pe doua caractere VECHIME N mai mare decat 0 si mai mica decat 40 Cheia primara este campul MATRICOL Se vor lega intre ele tabelele Se vor lega intre ele cele doua tabele; S se realizeze un filtru avansat prin care s se vizualizeze persoanele casatorite cu o vechime in munca mai mare de 10 ani; Sa se realizeze un filtru avansat care vizualizeaza persoanele care lucreaza in aceeasi sectie si sunt angajate inainte de 01/01/2000; Sa se realizeze un filtru avansat care vizualizeaza angajatii cu varsta mai mare de 40 de ani. Filtrele se vor salva ca si interogari; Se va realiza un formular care vizualizeaza datele dintr-o tabela in obiecte label si text box si care contine butoane de comanda pentru deplasarea prin tabela si butoane de comanda pentru adaugarea de inregistrari sau pentru stergerea de inregistrari. Fiecare obiect label are o alta culoare. Formularul nu are butoanele de navigare implicite; Se va realiza un formular care are fondul de o anumita culoare, un obiect label care contine textul MENIU, cu un anumit font marime si grosime diferite de cele implicite. Numele implicit al formularului se modifica din form, in MENIU. Formularul contine butoane de comanda pentru apelul filtrelor realizate anterior. Are buton pentru inchiderea formularului curent; Se va realiza un tabel pivot pentru tabela SALARIAT care va vizualiza salariul mediu pe sectii; Se va realiza un raport care calculeaza numarul total de copii pe tipul de stare_civila.

164

PROGRAMAREA CALCULATOARELOR SI LIMBAJE DE PROGRAMARE PARTEA II

Problema Nr 23
I. MARCA Se considera baza de date PERSONAL cu tabelele SALARIAT cu urmtoarea structur: N5

Permite introducerea valorilor numeice cuprinse intre 100 si 10000 NUME T 20 Permite introducerea numai a literelor. In modul Datasheet se modifica in Numele Angajatului PRENUME T 20 Permite introducerea numai a literelor SALAR N 10 Valoare numerica cu trei zecimale DATA_NASTERII D Mai mica decat data curenta cu 16 ani COD_SECTIE N6 Permite introducerea numai a caracterelor numerice DATA_ANGAJARII D Mai mare decat data curenta cu 16 ani Cheia primara este campul MARCA si tabela DATE_PERSONALE cu campurile MATRICOL N5 STARE_CIVILA T 12 Poate avea valorile: casatorit si necasatorit NR_COPII N2 VECHIME N 3 Mai mare decat 0 si mai mica decat 45 Cheia primara este campul MATRICOL Se vor lega intre ele cele doua tabele; S se realizeze un filtru avansat prin care s se vizualizeze persoanele necasatorite cu o vechime in munca mai mare de 20 ani; Sa se realizeze un filtru avansat care vizualizeaza persoanele care lucreaza in aceeasi sectie si sunt angajate inainte de 01/01/2001; Sa se realizeze un filtru avansat care vizualizeaza angajatii cu varsta mai mare de 40 de ani si au un copil. Filtrele se vor salva ca si interogari; Se va realiza un formular care vizualizeaza datele dintr-o tabela in obiecte label si text box si care contine butoane de comanda pentru deplasarea prin tabela si butoane de comanda pentru adaugarea de inregistrari sau pentru stergerea de inregistrari. Fiecare obiect label are o alta culoare. Formularul nu are butoanele de navigare implicite; Se va realiza un formular care are fondul de o anumita culoare, un obiect label care contine textul MENIU, cu un anumit font marime si grosime diferite de cele implicite. Numele implicit al formularului se modifica din form, in MENIU. Formularul contine butoane de comanda pentru apelul filtrelor realizate anterior. Are buton pentru inchiderea formularului curent; Se va realiza un tabel pivot pentru tabela SALARIAT care va vizualiza salariul mediu pe sectii; Se va realiza un raport care calculeaza numarul total de copii pe tipul de stare_civila.

Problema Nr 24

165

PROGRAMAREA CALCULATOARELOR SI LIMBAJE DE PROGRAMARE PARTEA II Se consider o baz de date cu numele Product format din urmtoarele fiiere: Produse, Comenzi, Clienti cu urmtoarea structur:
Numr produs Denumire produs format din litere mari. n modul Datasheet numele cmpului apare Numele Produsului Pret_Prod Numeric Preul produsului poate fi mai mare decat 10 si mai mic decat 10000 Cheia primar este format din cmpul Nr_prod Comenzi: Cod_Client Numeric Cod client format din 4 caractere numerice Nr_prod Numeric Numr produs Cant_Prod Numeric Cantitate produs Cod_Cda Numeric Cod comad n modul Datasheet va apare pentru cmp textul Cod Comanda Achitat yes/no Se consider valoarea yes dac factura este achitat i valoarea no dac factura nu este achitat Data_Cda Date/Time Data comenzi Cheia primar este format din cmpul Cod_Cda. Clieni Cod_Client Numeric Cod client format din 4 caractere numerice Nume_Client Text Nume client Adresa Text Adresa clientului. Primele caractere sunt implicit SIBIU reprezinta localitatea de domiciliu, urmata de numele strzi, nr, bloc etc. Lungimea campului este de 30 caractere. Judet Text Judeul de domiciliu al clientului. Poate fi Sibiu sau Alba sau Brasov. Alte denumiri nu sunt permise in camp. Nr Telef Text Numrul de telefon al clientului Masca de intrare este de forma 4 cifre liniuta 6 cifre Cheia primar este format din cmpurile Nume Client i Adresa. Produse Nr_prod Nume_Prod Numeric Text

Se vor lega intre ele cele trei tabele; S se realizeze un filtru avansat prin care s se vizualizeze produsele ce au pretul cuprins intre doua valori si numarul produsului intre doua valori; Sa se realizeze un filtru care vizualizeaza comenzile neachitate cu data comenzii mai mica decat data curenta Sa se realizeze un filtru avansat care vizualizeaza clientii din aceeasi localitate si au acelasi prefix la nr de telefon. Filtrele se vor salva ca si interogari; Sa se realizeze o interogare prin care se vizualizeaza clientii care au comandat un anumit produs; Sa se realizeze o interogare prin care se vizualizeaza clientii care au comandat produsul cel mai ieftin; Sa se realizeze interogari de actiune prin care se permit operatiile de adaugare, modificare si stergere de date asupra uneia dintre tabelele bazei de date; Sa se realizeze o interogare care vizualizeaza clientii care au comandat produsele cu cea mai amre valoare. Valoare =pret*cantitate; Se va realiza un formular care vizualizeaza datele dintr-o tabela in obiecte label si text box si care contine butoane de comanda pentru deplasarea prin tabela si butoane de comanda pentru adaugarea de inregistrari sau pentru stergerea de inregistrari. Fiecare obiect label are o alta culoare. Formularul nu are butoanele de navigare implicite; Se va realiza un formular care are fondul de o anumita culoare, un obiect label care contine textul MENIU, cu un anumit font marime si grosime diferite de cele implicite. Numele implicit al formularului se modifica din form, in MENIU. Formularul contine butoane de

166

PROGRAMAREA CALCULATOARELOR SI LIMBAJE DE PROGRAMARE PARTEA II comanda pentru apelul filtrelor realizate anterior. Are buton pentru inchiderea formularului curent; Se va realiza un grafic pivot pentru tabela Comenzi care va vizualiza cantitatea totala pe cod client; Se va realiza un raport care calculeaza pretul mediu pe produs.

Problema Nr.25
I. Se consider baza de date Raport_cercetare format din 2 tabele : Facultati i Activitate ce au urmtoarea structur : Faculti Nr_crt Numeric Se incrementeaza automat Nume_oras Sir de caractere tip Text In modul datasheet apare Denumirea orasului. In camp se pot introduce doar litere. Den_Facult Sir de caractere tip Text In modul datasheet apare Denumirea facultatii. Denumirile pot fi Inginerie, Drept, Stiinte Nr_cadre Numeric 2 Numrul de cadre didactice. El trebuie sa fie mai mic decat 30
Cheia primara este cmpul den_facult

Activitate Facult

Denumirea facultatii format din 20 caractere mari. Se pot introduce doar litere Cadre_didactice Sir de caractere Numele autorilor din litere mari Publicatii Sir de caractere Denumirea cartilor publicate Contr_cercet Numeric Numrul de contracte Cheia primara este formata din cmpurile facult i autori

Sir de caractere

Se vor lega intre ele cele doua tabele; S se realizeze un filtru avansat prin care s se vizualizeze facultatile din orasele care au in denumire pe a doua pozitie o anumita litera si numarul de cadre didactice mai mare decat o anumita valoare; Sa se realizeze un filtru avansat care vizualizeaza cadrele didactice care au contractele de cercetare cuprinse intre doua valori; Sa se realizeze un filtru avansat care vizualizeaza publicatiile care au denumirea mai lunga decat 15 caractere; Se va realiza un formular care vizualizeaza datele dintr-o tabela in obiecte label si text box si care contine butoane de comanda pentru deplasarea prin tabela si butoane de comanda pentru adaugarea de inregistrari sau pentru stergerea de inregistrari. Fiecare obiect label are o alta culoare. Formularul nu are butoanele de navigare implicite; Se va realiza un formular care are fondul de o anumita culoare, un obiect label care contine textul MENIU, cu un anumit font marime si grosime diferite de cele implicite. Numele implicit al formularului se modifica din form, in MENIU. Formularul contine butoane de comanda pentru apelul filtrelor realizate anterior. Are buton pentru inchiderea formularului curent; Se va realiza un grafic pivot pentru tabela Activitate care va vizualiza numarul total de contracte pe facultati; Se va realiza un raport care calculeaza numarul mediu de cadre didactice functie de oras.

167

PROGRAMAREA CALCULATOARELOR SI LIMBAJE DE PROGRAMARE PARTEA II

Problema Nr.26
I. Se consider baza de date GLOB cu tabelele CONTINENTE SI TARI ce au urmtoarea structur: Continente Nume Sir de caractere Denumire continent Se vor afisa litera mari Suprafa Numeric Suprafata Camp numeric de 10 caractere mai mare decat 1000 Nr_loc Numeric Numrul de locuitori Cmp numeric de 10 caractere Cheia primara este campul Nume Tri Nume_continent Sir de caractere Denumire continent Se vor afisa litera mari Numr_loc Numeric Numr de locuitori Cmp numeric de 6 caractere Nume_tari Sir de caractere Denumire tri Se vor afisa litera mari Supraf Numeric Suprafata unei tari Camp numeric de 10 caractere dintre care doua zecimale Forme_ref Sir de caractere Forme de relief Poate lua numai valorile campie, deal podis, munte Orase Sir de caractere Denumire orase Se vor afisa numai cu litere mari Cheia primara este formata din campul Nume_tri Se vor lega intre ele cele doua tabele si se vor definii restrictiile care sunt scrise in tabel; Sa se realizeze un filtru avansat prin care se vor afisa tarile care au suprafata cuprinsa intre doua valori si contin doua orase; Sa se realizeze un filtru avansat care vizualizeaza continentul care are suprafata cuprinsa intre doua valori si numarul de locuitori cuprins tot intre doua valori. Sa se realizeze un filtru avansat prin care se vizualizeaza continentul care are forma de relief deal sau munte si contin o anumita tara. Filtrele se vor salva ca si interogari; Sa se realizeze o interogare prin care se vizualizeaza tarile dintr-un anumit continent care au forma de relief deal; Sa se realizeze o interogare prin care se vizualizeaza tarile care apartin continentului cu suprafata cea mai mare; Sa se realizeze interogari de actiune prin care se permit operatiile de adaugare, modificare si stergere de date asupra uneia dintre tabelele bazei de date; Sa se realizeze o interogare care calculeaza suprafata medie a tarilor grupate pe continente; Se va realiza un formular care vizualizeaza datele dintr-o tabela in obiecte label si text box si care contine butoane de comanda pentru deplasarea prin tabela si butoane de comanda pentru adaugarea de inregistrari sau pentru stergerea de inregistrari. Fiecare obiect label are o alta culoare. Formularul nu are butoanele de navigare implicite; Se va realiza un formular care are fondul de o anumita culoare, un obiect label care contine textul MENIU, cu un anumit font marime si grosime diferite de cele implicite. Numele implicit al formularului se modifica din form, in MENIU. Formularul contine butoane de comanda pentru apelul filtrelor realizate anterior. Are buton pentru inchiderea formularului curent; Se va realiza un tabel pivot pentru tabela TARI care va vizualiza suprafata medie a tarilor pe continente; Se va realiza un raport care calculeaza suprafata totala a tarilor pe continenete.

168

PROGRAMAREA CALCULATOARELOR SI LIMBAJE DE PROGRAMARE PARTEA II

Problema Nr.27
I. Se consider baza de date GLOB cu tabelele CONTINENTE SI TARI ce au urmtoarea structur: Continente Nume Sir de caractere Denumire continent Se vor afisa litera mari Suprafa Numeric Suprafata Camp numeric de 10 caractere Nr_loc Numeric Numrul de locuitori Cmp numeric de 6 caractere Cheia primara este campul Nume Tri Nume_continent Numr_loc Nume_tari Supraf Sir de caractere Numeric Sir de caractere Numeric Denumire continent Numr de locuitori Denumire tri Suprafata Se vor afisa litera mari Cmp numeric de 8 caractere Se vor afisa litera mari Camp numeric de 10 caractere dintre care doua zecimale Se vor afisa litera mari

Forme_ref Sir de caractere Forme de relief Orase Sir de caractere Denumire orase Cheia primara este formata din campul Nume_tri

Se vor lega intre ele cele doua tabele si se vor definii restrictiile care sunt scrise in tabel; Sa se realizeze un filtru avansat prin care se vor afisa tarile care au suprafata cuprinsa intre doua valori si au numele o valoare sau alta; Sa se realizeze un filtru avansat care vizualizeaza continentul care are suprafata cuprinsa intre doua valori si numarul de locuitori cuprins tot intre doua valori. Sa se realizeze un filtru avansat prin care se vizualizeaza continentul care are forma de relief deal sau campie si contin o anumita tara. Filtrele se vor salva ca si interogari; Sa se realizeze o interogare prin care se vizualizeaza tarile dintr-un anumit continent care au forma de relief deal; Sa se realizeze o interogare prin care se vizualizeaza tarile care apartin continentului cu suprafata cea mai mica; Sa se realizeze interogari de actiune prin care se permit operatiile de adaugare, modificare si stergere de date asupra uneia dintre tabelele bazei de date; Sa se realizeze o interogare care calculeaza suprafata totala a tarilor grupate pe continente; Se va realiza un formular care vizualizeaza datele dintr-o tabela in obiecte label si text box si care contine butoane de comanda pentru deplasarea prin tabela si butoane de comanda pentru adaugarea de inregistrari sau pentru stergerea de inregistrari. Fiecare obiect label are o alta culoare. Formularul nu are butoanele de navigare implicite; Se va realiza un formular care are fondul de o anumita culoare, un obiect label care contine textul MENIU, cu un anumit font marime si grosime diferite de cele implicite. Numele implicit al formularului se modifica din form, in MENIU. Formularul contine butoane de comanda pentru apelul filtrelor realizate anterior. Are buton pentru inchiderea formularului curent; Se va realiza un grafic pivot pentru tabela TARI care va vizualiza suprafata medie a tarilor pe continente; Se va realiza un raport care calculeaza numarul mediu de locuitori pe continente si numarul total de locuitori de pe toate continentele.

169

PROGRAMAREA CALCULATOARELOR SI LIMBAJE DE PROGRAMARE PARTEA II

Problema Nr. 28
Se consider o baz de date cu numele Casa de Mod format din urmtoarele fiiere: Colecie, Client, cu urmtoarea structur: Colecie Cod_colectie Text Din 4 caractere care pot fi doar litere Nr_inv Numeric Mai mare decat 1000 si mai mic decat 10000 Pret_Prod Numeric Cu trei zecimale Design Text Permite tastarea numai a literelor An Numeric Format din 4 caractere numerice. Anul mai mare decat 1990 si mai mic sau egal decat 2010 Cheia pimara este format din cmpul Cod_colectie Client: Cod_client Numeric Numeric mai mare dect 10 si mai mic decat 10000 Nume client Text Format din maxim 30 de caractere litere sau spatiu Adresa Text Incepe cu caracterele Sibiu Cod_colectie Text Din 4 caractere care pot fi doar litere Cheia primara este format din cmpul Cod_client+Cod_colectie Se vor lega intre ele cele doua tabele si se vor definii restrictiile care sunt scrise in tabel; Sa se realizeze un filtru avansat prin care se vor afisa colectiile cu pretul mai mare decat o valoare si numarul de inventar egal cu doua valori; Sa se realizeze un filtru avansat care vizualizeaza clientii a caror nume se termina cu o anumita litera si codul colectiei are o anumita valoare; Sa se realizeze un filtru avansat prin care se vizualizeaza codul colectiilor care au anul mai mare decat o valoare si mai mic decat o alta valoare. Filtrele se vor salva ca si interogari; Se va realiza un formular care vizualizeaza datele dintr-o tabela in obiecte label si text box si care contine butoane de comanda pentru deplasarea prin tabela si butoane de comanda pentru adaugarea de inregistrari sau pentru stergerea de inregistrari. Fiecare obiect label are o alta culoare. Formularul nu are butoanele de navigare implicite; Se va realiza un formular care are fondul de o anumita culoare, un obiect label care contine textul MENIU, cu un anumit font marime si grosime diferite de cele implicite. Numele implicit al formularului se modifica din form, in MENIU. Formularul contine butoane de comanda pentru apelul filtrelor realizate anterior. Are buton pentru inchiderea formularului curent; Se va realiza un tabel pivot pentru tabel Colectie care va vizualiza pretul mediu al colectiilor pe ani; Se va realiza un raport care pretul total al colectiilor.

170

PROGRAMAREA CALCULATOARELOR SI LIMBAJE DE PROGRAMARE PARTEA II

Problema Nr. 29
I. In baza de date Magazie, s se creeze tabelele Produse i Lucrtori, cu urmtoarea structur:

Produse
Cod T8 denumire T 30 data_f Data pret N 10 disponibil Yes/No Cheia primara este campul Cod codul produsului format din doua litere si 6 cifre denumirea produsului, apare cu litere mari data fabricatiei anul sa fie 2010 pretul produsului numeric cu doua zecimale Yes disponibil, No nedisponibil

Lucrtori
T8 codul produsului format numai din litere T 30 numele i prenumele T 10 functia angajatului D data angajrii egala cu data curenta din calculator Domiciliul C 30 domiciliul angajatului Cheia primara este formata din campurile Codp si Nume Se vor lega intre ele cele doua tabele si se vor definii restrictiile care sunt scrise in tabel; Sa se realizeze un filtru avansat prin care se vor afisa produsele care au pe primele doua pozitii ale codului literele aa si pretul mai mare decat o valoare si mai mic decat o alta valoare; Sa se realizeze un filtru avansat care vizualizeaza lucratorii care o anumita functie si oa numita data a angajarii. Cele doua date se introduc prin ferestre cu parametrii; Sa se realizeze un filtru avansat prin care se vizualizeaza lucratorii care au data angajarii intr-o anumita luna. Filtrele se vor salva ca si interogari; Folosind utilitarul Wizard sa se prezinte intr-un formular si un subformular datele din cele doua tabele; Se va realiza un formular care vizualizeaza datele dintr-o tabela in obiecte label si text box si care contine butoane de comanda pentru deplasarea prin tabela si butoane de comanda pentru adaugarea de inregistrari sau pentru stergerea de inregistrari. Fiecare obiect label are o alta culoare. Formularul nu are butoanele de navigare implicite; Se va realiza un formular care are fondul de o anumita culoare, un obiect label care contine textul MENIU, cu un anumit font marime si grosime diferite de cele implicite. Numele implicit al formularului se modifica din form, in MENIU. Formularul contine butoane de comanda pentru apelul filtrelor realizate anterior si a formularelor create anterior. Are buton pentru inchiderea formularului curent; Se va realiza un tabel pivot pentru tabela Produse care va vizualiza pretul mediu al produselor pe data de fabricatie; Se va realiza un raport care vizualizeaza datele din primul filtru. Codp Nume Functia Data_ang

171

PROGRAMAREA CALCULATOARELOR SI LIMBAJE DE PROGRAMARE PARTEA II

Problema Nr. 30
I. S se construiasc baza de date Club, care conine fiierul de date Sporturi care ine evidena numrului de sportivi, cu urmtoarele cmpuri : Den_sport T 30 denumire sport. In modul datasheet apare denumire sport Categ T 10 categorie. Permite introducerea numai a literelor. Poate avea doar valorile Olimpic, Neolimpic sau Foarte putin practicat Cods N5 codul sportului. Valoarea initiala 10000 Cheia primara formata din campul Den_sport Si tabela SPORTIVI cu campurile N5 codul sportului. Valoarea initiala 10000 T 30 numele si prenumele sportivilor N2 vrsta mai mare decat 14 si mai mica decat 40 N 5.2 Greutaea sportivului greutate mai mare decat 30 si mai mica decat 200. Campul este numeric cu doua zecimale Sex Yes/No yes masculin, no feminin Echipa T 20 echipa de care apartine Cheia primara formata din campul Codul_sportivului Se vor lega intre ele cele doua tabele si se vor definii restrictiile care sunt scrise in tabel; Sa se realizeze un filtru avansat prin care se vor afisa sportivii de sex masculin care apartin la doua echipe ; Sa se realizeze un filtru avansat care vizualizeaza sportivii cu greutatea si varsta cuprinse intre doua valori. Cele patru date se introduc prin ferestre cu parametrii; Sa se realizeze un filtru avansat prin care se vizualizeaza sportivii de la doua echipe si au greutatea mai mica decat o valoare; Sa se realizeze un filtru avansat prin care se vizualizeaza sporturile a caror denumire se termina cu o anumita litera si categoria are doua valori. Filtrele se vor salva ca si interogari; Folosind utilitarul Wizard sa se prezinte intr-un formular si un subformular datele din cele doua tabele; Se va realiza un formular care vizualizeaza datele dintr-o tabela in obiecte label si text box si care contine butoane de comanda pentru deplasarea prin tabela si butoane de comanda pentru adaugarea de inregistrari sau pentru stergerea de inregistrari. Fiecare obiect label are o alta culoare. Formularul nu are butoanele de navigare implicite; Se va realiza un formular care are fondul de o anumita culoare, un obiect label care contine textul MENIU, cu un anumit font marime si grosime diferite de cele implicite. Numele implicit al formularului se modifica din form, in MENIU. Formularul contine butoane de comanda pentru apelul filtrelor realizate anterior si a formularelor create anterior. Are buton pentru inchiderea formularului curent; Se va realiza un tabel pivot pentru tabela Sportivi care va vizualiza greutatea medie a sportivilor pe echipe; Se va realiza un raport care vizualizeaza greutatea totala a sportivilor pe echipe. Codul_sportivului Nume Varsta Greutate

172

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