baze de date suport de curs

of 52 /52
FACULTATEA DE ŞTIINŢE ECONOMICE, JURIDICE ŞI ADMINISTRATIVE UNIVERSITATEA DIN PITEŞTI

Embed Size (px)

Transcript of baze de date suport de curs

FACULTATEA DE TIINE ECONOMICE, JURIDICE I ADMINISTRATIVE UNIVERSITATEA DIN PITETI

Lector univ. dr. LOGICA BNIC

Piteti, 2007Cap. 1 Noiuni introductive.....................................................................................4 1.1 Ce sunt bazele de date?.....................................................................................4 1.2 Securitatea datelor.............................................................................................6 1.3 Modelul relaional al bazelor de date................................................................6 Cap. 2 Sistemul de gestiune a bazelor de date Microsoft Access.........................9 2.1 Componentele principale..................................................................................9 Fig. 1 Componente principale ale sistemului Access ..........................................10 2.2 Tabele (Tables)...............................................................................................10 Fig. 2 Modaliti de creare a tabelelor ................................................................11 Fig. 3 Crearea tabelelor n modul Design View...................................................12 Fig. 4 Exemplu de utilizare a proprietilor unui cmp.....................................14 2.3 Relaii ntre tabele (Relationships).................................................................15 Fig. 5 Stabilirea relaiilor ntre tabele..................................................................16 2.4 Interogri (Queries).........................................................................................18 Fig. 6 Modaliti de construire a interogrilor....................................................19 Fig. 7 Construirea interogrii de selecie.............................................................20 Fig. 8 Construirea interogrii de tip Total...........................................................22 Fig. 9 Construirea interogrii de tip Crosstab....................................................24 2.5 Formulare (Forms)..........................................................................................25 Fig. 10 Modaliti de creare a formularelor .......................................................26 Fig. 11 Crearea formularelor cu Form Wizard...................................................27 Fig. 12 Deschiderea formularelor n modul Design View...................................28 2.6 Rapoarte (Reports)..........................................................................................30 Fig. 13 Stabilirea nivelurilor de grupare .............................................................31 Fig. 15 Deschiderea raportului n modul Design View.......................................33

2

2.7 Macrocomenzi................................................................................................33 2.8 Exemplu de proiectare a unei baze de date.....................................................35 2.9 Verificarea cunotinelor ................................................................................38 Bibliografie..............................................................................................................39

3

Cap. 1 Noiuni introductive 1.1 Ce sunt bazele de date? Datele sunt iruri alfanumerice prin care se reprezint fapte, obiecte, situaii rezultate din msurare sau numrare. Ele sunt stocate pe un suport magnetic, de unde vor fi utilizate direct sau prelucrate ntr-un anumit scop. Pentru a putea folosi aceste date, ele trebuie organizate ntr-un anumit mod. Volumul mare de date vehiculate, necesitatea stocrii lor i regsirea rapid a anumitor informaii sunt numai cteva dintre cauzele care au condus la apariia coleciilor de date organizate, numite i baze de date (databases). Definiie[Ipate]: Bazele de date sunt colecii de date organizate care servesc unui anumit scop. Organizarea datelor se refer la stocarea, reprezentarea i accesarea lor ntr-un mod bine definit. Scopul pentru care sunt create bazele de date l reprezint domeniul de interes al acestora, problemele pentru care trebuie s gseasc o rezolvare. Astfel, sunt baze de date care se axeaz pe domeniul economic, bancar, dar exist i baze de date cu scopuri tiinifice, militare etc. Datele pe care le conin BD sunt n mod obinuit de tip alfanumeric, dar pot fi i imagini, sunete, elemente multimedia. n arhitectura bazelor de date se disting patru niveluri: Nivelul conceptual este fundamental deoarece descrie sistemul ce urmeaz a fi modelat. Cel mai clar mod de a descrie sistemul este utilizarea unui limbaj natural, a unor diagrame i a exemplelor. n procesul de modelare se examineaz informaia n amnunt, la fiecare moment de timp. La acest nivel se realizeaz schema conceptual, care reprezint design-ul general al sistemului. Nivelul extern se specific structura bazei de date perceput de utilizatori i se face legtura ntre acest design i schema conceptual. Dac sunt mai multe grupuri de utilizatori i metodele de operare sau navigare difer de la un grup la altul, se pot proiecta diferite interfee cu utilizatorul. Nivelul logic are rolul de a realiza transformarea schemei conceptuale ntr-o schem logic. n acest scop se alege un model logic de organizare a datelor (ex: modelul relaional, ierarhic, reea) care are anumite structuri de date i operaii. De exemplu pentru modelul relaional datele se stocheaz n tabele, constrngerile se exprim cu ajutorul cheilor primare i strine. Nivelul fizic (intern) este nivelul la care schema logic se realizeaz fizic, cu ajutorul unui sistem de gestiune a bazelor de date (SGBD). Se poate spune c se obine schema intern din schema logic prin intermediul unui SGBD. Structurile de date i metodele de acces pentru aceeai schem logic pot fi diferite n cadrul aceluiai SGBD, ceea ce nseamn c poate fi implementat prin mai multe scheme interne.

4

Bazele de date ofer utilizatorilor o serie de avantaje, cum ar fi: reducerea redundanei datelor prin proiectarea unitar a bazei i evitarea suprapunerii unor informaii; pstrarea consistenei datelor prin propagarea actualizrilor dintr-un fiier la nivelul ntregii baze de date; partajarea datelor ntre utilizatorii aceleiai aplicaii, dar i ntre aplicaii diferite; securitatea datelor prin verificarea accesului utilizatorilor pe baz de parol i prin autorizarea operaiilor de ntreinere de ctre administratorul bazei de date. Din definiie rezult c bazele de date implic constituirea de colecii de date structurate, dar i existena unui software de ntreinere i de exploatare a acestor structuri. n ceea ce privete organizarea, bazele de date au evoluat de la simple structuri de date numerice i de tip text la stocarea de imagini, sunete i alte elemente multimedia. Programele de ntreinere i de exploatare a bazelor de date au fost cuprinse ntr-un ansamblu numit Sistem de Gestiune a Bazelor de Date SGBD (Database Management System). Definiie: Sistemul de Gestiune a Bazelor de Date este un software care gestioneaz o baz de date i permite utilizatorului s interacioneze cu aceasta. Funciile unui SGBD sunt urmtoarele: definirea structurii bazei de date i stocarea datelor; accesarea datelor n regim mono sau multi-user: interogare, modificare, tergere, adugare; ntreinerea bazei de date: pstrarea consistenei i a integritii datelor, compactarea i reorganizarea bazei de date; securitatea bazei de date: salvarea i recuperarea datelor n caz de incident, protecia la acces neautorizat. Modul conceptual de organizare a datelor folosit de SGBD-uri este descris de modelul de date, care poate fi: ierarhic, reea, relaional i orientat obiect. Modelul ierarhic stocheaz datele n structuri de tip arbore, care stabilesc legturi de tip printe-copil. Nivelul de nceput al arborelui, numit rdcin, poate avea orice numr de descendeni. La rndul lor, acetia pot avea descendeni i aa mai departe. Modelul ierarhic a fost utilizat de ctre primele SGBD-uri, dar n prezent este considerat un model depit. Modelul reea este extensie a modelului ierarhic, n care un descendent poate avea mai muli prini. El poate reprezenta structuri complexe de date, dar nu are flexibilitate i este dificil de proiectat. Modelul relaional se bazeaz pe organizarea datelor sub form de tabele, constituite din nregistrri, formate la rndul lor din cmpuri. Tabelele sunt legate ntre ele prin cmpuri speciale, numite chei. Bazele de date relaionale sunt cel mai frecvent folosite, datorit modului simplu de realizare i a flexibilitii lor. Exemple de SGBDR: Oracle, Sybase, SQL Server, Access.5

