Documente Academic
Documente Profesional
Documente Cultură
SORIN BORZA
PROGRAMAREA CALCULATOARELOR SI LIMBAJE DE PROGRAMARE PARTEA II Manual pentru uzul studenilor la forma de nvmnt la distan
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
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.
VIII. IX.
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.
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.
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
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
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.
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.
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.
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
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
Un SGBDD, este format dintr-o singur baz de date logic divizat ntr-un numr de pri
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.
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.
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
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.
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.
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.
Cod 01
Desen d1
Cod 02
Desen d2
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
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
Clase existente
36
Cutit
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.
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.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
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)
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)
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
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.
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
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.
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
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
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
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.
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.
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.
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).
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
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.
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.
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
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)
COD_DEPOZI dep01 e)
SELECT * FROM stocuri WHERE cantitate in(50,100,200); COD_PRODUS prod001 prod080 prod060 prod080 CANTITATE 50 100 200 50
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
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
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
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
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'
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.
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.
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)
97
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.
salvarea lor. Pentru acest tip de aplicaii este necesar accesul fr restricii la obiectele bazei de date.
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
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
Fig. 2
3.3.1
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.
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.
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.
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.
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.
Fig. 7
108
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.
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.10
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.
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
NUMAR COMANDA 1014 2200 Facturi NUMAR 1014 1014 2200 2200 Exemplul 1
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.
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
118
Fig. 11
Ca s aliniai rezultatul obinut, utilizai riglele afiate. Putei selecta i mai multe 119
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.
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
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)_.
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.
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.
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()
Chr() Chr$()
Instr() Lcase()
Returneaz poziia unui ir n cadrul altui ir i Returneaz irul iniial scris cu litere mici
Lcase$()
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$()
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.
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.
?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
Iif()
Returneaz o valoare dac rezultatul expresiei este True i o alt valoare dec rezultatul expresiei este False
Isdate() Isempty()
?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
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
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
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
denumire facultate cheie primar matricolul studentului cheie primara denumire secie grupa studentilor