Modelul orientat pe obiecte este cel mai nou tip de SGBD, care integreaz principiile programrii orientate pe obiecte i ale bazelor de date. Introducerea conceptului de obiect n cadrul SGBD-urilor a permis utilizarea tipurilor de date neconvenionale. Acest model constituie suportul logic pentru gestiunea obiectelor complexe (texte, grafice, imagini, sunete) i a obiectelor dinamice (programe, simulri). 1.2 Securitatea datelor La proiectarea unei baze de date, asigurarea securitii este o cerin important i este dependent de nivelurile de securitate ale SGBD-ului n care se lucreaz: 1. protecia prin identificator i parol pentru autentificarea utilizatorilor; 2. restricionarea drepturilor anumitor grupuri de utilizatori i acordarea de privilegii altora; 3. n Oracle orice obiect al bazei de date este proprietatea unui utilizator i poate fi accesat numai de acei useri care au privilegiile corespunztoare. O surs posibil de erori n funcionarea bazelor de date o constituie managementul defectuos n gestionarea multiuser. Concurena se definete n acest caz prin accesul simultan al mai multor utilizatori la acelai set de date, n aceeai perioad de timp. SGBD-ul are sarcina de a face vizibile modificrile operate de unul dintre utilizatori celorlali (consistena) i de a mpiedica modificrile incorecte ale datelor (integritatea bazei de date). Pentru rezolvarea accesului concurent, SGBD-ul blocheaz unitatea de date (locking). Se poate face blocajul la nivel de tabel sau la nivel de rnd (nregistrare), eficiena fiind mai bun cu ct unitatea de blocare este mai mic. 1.3 Modelul relaional al bazelor de date Se caracterizeaz prin reprezentarea datelor sub form de structuri bidimensionale, asemntoare tabelelor. Avantajele pe care le prezint acest model sunt: asigur metode i tehnici eficiente de verificare a coerenei i redundanei datelor; dispune de un suport teoretic puternic din punct de vedere matematic; asigur un grad nalt de independen n raport cu sistemele de calcul; ofer posibilitatea utilizrii de limbaje procedurale bazate pe algebra relaional; definete modul de manipulare a datelor la nivel de relaie (limbajul SQL). Componentele de baz ale modelului relaional sunt: 1. Structura relaional a datelor: datele sunt organizate sub form de tablouri bidimensionale (tabele), denumite entiti sau relaii. Liniile tabelelor se6

numesc nregistrri, iar coloanele constituie atributele. Asocierile dintre tabele se fac prin atributele de legtur, denumite chei primare i externe. Numrul de atribute ale unei entiti se numete aritatea entitii. O entitate trebuie s satisfac mai multe condiii: fiecare atribut trebuie s aib un nume, unic n cadrul entitii; este posibil ca dou atribute din dou entiti diferite s poarte acelai nume; fiecare atribut poate avea doar valori atomice, care nu se pot descompune din punct de vedere logic; fiecare nregistrare a entitii este unic, unicitatea fiind obinut cu ajutorul cheilor primare. Cnd este necesar mai mult dect un atribut pentru identificarea unic a unei nregistrri, avem o cheie compus. Nici unul dintre atributele care alctuiesc cheia primar nu poate avea valoarea Null. Null este o valoare convenional care indic o valoare necunoscut sau neaplicabil.2. Operatorii sistemului relaional: se refer la setul de operaii care se pot

efectua asupra entitilor. n algebra relaional introdus de Codd exist 8 operatori care acioneaz asupra entitilor i creaz tot o entitate. Aceti operatori sunt implementai n cadrul limbajului SQL (Structured Query Language), cel mai frecvent folosit pentru interogarea bazelor de date relaionale. Sunt operatori ai algebrei relaionale clasice (de exemplu: Union reuniunea, Intersect intersecia) i operatori relaionali speciali (de exemplu: Select selecia, Join compunerea).

3. restriciile de integritate: reprezint cerinele impuse tabelelor, astfel nct

baza de date s fie corect i coerent. Restriciile (constrngerile) de integritate sunt de dou tipuri: Constrngeri structurale: exprim proprieti fundamentale, care in de definirea BD. Ele sunt realizate cu ajutorul cheii primare. Cheia primar (Primary key-PK) este un atribut sau un grup de atribute care asigur diferena ntre oricare dou nregistrri dintr-un tabel. Nici unul dintre atributele care alctuiesc cheia primar nu poate avea valoarea Null pentru nici una dintre nregistrrile tabelei. Constrngeri de referenialitate: se stabilesc ntre dou tabele cu ajutorul cheilor primare i strine. Se definete cheie strin (Foreign Key-FK) un atribut sau o mulime de atribute ale unei entiti E2, care exist i ntr-o alt entitate E1 i care formeaz cheia primar a entitii E1.

7

E1 Cmp1 E1 - PK Cmp2 E1 .........

E2 Cmp1 E2 PK Cmp2 E2 - FK ..........

Cmpul2 din entitatea E2 este cheie strin (FK), dac exist i ntr-o alt entitate E1, unde formeaz cheia primar. Cmpul2 din E2 face referin la cheia primar din E1. Valorile pe care le ia cheia strin, dac nu sunt Null, trebuie s se regseasc printre valorile cheii primare la care face referin. Exemple de sisteme de gestiune a bazelor de date relaionale (SGBDR) consacrate sunt: Oracle, SQL Server, Sybase, Microsoft Access, FoxPro, Paradox. Proiectarea unei baze de date nseamn transformarea cerinelor utilizatorului ntr-o structur care conine tabele, interogri, rapoarte, module de program. Pentru o proiectare eficient, datele sunt separate n tabele n scopul minimizrii spaiului de stocare i al mbuntirii performanelor. Conectarea informaiilor disparate se face ulterior prin intermediul relaiilor dintre tabele. Etapele de proiectare a bazelor de date sunt: 1. Crearea schemei conceptuale se descriu datele i relaiile independent de orice model de date. Schema are un caracter general i este o traducere a cerinelor beneficiarului ntr-un sistem de ansamblu. 2. Crearea schemei logice a bazei de date se transform schema conceptual n structuri specifice unui SGBD. Se definesc elementele de date specifice i se face gruparea lor n nregistrri. n cazul modelului relaional, schema logic va conine dicionarul de date, structurile tabelelor, definirea legturilor i precizarea modurilor de manipulare a datelor necesare sistemului. 3. Crearea design-ului fizic al bazei de date schema logic se transform ntr-o baz de date coerent i se construiesc modulele de program pentru exploatarea ei. Dei s-au nregistrat salturi spectaculoase n acest domeniu i au aprut nenumrate metode i tehnici, rmnem la concluzia c proiectarea unei baze de date nu nseamn ncadrarea ntr-un tipar (ablon) i c performanele ei depind ntr-o mare msur de inteligena i imaginaia proiectantului.

8

Cap. 2 Sistemul de gestiune a bazelor de date Microsoft Access 2.1 Componentele principale Access este o component a pachetului de programe Microsoft Office, care permite crearea i gestionarea de baze de date de dimensiuni reduse, la care se pot conecta maximum 31 de utilizatori simultan. Pentru baze de date mari (de ordinul Gigabytes-ilor) se recomand folosirea SGBD-urilor Oracle, SQL Server, Sybase. Spre deosebire de alte sisteme, Access stocheaz toate componentele unei baze de date ntr-un singur fiier, cu extensia *.mdb. Componentele principale ale sistemului Access, numite i obiecte (Objects) sunt urmtoarele (fig. 1): Tabele (Tables) structuri bidimensionale destinate pstrrii datelor; Interogri (Queries) instrumente de selectare i de afiare a a datelor din una sau mai multe tabele, pe baz de criterii; cu ajutorul acestora se pot realiza i funcii de creare tabele, adugare, modificare i tergere nregistrri n tabele; Formulare (Forms) ferestre destinate introducerii datelor, afirii i modificrii lor; permit crearea interfeei grafice cu utilizatorul i afiarea pe ecran a graficelor; Rapoarte (Reports) situaii obinute pe baz de interogri sau tabele i care pot fi afiate pe ecran sau la imprimant; Macro-comenzi (Macros) secvene de aciuni care se execut la iniierea unei singure comenzi a utilizatorului; Module (Modules) subprograme scrise n Visual Basic Access (VBA), care pot implementa rspunsuri la evenimente-utilizator, funcii de prelucrare i validare a datelor, iniializri ale bazei de date. O caracteristic important a sistemului Access o constituie proiectarea asistat de vrjitori (Wizards), care ofer asisten programatorului la crearea tabelelor, a interogrilor, a formularelor i a rapoartelor. Aceste instrumente au rolul de a pune la dispoziia proiectanilor opiuni din care pot selecta varianta optim, de asemenea asigur asisten on-line (help) pentru documentarea n timpul proiectrii. Prin stabilirea de relaii ntre tabele se asigur coerena i consistena bazei de date, astfel nct tergerile, adugrile, modificrile la nivelul unei tabele s nu conduc la disfuncionaliti ale sistemului. Totui tergerile de date, crearea i distrugerea de tabele sunt operaii care provoac fragmentarea spaiului de disc rezervat fiierului .mdb. Acces-ul are integrat comanda

9

Tools->Database Utilities->Compact and Repair Database pentru compactarea periodic a bazei de date i pstrarea performanelor ei.

Tabele InterogriFormulare

Rapoarte Macro comenzi Module

Fig. 1 Componente principale ale sistemului Access Crearea unei baze de date se poate face la deschiderea mediului, dac se alege opiunea Blank Access Database, fie ulterior, cnd mediul este deschis i se activeaz opiunea File->New Database. Dup deschiderea unei bazei de date sunt accesibile componentele ei, grupate pe tipuri de obiecte (Tables, Queries, Forms etc), aa cum se observ n fig.1; aezarea obiectelor pe desktop este caracteristic versiunii Access 2000. Vor fi prezentate n continuare modaliti de creare i exemple de utilizare a obiectelor Access menionate anterior. 2.2 Tabele (Tables) Sunt structuri de stocare a datelor constituite din linii, numite nregistrri i din coloane numite atribute sau cmpuri, crora li se atribuie un nume, un tip de dat i o dimensiune. Crearea i modificarea structurii tabelelor, ca i ncrcarea datelor n tabele se face numai n cadrul opiunii Objects->Tables.10

Access ofer mai multe modaliti de creare a unui tabel: Datasheet View, Design View, Table Wizard, Import Table, Link Table (fig. 2)

Fig. 2 Modaliti de creare a tabelelor n modul Datasheet View se creaz un tabel cu 20 de cmpuri, avnd denumirea Field1,..Field 20 i 30 de nregistrri libere, pregtite pentru completare. n modul Table Wizard, Acces propune dou categorii de tabele: Business i Personal i n cadrul lor mai multe tipuri de tabele, cu cmpuri predefinite, din care proiectantul s poat alege. Prin Import Table se pot prelua tabele din alte baze de date Access, FoxPro, Paradox sau se pot construi tabele i prelua date din fiiere text, HTML sau Excel. n modul Link Table nu mai este necesar copierea tabelei n propria baz de date, ci se stabilete o legtur cu aceasta, astfel nct se pot citi i modifica datele (dac exist un acces autorizat). Modalitatea cea mai frecvent folosit pentru crearea tabelelor este Design View (fig. 3) i ea va fi descris n continuare pas cu pas: 1. Tables->New->Design View; 2. Apar dou fereastre pe Desktop: fereastra de proiectare a tabelei (Table Design), unde se stabilesc cmpurile prin numele (Field Name) i tipul lor (Data Type) i fereastra de proprieti ale cmpurilor (Field Properties); 3. Se tasteaz numele cmpului i se alege unul dintre tipurile de date propuse de Access: Text ir de caractere; Number cmp de tip numeric;

11

Date/Time cmp de tip dat sau timp; Autoincrement numr cu incrementare automat; Yes/No cmp boolean cu dou valori; Lookup Wizard cmp care preia datele din alt tabel sau dintr-o list de valori. 4. n funcie de tipul de dat selectat, fereastra Field Properties va conine alte informaii n rubrica Field Size, pe care utilizatorul le poate modifica: Text: setat pe valoarea implicit 50, dar se pot reprezenta iruri de maximum 255 de caractere; Number: se pot defini cmpuri de tip Byte (28 val maxim 255), Integer (216 valoare maxim + 32768), Long Integer este tipul implicit i are valoari pe 32 bii (de la 2.147.483.648 la 2.147.483.647 fr fracii), Single numere fracionare pe 32 bii cu precizie de 7 cifre ( de la 3.402823E38 la 1.401298E45) pentru valori negative i de la 1.401298E45 la 3.402823E38 pentru valori pozitive. Butonul SaveButonul care activeaz cheia primar

Cmpuri de date PK

Tipuri de date

Fereastra Field Properties

12

Fig. 3 Crearea tabelelor n modul Design View

Valorile numerice Double numere fracionare pe 8 bytes cu 15 cifre precizie. 5. Se pot completa i alte rubrici ale ferestrei Field Properties, cum ar fi: Format: personalizeaz formatul de apariie (modul de afiare) a valorilor n cmpul respectiv i depinde de tipul de dat precizat n Data Type: - Date/Time - permite alegerea unui format al datei sau orei dintre cele propuse: General Date, Long Date, Short Date Long Time, Short Time - Text poate conine unul dintre caracterele speciale: @ - un caracter sau un spaiu trebuie tastat n cmpul respectiv; & - nu este necesar tastarea unui caracter n cmpul respectiv; < - foreaz toate caracterele tastate la litere mici; >- foreaz toate caracterele tastate la litere mari - Number specific formate predefinite (Currency, Euro, Fixed, Standard, Percent, Scientific) sau proprii utilizatorului (informaii despre modul de afiare a valorilor pozitive, negative, zero i a numerelor fr valoare - Null); Input Mask: proprietate care ajut utilizatorul la introducerea datelor n cmpul respectiv: - 0 impune introducerea pe poziia respectiv a unei cifre, fr semn; - 9 impune acceptarea unei cifre sau unui spaiu, fr semn; - # indic acceptarea unei cifre sau unui spaiu, cu semn; - L solicit introducerea unei litere, obligatoriu; - ? indic introducerea unei litere, opional; - A impune introducerea unei litere sau unei cifre, obligatoriu; - a impune introducerea unei litere sau cifre, opional. Caption: stabilete titlul cmpului n modul de introducere date; Default Value: reprezint valoarea iniial (constant, expresie sau funcie) care apare n cmp la adugarea unei noi nregistrri i care poate fi modificat ulterior; Validation Rule: se stabilete o regul de validare, la nivel de nregistrare, a valorii introduse n acest cmp, prin funcii sau expresii Access; Validation Text: se tasteaz un mesaj, care apare ca eroare n timpul introducerii datelor, dac regula de validare nu este respectat; Indexed: se precizeaz dac un cmp, altul dect cheia primar, este index n tabel i dac se accept duplicarea valorilor lui; opiunile posibile: No, Yes (Duplicate OK) i Yes (No Duplicate); 6. Se stabilete cheia primar format din unul sau mai multe cmpuri; 7. Se salveaz structura tabelei cu opiunea File->Save sau cu ajutorul butonului Save i se precizeaz numele tabelei.

13

Exemplu de folosire a proprietilor unui cmp: Cmpul Categ din tabela de mai jos este de tip Text, are lungimea maxim de 9 caractere i are setate urmtoarele proprieti: Format: > nsemnnd c toate caracterele care ce se tasteaz sunt transformate n litere mari; Input Mask: LLL pe primele trei poziii se plaseaz obligatoriu litere ??? - pe urmtoarele trei poziii se plaseaz opional litere aaa - pe urmtoarele trei poziii se plaseaz opional litere sau spaii Validation Rule: primele litere s nu fie ABC Validation Text: dac s-a tastat combinaia de litere ABC apare mesajul de eroare Ati tastat propria firma! Indexed: No, deci cmpul nu constituie index suplimentar.

Fig. 4 Exemplu de utilizare a proprietilor unui cmp

14

2.3 Relaii ntre tabele (Relationships) Relaiile se formeaz prin stabilirea unei legturi ntre un cmp (o combinaie de cmpuri) dintr-un tabel i cmpurile corespunztoare din alt tabel. Legturile ntre tabele sunt de trei tipuri: 1. relaia unu la mai muli (one-to-many) este cea mai frecvent utilizat i se realizeaz ntre cheia primar a tabelei T1 i un cmp similar, ca tip i ca dimensiune din T2, numit i cheie strin. Semnificaia legturii este c oricrei valori a cmpului cheie strina-C21 trebuie s-i corespund o valoare a cmpului cheie cheie-C1. n timp ce n tabela T1 valoarea este unic, n tabela T2 ea se poate repeta de un numr infinit de ori. Tabela T1 C1 Primary Key ................ ................1

Tabela T2 C2 Primary Key C21 Foreign Key ..........

2. relaia mai muli la mai muli (many-to-many) se aplic la cazurile n care

valorii unui cmp din prima tabel i corespund mai multe valori n a doua tabel i invers, unei valori a unui cmp din a doua tabel i corespund mai multe valori din prima tabel. Exemplul clasic al relaiei este ntre tabela Studeni i Cursuri: un student este nscris la mai multe cursuri, un curs este inut pentru mai muli studeni. Rezolvarea problemei se face prin spargerea relaiei many-to-many n dou relaii one-to-many, cu ajutorul unei tabele de jonciune (legtur) T3. Cheile primare din T1 i T2 vor constitui (vor face parte) cheia primar compus a tabelei T3. Tabela T1 C1 Primary Key ................ Tabela T2 C2 Primary Key

1

1

Tabela T3 C31 Primary Key C32 Primary Key

15

3. Relaia unu-la-unu (one-to-one)- are loc ntre dou tabele care au aceeai

cheie primar. Se definete prin intermediul ei o tabel compus din cele dou tabele iniiale. Relaia este util n cazul structurilor mari, care au nevoie de mai mult de 255 de cmpuri (limita Access-ului pentru un singur tabel) sau pentru creterea vitezei de cutare a datelor, dac nu toate nregistrrile din primul tabel au corespondent n al doilea tabel.

Crearea unei relaii se face astfel (fig.5): a) Din meniul Tools->opiunea Relationships sau activnd butonul Relationships se deschide fereastra Relationships; b) Se adaug tabelele relaionate din fereastra Show Tables; c) Se selecteaz cmpul PK din tabela principal i se trage cu ajutorul mouse-ului pn la cmpul corespunztor din tabela asociat; d) Se deschide fereastra de stabilire a detaliilor relaiei (Edit Relationships): cmpurile corespunztoare din tabele, butonul Join Type - tipul de legtur stabilit i trei casete de validare: Enforce Referential Integrity impune integritatea referenial Cascade Update Related Fields actualizarea n cascad a cmpurilor implicate n relaie; Cascade Delete Related Records tergerea n cascad a cmpurilor implicate n relaie; e) Se nchide fereastra Relationships i se salveaz legturile create.

Fig. 5 Stabilirea relaiilor ntre tabele16

Verificarea integritii refereniale este realizat de sistemul Access la solicitarea proiectantului BD i const n: Verificarea cmpurilor incluse n relaie: s fie de acelai tip i s aib aceeai dimensiune; Introducerea unei valori n cmpul cheie strin din tabela secundar se face numai dac aceast valoare se regsete n cmpul cheie primar din tabela principal; Nu se admit tergeri sau actualizri ale unei valori a cheii primare atta timp ct exist nregistrri corespunztoare n tabela secundar; Pentru realizarea tergerilor i actualizrilor n cascad s-au prevzut cele dou casete de validare Cascade Update i Cascade Delete. tergerea n cascad nseamn c o solicitare de tergere a unei nregistrri din tabela primar va determina tergerea nregistrrilor corespunztoare din tabelul asociat. Similar se produce i actualizarea n cascad: modificarea valorii cmpului cheie primar din tabela principal determin modificarea tuturor nregistrrilor corespunztoare din tabela asociat. Relaiile dintre tabele confer consistena i coerena bazei de date, de aceea n cadrul proiectrii bazei de date stabilirea corect a legturilor dintre tabele este foarte important. Asocieri n cursul definirii unei relaii Access pune la dispoziie un buton pentru definirea tipului de asociere prestabilit. Asocierea definete modul n care nregistrrile din tabelele corelate vor fi combinate ntr-o interogare: Asocieri interne (inner join) tipul de asociere implicit; o interogare cu asociere intern va afia numai acele nregistrri care corespund ambelor tabele. Asocieri externe (outer join) precizeaz c o interogare va selecta toate nregistrrile dintr-o tabel i numai pe cele care corespund din cellalt tabel. Sunt de 2 tipuri, n funcie de tabela din care se preiau toate nregistrrile: o Asociere stnga (left join) o Asociere dreapta (right join). Asocierile externe nu se folosesc prea des deoarece sunt mai puin flexibile, mai ales cnd sunt implicate mai multe tabele. Asociere intrinsec (self join) este o relaie care asociaz unui cmp dintr-un tabel un cmp din acelai tabel. Se creaz prin duplicarea tabelei i stabilirea

17

legturii ntre cmpuri. Este o asociere foarte performant deoarece permite cutri recursive. De exemplu: o tabel care conine date despre prini i copii. 2.4 Interogri (Queries) Interogrile sunt componente Access de extragere i de afiare a a datelor din una sau mai multe tabele/interogri, pe baz de criterii. Un alt scop pentru care se folosesc interogrile l constituie modificarea structurii i coninutului bazei de date (funcii de creare tabele, adugare, modificare i tergere nregistrri n tabele). Prima categorie formeaz interogrile de selecie, cea de-a doua formeaz interogrile de aciune. O interogare se transform ntr-o instruciune a limbajului SQL (Structured Query Language), recunoscut de toate bazele de date relaionale. n acest paragraf ne vom referi numai la interogrile de selecie, care la rndul lor pot fi: interogri simple, interogri total i interogri tabel ncruciat. Funciile unei interogri de selecie: Preluarea cmpurilor din mai multe tabele relaionate; Selectarea nregistrrilor care ndeplinesc anumite criterii; Sortarea nregistrrilor dup unul sau mai multe cmpuri, ascendent sau descendent; Introducerea de cmpuri noi, de tip valoare, rezultate ca urmare a unor calcule. Sunt mai multe modaliti de a construi o interogare (fig. 6), dintre acestea vom alege modul Design View.

18

Fig. 6 Modaliti de construire a interogrilor Etapele de realizare a unei interogri sunt urmtoarele (fig. 7): 1. Objects Queries->New->Design View; 2. Se deschide fereastra Query Design i fereastra Show Tables/Queries; 3. Se adaug cmpurile din tabele n grila de ieire (prin tragere cu mouse-ul, dublu click pe cmp, selectare n rubrica Field); 4. Se definesc cmpurile i ordinea de sortare (rndul Sort - Ascending sau Descending); 5. Se indic afiarea sau nu a fiecrui cmp (rndul Show- caseta de validare); 6. Se stabilesc criteriile de selecie (rndul Criteria); 7. Se adaug cmpurile noi, calculate; 8. Se execut interogarea activnd butonul Run sau opiunea Query->Run. 9. Se salveaz interogarea, activnd butonul Save sau opiunea File->Save, dac se consider c rspunde cerinelor de proiectare.Tipuri de interogri Buton de execuie

19

Fereastra Query Design Ordinea de sortare

Stabilirea criteriilor

Cmp calculat

Fig. 7 Construirea interogrii de selecie Pentru definirea criteriilor de selecie multiple exist dou variante: introducerea lor n cmpurile respective pe aceeai linie (Criteria), ceea ce implic selectarea nregistrrilor care ndeplinesc toate criteriile menionate; introducerea lor n cmpurile respective pe linii diferite (linia Criteria i liniile or), ceea ce implic selectarea nregistrrilor care ndeplinesc unul dintre criteriile menionate. Condiiile de selecie sunt specificate cu ajutorul unor operatori de comparare, cum ar fi: , =, , Like (comparare cu un nume generic scris cu caractere de inlocuire), Between (valoare incadrata intr-un interval dat). Cteva exemple de criterii de selecie: 1. < Date()-30 n cmpul respectiv data s fie cu 30 zile n urm 2. Like Pop* se accept numele care ncep cu Pop: Popa, Popescu 3. Between 1 and 100 numere cuprinse ntre 1 i 100 n criteriile de selecie se folosesc constante sau parametri, a cror valoare se precizeaz de ctre utilizator n timpul execuiei. De exemplu, se poate nlocui criteriul din imagine prin secvena: Between [param1] and [param2]

20

n cadrul interogrilor exist posibilitatea adugrii de cmpuri calculate, aa cum este cmpul total de plata din fig.7. Pentru aceasta, ntr-o coloan liber se tasteaz numele cmpului (diferit de cele existente n tabele), urmat de semnul : i formula de calcul prin care se obine. n imaginea de mai sus, cmpul calculat este rezultatul adunrii cmpurilor [rata] i [dob]. Pentru obinerea de cmpuri calculate de tip numeric se pot folosi operatori aritmetici, iar pentru cmpurile de tip text se pot folosi operatori de lucru cu iruri de caractere. De exemplu, cu ajutorul operatorului de concatenare (&) se compun cmpurile Nume i Prenume pentru a rezulta un nou cmp, Student: Student: [Nume]& &[Prenume] Interogri de tip total (Totals) realizeaz gruparea nregistrrilor, dup anumite cmpuri i aplic funcii de nsumare, contorizare, medie aritmetic etc asupra valorilor unui cmp din gruparea respectiv. Pentru a crea o interogare de acest tip se procedeaz astfel (fig. 8): 1. Se realizeaz o interogare de selecie simpl n care sunt specificate cmpurile pe care se face gruparea i cmpurile asupra crora se aplic funciile; 2. Se activeaz butonul Totals ceea ce determin apariia n grila Query a rndului Total; 3. n coloana cmpului totalizat se alege funcia agregat care se va aplica: Count numrarea nregistrrilor din grupare Sum - calcularea totalului valorilor din grupare Avg - calcularea mediei aritmetice a valorilor din grupare StDev - calcularea deviaiei standard a valorilor din grupare Min sau Max identificarea valorii minime sau maxime First sai Last selectarea primei sau ultimei valori din grupare, conform ordinii de sortare Expression crearea unei expresii calculate n cmpul respectiv; Where indic utilizarea cmpului numai pentru criterii de selecie (nu este afiat la execuia interogrii) Observaie: n cazul opiunii Count i Avg nregistrrile care conin valoarea Null nu sunt luate n consideraie. n exemplul din fig. 8 se face totalul valorilor ratei (cmpul rata) i dobnzii (cmpul dob) pentru fiecare numr de contract (cmpul nrc). Se observ c nu a mai fost selectat cmpul luna, deoarece el ar fi schimbat coninutul interogrii, n sensul c s-ar fi fcut un total pe contract i pe lun al ratelor i dobnzilor. La execuia interogrii, cmpul rata ar avea titlul SumOfrata, iar cmpul dob ar avea titlul SumOfdob. Pentru a schimba aceste titlurile implicite, am adugat n linia Field, n faa denumirii cmpurilor, noua lor denumire, Total rate i Total dobanzi, urmat de semnul :. Facem precizarea c este logic ca un cmp s apar de dou ori n interogarea de tip Total dac el constituie, n acelai timp i criteriu de grupare i cmp cruia i se aplic o funcie agregat.21

Butonul Totals

Modificarea titlului cmpului, la execuie

Rndul Total

Fig. 8 Construirea interogrii de tip Total

Funciile agregat

Interogri de tip tabel ncruciat (Crosstab) reprezint o variant a interogrilor de tip Totals n care valorile unuia dintre cmpurile Group By se transform n titluri ale coloanelor, n timpul execuiei interogrilor. Ele grupeaz datele n dou moduri i afieaz o valoare n punctul de intersecie. Sunt definite trei tipuri de cmpuri: Unul sau mai multe cmpuri care s furnizeze titlurile de rnd (Row Heading) la afiarea datelor; Un singur cmp, obligatoriu, care s furnizeze titlurile de coloan (Column Heading) la execuia interogrii; cmpul respectiv trebuie s conin un numr limitat de valori, pentru ca interogarea s aib sens; Un singur cmp, obligatoriu, care s furnizeze valorile de afiat (Value) la intersecia dintre linia i coloana respectiv; valorile sunt obinute prin aplicarea unei funcii agregat (Sum, Count, Avg) cmpului respectiv.

22

Access ofer posibilitatea creerii interogrilor de tip tabel ncruciat printr-un program Wizard, Crosstab Query Wizard sau n modul Design View, opiunea Query - Crosstab. Vom aborda n lucrare cea de a doua modalitate de lucru. Pentru a crea o interogare de tip Crosstab n modul Design View se procedeaz astfel (fig. 9): 1. Se realizeaz o interogare de selecie simpl n care sunt specificate cmpurile pe care se face gruparea i cmpurile asupra crora se aplic funciile; 2. Opional, se activeaz butonul Totals pentru a selecta cmpul i funcia agregat corespunztoare; 3. Se activeaz interogarea de tip tabel ncruciat fie din butonul Query Type, fie din meniul Query, opiunea Crosstab Query; apare linia Crosstab n grila interogrii; 4. Se stabilesc cmpurile Row Heading (pot fi mai multe), Column Heading (obligatoriu unul) i Value (obligatoriu unul i anume cel cruia i s-a ataat funcia agregat); 5. Se execut interogarea (butonul Run) i se salveaz (butonul Save). La sfritul capitolului va fi prezentat un exemplu de baz de date, care va conine i interogri de selecie simple, de tip Total i Crosstab.Butonul Query Type

Rndul Crosstab Selectare opiuni Crosstab

23

Fig. 9 Construirea interogrii de tip Crosstab Interogri de aciune - au ca efect modificarea structurii sau a datelor din baza de date. Sunt 4 tipuri de interogri de aciune: 1. Make Table creaz o tabel nou pornind de la alte tabele existente; 2. Append adaug nregistrri, obinute prin preluarea valorilor din alte tabele, ntr-o tabel existent; 3. Update actualizeaz (modific) valoarea din cmpurile specificate; 4. Delete terge nregistrri selectate dintr-o tabel. Execuia interogrilor de aciune este precedat de un mesaj de avertisment, dac opiunea SetWarnings nu a fost dezactivat: Are you sure you want to run this action query? Este indicat s se vizualizeze nregistrrile selectate de interogarea de aciune, prin deschiderea interogrii n modul Design, trecerea n modul de afiare Datasheet i execuia cu Run. Access nu permite anularea efectului interogrilor de aciune. Modificrile aduse bazei de date sunt permanente i ireversibile. De aceea este bine s existe o copie de siguran a bazei de date care s permit revenirea la starea anterioar. 1. Make Table extrage datele din mai multe tabele relaionate i creaz o tabel nou n baza de date curent sau ntr-o alt baz de date. De cte ori se execut, se terge tabela anterioar i se rescrie. Se creaz astfel: se construiete o interogare de selecie n care se adaug cmpurile din tabelele surs; din meniul Query sau activnd butonul Query Type se alege opiunea Make Table; apare o caset de dialog n care se precizeaz numele noii tabele create. Se utilizeaz n special pentru crearea tabelelor temporare, care se terg frecvent. Crearea i eliminarea frecvent a tabelelor temporare conduce la mrirea dimensiunii spaiului alocat bazei de date. De aceea se recomand compactarea periodic a bazei de date sau crearea tabelelor temporare ntr-o alt baz de date. 2. Append adaug nregistrri din mai multe tabele relaionate ntr-o tabel existent. Etapele de creare sunt: se construiete o interogare de selecie n care se adaug cmpurile din tabelele surs; din meniul Query sau activnd butonul Query Type se alege opiunea Append; n caseta de dialog se precizeaz numele tabelei destinaie;

24

apare linia Append To unde se completeaz automat cmpurile destinaie care au numele identic cu al cmpurilor surs sau se completeaz de ctre proiectant, dac numele nu coincid. Se recomand precizarea unor chei primare n tabela destinaie, care s nu permit dublarea nregistrrilor. O utilizare frecvent a interogrilor de tip Append este la arhivarea datelor. 3. Update selecteaz anumite nregistrri dintr-o tabel pe baz de criterii i actualizeaz valoarea unui cmp. Se creaz ca orice interogare de selecie, devenind efectiv o interogare de tip Update la activarea opiunii Update din meniul Query: se construiete o interogare de selecie n care se adaug cmpul de actualizat i cmpul care furnizeaz criteriul de selecie; din meniul Query sau activnd butonul Query Type se alege opiunea Update; apare linia Update To unde se completeaz noile valori. Dac se face actualizarea unui cmp care este cheie primar ntr-o tabel i relaia ntre tabele prevede actualizri n cascad (Cascading Updates) se preiau aceste modificri i n tabelele unde cmpul respectiv este cheie strin. Pentru a avea sigurana c sunt selectate corect nregistrrile se execut interogarea iniial n modul Datasheet View. 3. Delete permite tergerea dintr-o tabel a nregistrrilor care ndeplinesc o anumit condiie. Crearea unei interogri Delete: se pleac de la o interogare de selecie n care se adaug tabela i se selecteaz cmpurile care furnizeaz criteriile de selecie ale nregistrrilor; din meniul Query sau activnd butonul Query Type se alege opiunea Delete; apare linia Where unde se completeaz criteriile. Pentru selectaia corect a nregistrrilor care se vor terge se execut interogarea iniial n modul Datasheet View. Dac tabela n care se terg nregistrri este implicat n relaii de tip one-to-many cu alte tabele i a fost prevzut opiunea de tergere n cascad (Cascading Deletes) atunci se vor terge i nregistrrile din tabelele relaionate.

2.5 Formulare (Forms) Formularele sunt ferestre destinate introducerii datelor, afirii i modificrii lor. De asemenea, ele permit crearea interfeei grafice cu utilizatorul i a graficelor realizate pe baz de interogri sau tabele. Formularele permit introducerea datelor n mai multe tabele asociate, pot conine butoane de comand i cmpuri calculate, ceea ce nu este posibil la ncrcarea direct a datelor n tabele. Crearea i modificarea formularelor se face n cadrul25

opiunii Objects->Forms. Access ofer mai multe modaliti de a crea un formular: Design View, Form Wizard, Autoform, Chart Wizard (fig.10 n modul Design View se proiecteaz formularul element cu element, folosind instrumentele Access din ToolBox. n modul Form Wizard se lucreaz sub asistena vrjitorului, care propune variante din care proiectantul s poat alege. Modalitile Autoform (Columnar Tabular, Datasheet) sunt tot de tip Wizard i ele realizeaz ntr-o manier foarte simpl o aezare special a cmpurilor n fereastr, pentru fiecare dintre cele trei tipuri. Prin Chart Wizard se pot construi grafice pe baza informaiile din interogri sau tabele de date i sub asistena vrjitorului. Graficele obinute pe formular nu se pot lista la imprimant. n modul Pivot Table Wizard se creaz formulare pentru afiarea datelor din Excel.

Fig. 10 Modaliti de creare a formularelor Modalitatea cea mai frecvent folosit pentru crearea formularelor este Form Wizard (fig. 11) i ea va fi descris n continuare pas cu pas: 1. Forms->New->Form Wizard; 2. Selectarea tabelei (sau a interogrii) pe baza creia care se construiete formularul;26

3. Selectarea cmpurilor cuprinse n formular; 4. Alegerea tipului de aezare (layout) a cmpurilor de date pe formular: Columnar, Tabular, Datasheet sau Justified; 5. Alegerea unui fundal pentru fereastra formularului: Blends, Standard, International, Stone etc 6. Stabilirea titlului i salvarea formularului. Pentru modificarea formularului astfel obinut n sensul adugarii/tergerii de cmpuri sau al adugrii de controale (butoane de comand, cutii de tip text, butoane de tip opiune, casete de validare etc) se deschide formularul n modul Design View (fig. 12) i se folosesc instrumentele din ToolBox.

Cmpurile selectate s apar pe formular

Alegerea tabelei sau interogrii

27

Fig. 11 Crearea formularelor cu Form Wizard

Cutia de instrumente (ToolBox)

Formular obinut cu Form Wizard

Fig. 12 Deschiderea formularelor n modul Design View Att formularul, ct i controalele plasate pe suprafaa lui au ataate o serie de proprieti, care se pot modifica. De asemenea, lor li se pot ataa proceduri scrise n Visual Basic, care s rspund la anumite evenimente declanate de utilizatori n timpul execuiei (activarea unui buton, apsarea unei taste, redimensionarea ferestrei, focalizarea). Dintre proprieti importante sunt i cele care permit sau inhib introducerea de noi nregistrri, editarea sau tergerea celor existente. Proprietile formularului se ajunge la fereastra Properties a oricrui obiect n mai multe moduri: din meniul View-opiunea Properties sau activnd butonul de pe bara de instrumente sau dublu-click pe obiect. Pentru formular cele mai importante proprieti sunt coninute n grupul Data: RecordSource: precizeaz numele tabelei sau al interogrii pe care este construit formularul; AllowEdits Yes, valoare implicit care permite editarea nregistrrilor; AllowDeletions Yes, valoare implicit care permite tergerea nregistrrilor; AllowAdditions Yes, adugarea de noi nregistrri; DataEntry dac este setat pe Yes formularul poate fi folosit numai pentru introducerea de noi nregistrri (nu are efect dac AllowAdditions este No); Proprietile din grupul Format controleaz aspectul formularului: Caption titlul formularului; ScrollBars bare de derulare pe vertical i/sau orizontal;

28

Picture, Picture Type, Picture Size Mode plasarea unei imagini pe fundal, includerea ei n aplicaie, adaptarea imaginii la dimensiunile formularului. Adugarea unui buton de comand se face cu ajutorul casetei de instrumente ToolBox. Se procedeaz astfel: 1. se deschide un formular existent sau un formular nou n Design View; 2. se selecteaz controlul CommandButton din ToolBox; 3. se deseneaz controlul pe formular i la sfritul acestei operaii un Wizard stabilete legtura cu un eveniment; 4. Categoriile de aciuni predefinite ale CommandButton Wizard sunt urmtoarele: Record Navigation deplasare i cutare nregistrri n cadrul tabelei curente (Go To First, Go To Next, Find Record); Record Operations adugri, tergeri, duplicare, listare articole; Form Operations operaii de lucru cu formulare (Open Form, Close Form, Print Form etc); Report Operations - operaii de lucru cu rapoartele (Preview Report, Print Report, Send Report To File etc); Application lansarea n execuie a altor aplicaii (Run Application, Run MS Word, Run MS Excel etc); Miscellaneous execuia de interogri sau macroinstruciuni (Run Query, Run Macro). 5. Se stabilete imaginea sau textul care se va plasa pe buton; 6. Se precizeaz numele controlului i se nchide aplicaia Wizard. Formularele se pot afia n 3 moduri: Design mod de proiectare, n care utilizatorul are acces la controale i la proprietile lor, putnd s le modifice; Datasheet mod de afiare a datelor asemntor cu afiarea direct a tabelului sau interogrii; Form mod de afiare specific pentru formulare, n care se ine cont de proprietile setate n modul de proiectare. Subformularele sunt formulare ataate altor formulare. Dou tabele relaionate pot fi afiate i modificate simultan folosind reprezentarea n cadrul unui formular Access a unui alt formular, numit i subformular. Dac ntre dou tabele exist o relaie de tip one-to-many, n formularul principal se afieaz o nregistrare din tabelul primar, iar n subformular se pot observa nregistrrile corespunztoare din tabelul asociat, avnd valoarea cheii strine egal cu valoarea cheii primare. Este o metod care simplific ncrcarea datelor n tabelele relaionate pentru c utilizatorul nu mai trebuie s rein valorile cheii primare la introducerea datelor n tabela secundar.29

Observaie 1: dac o tabel este implicat n mai multe relaii, se poate construi un formular cu mai multe subformulare Observaie 2: un subformular poate conine un alt subformular, dac relaia ntre tabele este de tip one-to-many-to-many. Access nu permite mai mult de trei niveluri de imbricare. Sunt mai multe metode de obinere a unui formular cu subformular: 1. Se lanseaz Form Wizard pe o interogare care implic ambele tabele, ceea ce ofera proiectantului facilitatea de a alege opiunea de creare formular cu subformular; 2. Se creaz formularul principal (cel mai simplu cu Form Wizard), se deschide n Design View i se folosete controlul Subform/Subreport din caseta de instrumente (ToolBox) pentru proiectarea subformularului; programul wizard declanat de acest control are posibilitatea de a crea subformularul pe baza tabelei secundare sau de a folosi un formular existent pe aceast tabel. 3. Se creaz un formular pe tabela principal i un formular pe tabela secundar; se deschide formularul principal n Design i se trage numele subformularului din fereastra Database.

2.6 Rapoarte (Reports) Rapoartele sunt situaii obinute pe baz de interogri i tabele, care pot fi afiate pe ecran sau la imprimant. Spre deosebire de formulare, rapoartele extrag datele din tabele, nu pot modifica coninutul lor. Ele parcurg secvenial nregistrrile, afieaz cmpurile selectate i eventual genereaz subtotaluri sau rezumate, dac s-au introdus opiuni de grupare pe cmpuri la crearea raportului. Datele pot fi grupate pe un numr de maxim zece niveluri diferite, fiecare dintre ele furniznd anumite informaii sintetice. Lucrul cu rapoarte este permis n cadrul opiunii Objects->Reports. Sunt mai multe tehnici de a construi un raport: Design View, Report Wizard, AutoReport, Chart Wizard, Label Wizard i exist multe similitudini ntre acestea i metodele de creare a formularelor, de aceea le vom prezenta pe scurt: Design View proiectarea raportului folosind instrumentele Access din ToolBox; Report Wizard proiectare asistat de vrjitor, care propune variante din care proiectantul s poat alege; AutoReport (Columnar, Tabular) - sunt metode de tip Wizard care realizeaz aezarea pe coloane sau sub form de tabel a datelor n situaie; Chart Wizard crearea de grafice pe baza de interogri sau tabele, cu asistena vrjitorului i care se pot lista la imprimant;

30

Label Wizard obinerea de etichete standard sau utilizator din informaiile

preluate din tabele sau interogri. Tehnica cea mai simpl i mai utilizat pentru crearea rapoartelor este Report Wizard i necesit parcurgerea etapelor urmtoare: 1. Reports->New->Report Wizard; 2. Selectarea interogrii pe baza creia care se construiete raportul; 3. Selectarea cmpurilor care se afieaz n raport; 4. Stabilirea nivelurilor de grupare (fig. 13) 5. Prin bifarea casetelor de validare corespunztoare cmpurilor numerice, se stabilete care este tipul de operaie aplicat gruprii (fig. 14), dintre cele valabile (Sum, Avg, Min, Max); 6. Alegerea tipului de aezare (layout) a cmpurilor de date pe raport: Stepped, Block, Outline etc i orientarea paginii: Portrait sau Landscape; 7. Alegerea unui stil al raportului: Bold, Casual, Compact, Soft Gray; 8. Specificarea titlului i salvarea raportuluilui.

Grupare pe cod furnizor

Grupare pe denumire produs

Fig. 13 Stabilirea nivelurilor de grupare

31

Fig. 14 Tipul de operaie aplicat cmpurilor numerice ale gruprii Pentru modificarea raportului astfel obinut n sensul adugarii/tergerii de cmpuri, de grupri i subtotaluri se deschide raportul n modul Design View i se folosete caseta de instrumente ToolBox (fig. 15) Se observ n modul Design c rapoartele conin anumite zone, care pot fi unice la nivelul raportului (antetul i subsolul raportului - Report Header/Report Footer) sau se pot repeta la nivel de pagin (antetul i subsolul paginii - Page Header/Page Footer) i la nivel de nregistrare (seciunea Detail). Exist, de asemenea cte un antet i un subsol pentru fiecare grupare a raportului. n modul Design View coninutul lor poate fi modificat de proiectant, ele coninnd etichete (Labels), casete de tip text (TextBox) i alte controale de tip Access.

32

Fig. 15 Deschiderea raportului n modul Design View Un exemplu de folosire a casetei de tip text n cadrul raportului este pentru numerotarea nregistrrilor afiate n seciunea Detail. Se alege din proprietile controlului TextBox, din meniul Data, proprietatea ControlSource i i se atribuie valoarea 1. Proprietatea RunningSum setat pe valoarea Over_Group numeroteaz nregistrrile pe grup, iar valoarea Over_All numeroteaz toate nregistrrile. 2.7 Macrocomenzi Permit gruparea mai multor aciuni i executarea lor repetat la declanarea unui eveniment, cum ar fi: activarea unui buton sau unui element de meniu, apsarea unei taste, focalizarea unui control grafic. Se mbuntete semnificativ interfaa aplicaiei cu utilizatorul prin folosirea comenzilor grupate n macro. n unele situaii, comenzile macro reprezint singura posibilitate de realizare a anumitor cerine ale proiectantului: Meniuri utilizator; Executarea unei succesiuni de comenzi la deschiderea bazei de date macrocomanda special Autoexec; Definirea unor taste care s execute comenzi rapide n cadrul unei aplicaii macrocomanda special Autokeys. Dezavantajul utilizrii macro este c nu ofer nicio modalitate de revenire asupra operaiilor executate.33

Comenzile macro reprezint cea mai simpl metod de programare n Access, care permite obinerea unei aplicaii. Pentru a crea o macrocomand se parcurg urmtoarele etape: 1. Butonul MACROS opiunea New;

Fig. 16 Crearea unei macrocomenzi2. Apare fereastra de dialog din fig.16 n care se stabilesc comenzile

componente (coloana Action) i argumentele sau specificaiile lor (fereastra Action Arguments). 3. Dup definirea listei de comenzi se salveaz macro i se execut cu Run.

Exist posibilitatea includerii de subcomenzi macro n cadrul unui singur grup de macrocomenzi, prin adugarea coloanei Macro Names din meniul View. Aceast facilitate se folosete la crearea de meniuri utilizator i la definirea macrocomenzii speciale Autokeys. Macrocomanda AUTOEXEC se creaz similar cu orice alta, are caracteristic faptul c se execut la fiecare deschidere a bazei de date. Se poate anula executarea ei automat dac la deschiderea bazei de date utilizatorul activeaz tasta Shift. Ea are rolul de a deschide formularul care constituie interfaa grafic cu utilizatorul. Macrocomanda AUTOKEYS permite definirea unor comenzi rapide de la tastatur n interiorul aplicaiei Access. Atribuirile de combinaii de taste unor operaii34

trebuie astfel fcut nct s nu anuleze definiiile de taste din sistemul de operare Windows. De exemplu: nu se recomand folosirea combinaiei de taste Ctrl+X, Ctrl+C i Ctrl+V, care sunt folosite n Windows pentru decuparea, copierea i refacerea unei zone Clipboard. O macro Autokeys se creaz ca orice grup de comenzi, avnd n coloana Macro Names definite combinaiile de taste, iar n coloana Action operaia care se execut la activarea lor. De exemplu: Macro Names Action Arguments {F4} ^F MsgBox OpenForm specificatiile de mesaj specificatiile unui formular

Se pot activa oricnd n timpul lucrului cu baza de date folosind tasta special F4, respectiv combinaia de taste CTRL+F. 2.8 Exemplu de proiectare a unei baze de date Problema de rezolvat: S se proiecteze o baz de date a unei agenii de turism, care s ofere clienilor si servicii optime i la tarife acceptabile. Schema de proiectare a bazei de date cuprinde: serviciile oferite de agenie, contractele realizate cu clienii i serviciile cerute de acetia n cadrul unui contract:PK Cod_serv Denumirea serv Tarif_servTabela SERVICII Byte Text 30 Long Integer PK PK PK

CNP NrcontractCod_serv

Tabela CLIENI Text 13 Byte Byte Text30 Byte

PK Nrcontract Data_contract

Tabela CONTRACTE Byte Date/ Time

Nume_client Nr_serv

Pentru satisfacerea cerinelor beneficiarului, proiectantul trebuie s realizeze baza de date parcurgnd urmtoarele etape: 1. S construiasc tabelele i relaiile dintre ele conform schemei de proiectare; 2. S realizeze un formular pentru introducerea datelor n tabela clieni; 3. S proiecteze o interogare care s vizualizeze numele clientului, serviciile solicitate i valoarea lor pentru un anumit contract; 4. S construiasc un raport care s prezinte datele din interogarea anterioar, cu subtotaluri valorice pentru fiecare client i pentru fiecare contract.

35

1) Dup ce a fost realizat structura celor 3 tabele, se stabilesc relaiile dintre ele:

2) Formularul de ncrcare date in tabela SERVICII, cu subformularul CLIENI se proiecteaz cu Form Wizard i arat astfel:

3) Se proiecteaz n modul Design View interogarea care s vizualizeze numele clientului, serviciile solicitate i valoarea lor pentru un anumit contract. Cmpul valoare este un cmp calculat i se obine din [nr_serv]*[tarif_serv]. n urma execuiei interogrii obinem situaia:

36

4) Se construiete un raport pe baza interogrii de la punctul anterior, cu Report Wizard, avnd grij s precizm ca niveluri de grupare: Nivelul 1: Nrcontract Nivelul 2: Nume_client Se va face un subtotal pe cmpul valoare pentru fiecare client i pentru fiecare contract. Se fac modificri n Design View care in de forma raportului i nu de coninutul acestuia. n urma execuiei se obine urmtoarea situaie:

37

Se salveaz baza de date sub numele Agenie.mdb i se testeaz funcionarea ei prin adugarea altor seturi de date. Pentru un numr de 10 nregistrri n tabela Clieni, 5 nregistrri n tabela Servicii i 4 nregistrri n tabela Contracte, baza de date ocup un spaiu pe hard disk de 344 Kb.

2.9 Verificarea cunotinelor1. Care este definiia bazelor de date? 2. Care sunt avantajele utilizrii bazelor de date? 3. Ce modele de baze de date cunoatei?

4. Definiia sistemelor de gestiune a bazelor de date. Exemple.5. Care sunt funciile unui sistem de gestiune a bazelor de date?

6. Componentele de baz ale modelului relaional.7. Ce se nelege prin restricii de referenialitate n SGBDR-uri? 8. Care sunt elementele principale ale SGBDR-ului Access?

9. Precizai care sunt tipurile de relaii ntre tabele n sistemul Access.10. Ce este cheia primar i care este rolul ei ntr-o tabel?

38

11.Cum se poate pstra coerena i consistena bazelor de date Access? Se va face referire la actualizrile i tergerile de nregistrri n cascad.12. Ce tipuri de date pot conine tabelele ? Dai cteva exemple. 13. Care este rolul interogrilor? Precizai tipurile de interogri. 14. Ce se nelege prin vrjitori i unde sunt ei folosii?

15.Ce sunt formularele i cum se pot obine ?16. Ce sunt rapoartele i care este modalitatea cea mai simpl de obinere a lor? 17. Cum se regsesc bazele de date Access pe un harddisk ?

Bibliografie1. Ipate, F.E., Dezvoltarea aplicaiilor de baze de date n Oracle 8 i Forms 6

, Editura BIC ALL, 2000 2. Patriciu, V., Criptografia i securitatea reelelor de calculatoare , Editura Tehnic, 19943. Nstase, P., Mihai, F., Baze de date - Access 2000, Editura Teora, 2001 4. Jennings, R., Totul despre Access 2000, Editura Teora, 2002

5. Allen Browne, Alison Balter, Bazele Access 95, Editura Teora 19996. Coculescu, L., Cristea, V.,Pilat, F., Patriciu, V.,Proiectarea sistemelor

informatice, Ed.Militar, Bucuresti 19987. Alison Balter, Invata singur MS Office ACCESS 2003 in 24 de ore, Editura

Niculescu, 200639

8. Bdu, M., Informatica pentru manageri, Editura Teora, 1999 9. Roca, I.Gh.,Bucur, C.M., Timofte-Stanciu, C. Paiu, O., Vian, M.,

Comerul electronic: concepte, tehnologii i aplicaii, Editura Economic, 200410. Milosescu, M. Informatica-Tehnologii asistate de calculator-IT2, Editura

Teora, Bucuresti, 200111. Rusu, L, Managementul sistemelor informatice, Presa Universitara

Clujeana, Cluj-Napoca, 2001

40