Sunteți pe pagina 1din 112

CUPRINS PREFA CUVNT NAINTE CAPITOLUL 1 Introducere 1.

1 Exemplu de proiectare incorect CAPITOLUL 2 Elemente de proiectare a bazei de date 2.1 Entit i, atribute, chei. 2.2 Diagrama ER (Entitate rela ie.) CAPITOLUL 3 Primii pa i n baze de date rela ionale 3.1 Crearea unei baze de date rela ionale folosind resurse ACCESS. 3.2 Popularea bazei de date folosind formulare. 3.3 Filtrarea nregistr rilor CAPITOLUL 4 Crearea unei noi baze de date 4.1 Crearea unei baze de date vide. 4.2 Crearea i o modificarea tabelelor. 4.3 Popularea tabelelor 4.4 Salvarea, protec ia i nchiderea bazei de date CAPITOLUL 5 Cereri i vederi asupra bazei de date 5.1 Crearea unei rela ii pentru a defini o list de alegeri. 5.2 Crearea unei cereri simple. 5.3 Crearea unei cereri utiliznd mai multe tabele. CAPITOLUL 6 Formulare 6.1 Crearea unui formular simplu. 6.2 Subformulare. 6.3 Crearea unui macro. CAPITOLUL 7 Rapoarte i etichete 7.1Asem n ri i deosebiri ntre rapoarte i formulare. 7.2Crearea unui raport imediat. 7.3 Crearea unui raport cu ajutorul Wizardului. 7.4 Raport de sintez . 7.5 Crearea etichetelor. CAPITOLUL 8 Crearea unui meniu 8.1 Crearea unui buton. 8.2 Legarea butonului de o ac iune. CAPITOLUL 9 Proiect de sistem cu baz de date 9.1 Proiectarea logic a bazei de date Rela ionale. 9.2 Realizarea help-ului pentru aplica ie BIBLIOFRAFIE pag 2 pag 3 pag 4 pag 4 pag 7 pag 7 pag 8 pag 12 pag 12 pag 20 pag 28 pag 30 pag 30 pag 31 pag 42 pag 44 pag 47 pag 47 pag 53 pag 56 pag 61 pag 61 pag 65 pag 70 pag 74 pag 74 pag 74 pag 75 pag 80 pag 85 pag 89 pag 89 pag 91 pag 96 pag 96 pag 109 pag 112

PREFA Bazele de date constituie un element foarte des ntlnit n via a de toate zilele. Un dic ionar, o carte de telefon, o enciclopedie sunt baze de date. Mai precis exprimat, o baz de date reprezint un ansamblu de date integrat, anume structurat i dotat cu o descriere a acestei structuri. Descrierea poart numele de dic ionar de structuri sau meta-date (informa ii despre structuri) i creeaz o interdependen ntre datele propriu-zise i programe. n func ie de modul de organizare a informa iilor se cunosc trei tipuri de baze de date: rela ional, ierarhic, n re ea. Din punctul de vedere al ntelegerii bazelor de date, cel mai simplu este tipul rela ional. Sistemul de baze de date rela ional are aceea i structur fizic cu datele ce trebuie prelucrate. Sistemul de gestiune a bazelor de date (SGBD) este un sistem de programare care faciliteaz i supervizeaz introducerea de informa ii n baza de date, actualizarea i extragerea datelor din baza de date, controlul i autorizarea accesului la date, precum i asigurarea unei independen e ntre structura bazei de date i programele de aplica ie. Bazele de date constituie un univers deosebit de atrag tor. De la apari ia conceptului de baz de date (cnd, aceasta, era v zut ca o colec ie de fi iere) pn n prezent (cnd vorbim de modelul rela ional), acesta a avut o extraordinar evolu ie, din punct de vedere al con inutului. Evolu ia sa extraordinar s-a datorat att dezvolt rii deosebite a fundamentelor teoretice cu privire la reprezentarea i reg sirea datelor, ct i realiz rii a numeroase sisteme de gestiune a bazelor de date, ceea ce a f cut posibil utilizarea pe scara larg n diverse domenii ale activit ii sociale a produselor program, avnd la baz aceste sisteme. Fundamentarea teoriei bazelor de date porne te de la necesitatea definirii modelelor de date, modelul rela ional constituind unul dintre cele mai importante dintre aceste modele. ntr-un asemenea model, datele sunt memorate sub forma de rela ii, un element al unei rela ii reprezentnd un obiect al lumii reale. Esen a modelului rela ional al bazelor de date l constituie teoria dependen elor. Cteva din avantajele modelului rela ional sunt urm toarele: datele sunt reprezentate simplu i u or de reg sit; ofer posibilitatea utiliz rii limbajelor de programare de nivel nalt pentru acces la date; realizarea integrit ii i confiden ialit ii datelor; posibilitatea de realizare a unei mul imi diverse de aplica ii; existen a unei metodologii de proiectare a bazelor de date. n prezentul volum autorul cadru didactic la Catedra de Informatic Teoretic a Facult ii de Matematic i Informatic din Universitatea Transilvania Bra ov - si propune ca, beneficiind de o foarte bogat experien n abordarea teoretic i aplicativ a bazelor de date, n activitatea desf urat cu studen ii, s pun la dispozi ia cititorului, doritor s se ini ieze n baze de date, elementele practice necesare acestei ini ieri. A adar volumul se adreseaz att studentilor, care urmeaz cursul de baze de date, ct i tuturor celor interesati n abordarea practic a bazelor de date. Prof.univ.dr. Moise COCAN Catedra de Informatic Teoretic 2

CUVNT NAINTE Cartea de fa are la baz Baze de date pentru ncep tori cartea noastr [5] scris n cadrul proiectului TEMPUS IB_JEP 14186-99. Am sim it nevoia de mprosp tare pentru c , ntre timp SGBD ACCESS a evoluat i proiectul exemplu din carte era incomplet. Am ad ugat, de asemenea, crearea unui meniu (capitolul 8) i modul de apelare a unui macro (capitolul 6, ecranele 111 - 116). Mul umesc so iei mele Mirela, care m-a ajutat cu sfaturi i corectura c r ii.

CAPITOLUL I INTRODUCERE Foarte mult lume discut sau chiar folose te no iunea de Sisteme cu baz de date, dar n afar de pre iozitatea exprim rii, mul i dintre ace tia cred c o colec ie oarecare de fi iere, n orice limbaj care permite o prelucrare, ar fi suficient pentru nevoile afacerii, dac preg tirea nu este de specialitate coboar i mai jos i folosesc un sistem de calcul tabelar (EXCEL) sau se reped ntr-un SGBD (Sistem de Gestiune a Bazelor de Date ) care arat cum se creaz i cum se utilizeaz o baz de date i se lovesc pe parcurs de probleme, de obicei, insurmontabile. Din ce cauz ? Ce lipse te? Lipse te n elegerea distinct a ceea ce nseamn un Sistem cu baze de date i lipse te proiectarea n acord cu aceast n elegere. Exemplu de proiectare incorect Pentru n elegerea facil a unor defini ii teoretice care vor urma, o s prezent m un exemplu. Firma Lectura inteligent vinde c r i prin coresponden . Pentru aceasta culege planuri editoriale de la cteva edituri cu acrea re contracte i i face reclam n ziare, la radio, la televiziune sau prin coresponden direct cu clien ii mai vechi. n urma reclamei prime te comenzi pe care le satisface ulterior. Bul , b iatul patronului, elev str lucit la Liceul de Informatic , a creat o metod simpl ( i eficient pentru nceput) de manipulare a comenzilor i vnz rilor, pe care a denumit-o baz de date. Cititorul i va da seama c titlul este preten ios. Autorul i propune s descopere mpreun cu cititorul defectele acestei abord ri, ap rute pe m sur ce afacerea lua amploare. Intrarea n sistemul ingeniosului elev se face pe baza unui formular pe care un angajat l completeaz pentru fiecare volum pe care l comand un client. Iat acest formular:

Id client este creat combinnd codul localit ii (patru cifre) cu primele trei litere ale numelui i cu un num r de ordine ( cinci cifre) .Deci Popescu Ion al 35-lea client din Bra ov va avea identificatorul 220000800035. Acest cod, dup cum se vede, asigur unicitatea unui identificator pentru clien i. Cum se desf oar activitatea? Pe baza unui catalog clientul comand una sau mai multe c r i. Cnd cartea este disponibil (se afl n depozit) este trimis la to i cei care au comandat-o i n c su a comand satisf cut se marcheaz un X. La prima vedere totul este simplu, n regul , i treaba chiar a func ionat o vreme. Scopul nostru este s observ m care sunt defectele unui asemenea proiect. Defectul num rul 1 Baza de date con ine multe date duplicate: - numele, adresa, ., unui client apar de cte ori acesta comand o nou carte - titlul, autorii apar de cte ori este comandat aceia i carte i ce dac sunt date duplicate? - se ocup mai mult loc pe mediul de stocare - scrierea de mai multe ori a aceluia i lucru face ca aceast scriere s fie diferit (exemplu cartea Utilizarea ACCESS 95 poate s apar Utilizare Access 95 sau Utilizare Acces 95 ). Ultimele dou forme nu vor fi reg site n baza de date ce va face ca anumi i clien i s nu fie satisf cu i, de aici decurgnd o serie ntreag de probleme. Solu ia ar fi s elimin m pe ct posibil duplic rile sau, atunci cnd ne permite, acestea s fie corecte (consistente). O proiectare corect a unei baze de date rezolv aceast problem . Defectul num rul 2 Pentru c firma f cea catalogul manual, cu un consum mare de munc necalificat , s-a pus problema edit rii catalogului direct din baza de date. Dar din aceast baz de date este imposibil de realizat a a ceva pentru c : - baza de date nu con ine toate datele care fac posibil alegerea unei c r i. (lipse te un scurt con inut, de exemplu) - prin ad ugare am ajunge s accentu m primul defect. S -l includem o singur dat ? Cum o s tim unde l-am inclus? Cel mai grav ns , este faptul c n catalog ar trebui s apar c r i care nu au fost comandate de nimeni i aceast problem nu poate fi rezolvat cu acest sistem. Defectul num rul 3 Problemele legate de tergerea datelor. S presupunem c un client a comandat o singur carte i c aceast carte nu mai este scoas (exemplu interzis de cenzur ) dac tergem informa ia despre carte o s pierdem adresele tuturor clien ilor care au comandat numai aceea carte i deci nu vom putea trimite catalogul la o mul ime de clien i posibili. Defectul num rul 4 5

O alt mare problem este acel identificator de client. Sunt prea multe lucruri incluse acolo. De multe ori sunt utile astfel de coduri mixte dar s vedem ce se ntmpl n cazul nostru dac un client se mut . Identificatorul de client se schimb i vom avea comenzi pentru acela i client pe dou adrese de aici posibila duplicare a pachetelor sau trimiterea unui pachet la o adres gre it . n acest curs vom nv a s proiect m corect o baz de date astfel nct s evit m apari ia acestor defecte. Proiectul nu este suficient pentru a rezolva problema. Datele sunt depuse n calculator mpreun cu rela iile dintre ele ntr-un mod fizic care nun e intereseaz n acest moment. Noi vrem s exprim m cerin e asupra bazei de date n limbajul proiectului. Traducerea din acest limbaj, c utarea i editarea rezultatelor este treaba Sistemului de Gestiune al Bazei de Date prescurtat SGBD. {90% din calculatoarele func ionale n acest moment sunt echipate cu Microsoft Office deci, pentru a putea aplica aproape oriunde cele nv ate o s nv m s utiliz m SGBD Microsoft ACCES }

CAPITOLUL 2 ELEMENTE DE PROIECTARE A BAZEI DE DATE 2.1 Entit i, atribute, chei. n introducere am v zut c actualizarea datelor despre clien i sau a datelor despre c r i este dificil n concep ia ini ial . Aceast deficien a ap rut pentru c au fost puse mpreun date despre trei lucruri distincte: clien i, c r i i comand . Astfel de lucruri vor fi numite de acum nainte entit i. Entitatea este ceva despre care se memoreaz date. Clien ii i c r ile sunt entit i tangibile (tari), comenzile nu pot exista f r celelalte dou , ele nu sunt tangibile de i sunt puse pe hrtia comand , comanda este o entitate slab . Entitatea va fi reprezentat n baza noastr de date sub forma unui tabel n care liniile sunt concretiz rile acestei entit i, adic reprezentan ii sau instan ele entit ii. Pe fiecare linie nu vom avea chiar reprezentan ii entit ii ci numai date care caracterizeaz din punctual de vedere al aplica iei reprezentan ii entit ii; aceste date se numesc atribute. Deci o entitate din via a real genereaz ntr-o baz de date rela ional un tabel ale c rui coloane au ca nume atributele entit ii, iar pe linii succesive se g sesc valorile atributelor pentru fiecare reprezentant al entit ii n parte. De exemplu: entitatea CARTE are atributele: id carte, titlu, autor, editura, pre , n exemplul dat sunt trei reprezentan i ai acestei entit i, iar fiecare celul a acestui tabel reprezint o valoare a atributului corespunz tor coloanei pentru reprezentantul corespunz tor liniei. CARTE id carte titlu 00035 Relational database design 00102 10223 . Baze de date Utilizare Access 95 autor Harrington Lungu Jennings editur Academia Press All Teora pre 5,00 lei 1,20 lei 11,00 lei

Dac am avea 10.000 de c r i vom avea n tabel 10.000 de linii pe care ar fi memorate valorile atributelor entit ii CARTE. Alt exemplu pentru entitatea CLIENT avnd atributele: id client, nume, prenume, ora , str., nr., tel, cod. CLIENT id nume carte 00001 Ancu 00010 Barna 00011 Cucea 00101 Nanu prenume Viorel Dan Maria Vasile ora Bra ov Cluj Ia i Tg. Mure Str Castanilor Horia Lalelelor Jiului nr 43 241 12 105 tel 162534 458142 457256 256412 cod 500142 420120 650124 345002

Dac avem doi clien i cu acela i nume cum vom determina care este cel care a comandat o anumit carte? Am v zut care sunt inconvenientele cre rii unui cod mixt cum a fost cel ini ial. Am mai putea folosi pentru identificatori numele plus num rul de telefon, dar n acest caz avem multe caractere i r mn problemele legate de actualiz ri; de exemplu schimbarea num rului de telefon. Un astfel de atribut, simplu sau ob inut prin concatenare care identific unic o instan a unei entit i se va numi cheie. A a cum recomand practica i autorii Harrington [2] vom crea chei printr-un num r generat succesiv i unic n special pentru persoane, locuri, lucruri etc. R mn situa ii n care este nevoie de chei concatenate. Existen a unei chei care s identifice unic reprezentan ii unei entit i este o regul esen ial de integritate a datelor. ntr-un model rela ional (de care ne ocup m n mod special) este esen ial ca atributele s aib valori unice, adic fiind dat o instan a unei entit i, un anumit atribut trebuie s aib o singur valoare. De exemplu un client poate avea un singur num r de telefon. Dac l s m mai multe locuri, m rim inutil i nepropor ional baza de date deci n cazul acestei necesit i trebuie creat o nou entitate num r de telefon cu mai multe instan e. 2.2 Diagrama ER (Entitate rela ie.) Odat stabilite entit ile i atributele ele trebuie s r mn pe un document; de fapt toat activitatea de proiectare trebuie documentat . Pe lng tabelele pe care le putem g si n Iacob [3] i [4], avem nevoie de un instrument grafic care s permit o vedere sintetic asupra bazei de date. Chen [1] a inventat diagrama E-R (entity-relationship adic entitate-rela ie). O prezent m aici sub o form modificat : Entitatea se reprezint sub forma unui dreptunghi n care sunt listate atributele i n care este pus n eviden cheia. Apoi vom vedea cum se reprezint i rela iile ntre entit i. Iat cum arat , n prim instan , entit ile reproiectate pentru societatea Lectura inteligent . Client * nr client nume prenume ora strad nr cod po tal telefon Comad * nr comand nr client dat Carte * nr carte clasificare titlu edi ie data apari iei pre gen Editur * nr editur nume adres ora strad num r cod po tal telefon pers contact Autori * nr autor nume prenume

Se observ imediat c trebuie s spunem ce valori pot lua atributele i ct loc o s ocupe aceste valori. Aceasta nseamn c trebuie stabilim domeniul atributelor. Practic se utilizeaz urm toarele simboluri: CHARx text de x caractere, x e 256 INTx num r ntreg de x cifre DECIMALx.z num r de x cifre dintre care NUMERICx.z z sunt dup virgule (punctual) zecimal DATE dat calendaristic (zz/ll/aa) TIME timp hh:mm:ss DATETIME o combina ie a precedentelor BOOLEAN valoarea logic (adev rat sau fals) n baza de date se vor introduce i rela ii ntre entit ile, care sunt de fapt realizate ntre instan e. Vom enumera n continuare tipurile de rela ii care se pot stabili ntre entit i: Rela ii 1 la 1 Este cazul rela iei din c s toria dintre dou posibile entit i b rba i i femei (nu n rile islamice) Rela ii 1 la n Sunt cele mai frecvente. Exemplu la o editur pot fi mai multe c r i, dar o anumit carte provine de la o singur editur . Rela ii n la m ntre comenzi i c r i. ntr-o comand pot fi mai multe c r i i aceea i carte poate s apar n mai multe comenzi. Acest tip de rela ii nu este u or de mnuit i o astfel de rela ie este transformat n dou rela ii de 1 la n introducnd o nou entitate. n cazul nostru noua entitate va fi detaliu comand . Este obligatoriu ca n aceast entitate s avem cheile celor dou entit i ntre care exist rela ia de n la m. Rela iile vor fi descrise n diagramele E-R cu linii ntre entit i care vor fi ntret iate de simboluri ale tipurilor. Aceste simboluri sunt descrise mai jos. | | pentru una i numai una (instan ) 0| pentru zero sau una >| pentru una sau mai multe >0 pentru zero, una sau mai multe Exemplu: rela ia ntre comenzi i c r i Carte Comad * nr comand nr client dat 0 | * nr carte clasificare titlu edi ie data apari iei pre gen

O comand con ine cel pu in o carte, dar o carte poate s nu fie comandat de nimeni, totu i este o rela ie de tip n la m. ea poate fi transformat prin introducerea entit ii detaliu comand n: Carte Comad Detaliu comad * nr carte || | 0 | | clasificare * nr comand * nr comand titlu nr client * nr carte edi ie dat data apari iei pre gen Deci diagrama final ntr-o proiectare corect ar fi: Client * nr client nume prenume ora strad nr cod po tal telefon Editur * nr editur nume adres ora strad num r cod po tal telefon pers contact

=
0 Comad * nr comand nr client dat || | Detaliu comad * nr comand * nr carte 0 ||

=
0

Carte * nr carte clasificare titlu edi ie data apari iei pre gen

= _
Autori * nr autor nume prenume 10 | || Carte autor * nr carte * nr autor

S observ m c : - cheia n entitatea comand este num rul de comand care apare n mod natural pe acest document. - cheia n entit ile de leg tur detaliu comand i carte autor, introduce pentru a distruge rela iile n la m, este format din concatenarea celor dou chei ale entit ilor legate i nu creaz probleme de actualizare. O baz de date rela ional are la baz rela ia, care poate fi considerat ca un tabel (reprezentarea unei entit i) cu linii (instan e ale entit ilor), i coloane (atribute). Binen eles c ntre tabele trebuie s existe leg turi. Aceste leg turi sunt realizate prin disciplina: cheie primar cheie str in Cheia primar este cheia unei rela ii, iar cheia str in este atributul (de obicei cu acela i nume ) de acela i tip cu cheia primar i cu valori care se pun n coresponden cu cele ale cheii primare. Pentru ca o baz de date rela ional s fie corect , trebuie ca baza de date s ndeplineasc anumite restric ii: - restric ia de unicitate a cheii - restric ia referen ial valorile cheii str ine trebuie s figureze printre valorile cheii primare sau s aib valoarea NUL - restric ia entit ii valorile cheii primare sunt unice i nu pot fi NUL - restric ia de domeniu valorile atributelor pot fi NUL sau din domeniul de defini ie. G si i n capitolul 9 un exemplu de proiectare a unei baze de date rela ionale. Un alt exemplu se poate g si n Iacob[5].

11

CAPITOLUL 3 Primii pa i n baze de date rela ionale jO s jO s jO s jO s cre m o baz de date rela ional folosind resurse ACCESS. popul m aceast baz de date folosind formulare. list m componente ale bazei de date folosind criterii logice (filtrare). salv m i o s nchidem baza de date.

3.1 Crearea unei baze de date rela ionale folosind resurse ACCESS. Pentru a lansa SGBS-ul ACCESS trebuie s ave i instalat pe PC-ul vostru Microsoft Office Profesional. Dup ce a i pornit calculatorul va ap rea pe ecran ceva n stilul:

E C R A N 1

Cu clic pe butonul stng al mouse-ului pozi ionat pe <Start> se ob ine:

E C R A N 2

12

Cu clic-uri succesive pe butonul stng al mose-ului pe <Programs>, <Microsoft Office Tools>, <Microsoft Access> se ob ine ecranul:

E C R A N 3

Cu clic pe butonul stng al mose-ului pe <General Templates> se ob ine:

E C R A N 4

13

De aici vom alege <Data Bases> i apare:

E C R A N 5

Cu clic de aici pe <Inventory control> i <OK> ob inem:

E C R A N 6

De aici alegem <Create> i ob inem: 14

E C R A N 7

Ap snd succesiv pe <Next> ob inem ecranele:

E C R A N 8

15

E C R A N 9

E C R A N 10

16

E C R A N 11

E C R A N 12

17

E C R A N 13

Acum selectnd <Finish> se declan eaz crearea bazei de date cu defilarea unor ecrane de tipul:

E C R A N 14

Dup ce se termin aceast opera ie se ob ine: 18

E C R A N 15

Face i clic pe <OK> i, n ecranul care urmeaz , introduce i datele (evident fictive) ale firmei pentru care construi i sistemul. De exemplu:

E C R A N 16

Cnd p r si i acest ecran cu clic pe Information> ob ine i: 19

pe rndul cu <My Company

E C R A N 17

3.2 Popularea bazei de date folosind formulare. n continuare vom introduce date n tabele prin formulare. Mai nti n produse f cnd clic pe <Enter/View Products>. De exemplu:

E C R A N 18

Cu clic pe <Category> nu o s pute i selecta o categorie pentru c acestea nu au fost introduse. Face i dublu clic pe <Category> (tot cu butonul stng) i pute i introduce categorii. De exemplu: 20

E C R A N 19

Acum este cazul s introduce i mai multe produse n fiecare categorie pe care o alege i. V propun cel pu in 3 categorii i n fiecare categorie ntre 2 i 6 produse. La fiecare produs o s introducem facturi de intrare dup ce am selectat <Orders>. Observa i c data apare cu valoarea ini ial = data zilei curente, dar ea poate fi schimbat . Din nou la furnizor (supplier), la angajat (employee) i la metoda de trimis (shipping method) va trebui s facem dublu clic ca s introducem noi nregistr ri corespunz toare n tabelele respective. De exemplu: E C R A N 20

21

E C R A N 21

E C R A N 22

Se ob ine a a ceva:

22

E C R A N 23

Am mai introdus o factur :

E C R A N 24

Observa i c , dac reveni i n <products>, pute i veda cte c r i i cnd au fost primite:

23

E C R A N 25

E C R A N 26

Revenind n meniul principal (p r sirea unui meniu se face cu clic pe X), putem vedea ce am introdus n alte tabele cu clic pe <Enter/View Other Informations> de unde ob inem:

24

E C R A N 27

Tot din meniul principal <Main Switchboard> cu clic pe <Preview Reports> se ob ine:

E C R A N 28

1)

De aici putem vedea rapoarte cu : compara ii de cost al produselor <Product cost Comparisons>(aten ie la aspect! Studia i n acest sens bara de meniu de sus)

25

E C R A N 29

2)

cump r ri pe furnizor

E C R A N 30

3)

Informa ii despre stoc:

26

E C R A N 31

4) E C R A N 32

detalii despre tranzac ii:

Dac facem clic pe <Exit Database>, se vor salva toate informa iile i se va nchide baza de date. 3.3 Filtrarea nregistr rilor Poate c nu toate nregistr rile sunt necesare pe ecran; de exemplu vrem s vedem numai produsele din categoria carte. n meniul principal, selectnd <Enter View Products>, apoi select m <Category> i , de acolo carte, apoi cu clic pe butonul drept apare un meniu vertical din care select m <Filter by selection>. Apare 27

un ecran n care se vede c au fost filtrate nregistr rile i au r mas numai cele dou c r i introduse.

E C R A N 33

Putem realiza filtre mult mai complexe. Pentru aceasta, n acela i formular, facem clic cu butonul drept, dar nu pe cmpurile de date. Dup selec ia liniei <Filter by Form> apare:

E C R A N 34

Formularul s-a golit. Selecta i valorile de filtrare i face i clic pe plnia din bara de sus; o s apar doar nregistr rile filtrate. De exemplu, selectnd din <Cathegory> geanta, din <Product name> po eta fifi se ob ine:

28

E C R A N 35

29

CAPITOLUL 4 Crearea unei noi baze de date         n acest capitol vom nv a: s cre m o nou baz de date vid . s cre m i o s modific m tabele. s ad ug m atribute cu anumite propriet i. s specific m chei. s cre m rela ii ntre tabele. s popul m tabele. s salv m i o s nchidem baza de date. Din ecranul 36 facem clic pe <Blanc Database>.

4.1 Crearea unei baze de date vide.

E C R A N 36

Ob inem ceva de tipul:

30

E C R A N 37

Da i un nume viitoarei baze de date i face i clic pe <Create>. Se ob ine:

E C R A N 38

4.2 Crearea i o modificarea tabelelor. Vom prefera <Create table n design view>. Da i Enter i pute i crea prima tabel . Vom crea mai nti tabela client cu numele fiec rui atribut i selectnd tipul de atribut. Se poate vedea n ecranul urm tor c la nr_client am dat tipul <Auto number>. Aceasta nseamn c la fiecare nou client sistemul va ad uga un nou cod m rind cu 1 codul maxim de pn atunci; binen eles c aceasta va fi definit ca 31

cheie i se va numi cheie surogat pentu c nu avem un atribut natural ca s l facem cheie.

E C R A N 39

F cnd clic pe <X.> ob ine i:

E C R A N 40

Da i Enter i n ecranul care urmeaz da i numele noii tabele.

32

E C R A N 41

Cu clic pe<OK> se ob ine ecranul 42. Este momentul s ti i mai multe despre tipurile de date pe care le putem ata a cmpurilor din tabele. n ecranul 39 se vede o list de tipuri din care putem alege: - <Text> adic caractere alfanumerice (de fapt orice caractere). - <Memo> tot text , dar cu lungime variabil , folosit pentru descrieri mai lungi - <Number> num r care poate fi ntreg sau frac ionar ca n tabelul urm tor:

Tip de date Byte Integer Long integer Single double -

Plaja de valori De la 0 -32678 -2147483648 -3,4*1038 -1797*10308 Pn la 235 32767 2147483647 3,4*1038 1797*10308

Cifre zecimale

Loc n memorie 1 byte 2 bytes 4 bytes 4 bytes 8 bytes

7 15

<Date Time> Date calendaristice, timp la alegere mai jos n <Field Properties> <Currency> Moneda n $, lei etc <Auto Number> pe carel-am comentat dup ecranul 38 <Yes/No> tipul valoare logic care poate fi Da sau Nu <OLE Object> obiecte ca de exemplu: poze, grafice, sunete etc <Hiper Link> leg turi cu site-uri internet <LookUp Wizard> un tip de date special care va da posibilitatea de a da unui cmp numai valori luate din alt cmp, alt tabel , sau list de valori folosind pentru aceasta o c su de lisare sau un combo dup cum vom vedea mai departe.

33

E C R A N 42

Sistemul nu v las s cera i tabela f r a defini o cheie. Ap sa i pe <YES>, selecta i tabela client selecta i din bara de sus <Design view> i defini i cheia ca fiind nr_client. Dac ave i un autonumber cheia se va defini automat.

E C R A N 43

Cre m n mod analog tabelele: comanda - n ecran 44 detaliu_comanda - n ecran 45 carte - n ecran 46 editura - n ecran 47 carte_autor - n ecran 48 34

autor n ecran 49

E C R A N 44

E C R A N 45

Observa i c sistemul a introdus automat o cheie care avea tipul autonumber.

35

E C R A N 46

E C R A N 47

36

E C R A N 48

E C R A N 49

A a cum se poate vedea n ecranul 47, putem, n partea de jos a ecranului, s specific m propriet i ale cmpurilor: - <Field Size> define te lungimea unui text n num r de caractere. - <Format> se aplic la date de tip numeric sau data i poate fi ales din lista care se deschide cu clic pe zona respectiv . - <Input Mask> ata eaz un ablon la care trebuie s se potriveasc datele de intrare. Pute i ata a o astfel de masc apelnd la wizard prin butonul marcat cu <> 37

<Caption> - ceea ce scrie i aici va ap rea ca nume al cmpului n toate edit rile lui adic n rapoarte, n formulare, etc - <Default Value> este o valoare introdus automat n cmp cnd este creat un nou tuplu (linie n tabel), pe care utilizatorul o poate schimba. - <Validation Rule> se scrie sau se construie te cu Wizard-ul o expresie care las s intre n tabel numai valorile corecte. - <Validation Text> dac expresia anterioar nu este corect se afi eaz textul . - <Allow Zero Length> se aplic la texte unde se poate pune spa iu n loc de valoarea NULL (dac nu este nimic introdus). - <Indexed> prevede indexare dup acest cmp. n ecranul principal de proiectare (Ecran 50) vom selecta, n bara cea mai de sus, butonul: <Relationship>.

E C R A N 50

Dup clic apare:

38

E C R A N 51

Din acest ecran vom selecta, pe rnd, toate tabelele pe care le vom lega ntre ele f cnd clic pe <Add> de fiecare dat . Dup ce le-a i ad ugat pe toate face i clic pe <Close> i ve i ob ine:

E C R A N 52

Putem rearanja tabelele pe ecran prin drag and draw. Ap s m cu bubonul stng al mouse-ului pe numele tabelei i, f r s d m drumul butonului, deplas m imaginea n pozi ia dorit . Aranja i acum ecranul astfel nct s ob ine i ecranul 53.

39

E C R A N 53

n acest ecran vom face leg turile tot cu drag and draw. Leg tura trebuie f cut ntre atribute din cele dou tabele; atributele trebuie s fie de acela i tip (tipul autonumber se poate lega cu number long integer). Se ia un atribut din partea cu 1 a leg turii (vezi diagrama de la pag ), i se trage la atributul corespunz tor din cealalt tabel . De exemplu, tr gnd nr_editura din editura peste acela i atribut din carte se ob ine:

E C R A N 54

40

Aici vom selecta <Enforce Referential Integrity>, <Cascade Update Related records> i < Cascade Delete Related records >, apoi select m <Create> din ecranul 55.

E C R A N 55

Se ob ine:

E C R A N 56

n acest mod vom face toate leg turile din diagrama de la pag 10 i ob inem: 41

E C R A N 57

P r sim, ca de obicei, acest ecran i putem verifica sau modifica aceste rela ii urmnd acela i drum. 4.3 Popularea tabelelor Putem introduce date n tabele (date de test) selectnd din ecranul principal tabela respective i apoi <Open> sau cu dublu clic pe tabela selectat . De exemplu dac facem asta pe tabelul carte se ob ine:

E C R A N 58

42

Aici putem introduce date; cu grij ns ca nreditura s existe n editura i de asemenea la autor prin carte_autor. Rezult c nu putem introduce date ncepnd cu tabela carte! Un exerci iu bun este s introduce i date, pe rnd, n tabelele editura, autor, carte i carte-autor. n exemplul nostru se pot vedea date n ecranele 59 -62. E C R A N 59

E C R A N 60

43

E C R A N 61

E C R A N 62

Introducerea datelor reale se va face prin formulare. De altfel prin introducerea n formulare este mult mai u or de respectat integritatea referen ial , a a cum se poate vedea n tabelele 18 - 26 i n capitolul 6. 4.4 Salvarea, protec ia i nchiderea bazei de date 44

Tot ce construi i n ACCESS este dus automat pe disc; informa iile se pot pierde totu i dac nu s-a f cut corect <Shut Down> la nchiderea calculatorului. Se pune ns problema s p str m o copie a bazei de date, fie ntr-un alt folder, fie pe dischet . Pentru aceasta, din meniul principal, ap snd pe <File> se ob ine:

E C R A N 63

Aici, cu clic pe <Save As> se ob ine:

E C R A N 64

i pute i salva copii al obiectelor din baza de date. Dac vre i ca numai anumite persoane s poat avea acces la baza de date, pute i s o proteja i. Pentru 45

aceasta, din bara de sus a meniului, selecta i <Tools> apoi <Security> i <Set Database Password>. Apare ecranul: E C R A N 65

Dup clic aici pute i s pune i parola care va fi cerut de cte opri deschide i aceast baz de date. Aten ie s nu uita i parola!

46

CAPITOLUL 5 Cereri i vederi asupra bazei de date Putem lista liniile unui tabel, a a cum am f cut pn acum, dar avem urm toarele inconveniente: y s-ar putea s nu avem nevoie de toate liniile ci numai de unele care ndeplinesc anumite condi ii am nv at deja s facem acest lucru prin filtrare y s-ar putea s nu ne trebuiasc toate cmpurile y s-ar s avem nevoie de informa ii combinate din mai multe tabele (de exemplu cnd list m o carte s avem nevoie i de numele editurii i de numele autorilor am putea s cre m tabele a a cum avem nevoie, dar am descoperit toate neajunsurile unui asemenea mod de organizare n primul capitol. Exist solu ie ? Bine n eles! Solu ia se nume te vedere (view) care nseamn un tabel fictiv cu care se pot face o serie de opera ii, f r ca el s ocupe un loc efectiv n memoria extern . O vedere este rezultatul unei cereri (query) pe care o putem crea n limbajul SQL, sau prin meniuri n QBE (query by exemple = cerere prin exemple). Limbajul SQL nu este n vederile acestei c r i, a a c vom adopta a doua cale. Cererile care utilizeaz mai multe tabele fac apel la rela iile pe care le-am stabilit n capitolul 4 (ecranele 50 57). n acest capitol o s nv m:  S cre m o rela ie pentru a defini o list de alegeri (care este rezultatul unei cereri)  S cre m o cerere simpl (dintr-un singur tabel)  Sa cre m o cerere utiliznd mai multe tabele ntre care exist rela ii  S modific m o cerere  S ad ug m cmpuri calculate  S facem grupuri 5.1 Crearea unei rela ii pentru a defini o list de alegeri. O s observ m nti c dac vrem s nu gre im cnd introducem editor unei c r i trebuie s o lu m dintre editurile existente sau, dac acest editur nu exist , s o ad ug m mai nti n tabelul editura. Pentru aceasta vom relua proiectarea tabelului carte. La caracteristicile cmpului nreditura vom trece selectnd <Lookup> unde vom completa: la <Display control> - Combo Box la <Row Source Type> - Table Query la <Bound Column> - 1 la <Column Count> - 2 la <Row Source> - select m <> i se deschide ecranul 67. 47

E C R A N 66

E C R A N 67

y y y

Aici vom proiecta o cere astfel: Select m tabelul editura Select m <.Add> i tabelul se mut sus Ie im selectnd <Close> din subecran

48

E C R A N 68

Dup ce am ie it, select m cmpurile de care avem nevoie. Acestea sunt nreditura i nume_ed. Dou cmpuri, cum am declarat n Column count, din care primul se ia n considerare la leg tura cu tabelul carte, cum am declarat n Bound Column. Selec ia cmpurilor se va face cu dublu clic pe numele cmpului sau prin drag and draw. Vom mai selecta, pe linia <Sort> i coloana nume_ed op iunea <Ascending> pentru ca editurile s fie listate n combo box n ordine alfabetic cresc toare.

E C R A N 69

49

ncheiem,ca de obicei , reproiectarea tabelului carte i revenim n meniul principal. Vom face acum crearea unui formular simplu pentru a vedea efectul modific rilor. n bara de sus select m < Insert> apoi <Form> i ob inem:

E C R A N 70

Alegem <Form Wizard> i <OK> ca s ncepem un proces de generare a unui formular anticipnd pu in con inutul capitolului 6. E C R A N 71

n acest ecran vom selecta cmpurile pe care le dorim n formular unul cte unul cu . Dac le vrem pe toate select m butonul . > >> Dup <Next> apare ecranul: 50

E C R A N 72

Vom alege aici modul de afi are pe coloane selectnd <Columnar> i <Next>. Apare:

E C R A N 73

Aici trebuie s ne alegem aspectul fondului formularului. ncerca i toate liniile i dup ce v-a i stabilit la cea mai potrivit , selecta i <Next>. Apare ecranul:

51

E C R A N 74

Aici, dup ce am selectat <Open >, select m <Finish> i ob inem:

E C R A N 75

Dac vrem, putem deschide acest formular din meniul principal selectnd <Forms> i apoi formularul dorit. n formular putem vedea y toate c r ile pe rnd cu butonul nainte sau cu napoi y trece la prima carte cu butonul

|

sau la ultima cu *

sau putem introduce o nou nregistrare cu 52

Se poate vedea cum func ioneaz combo boxul selectnd corespunz tor din cmpul nreditura.

E C R A N 76

5.2 Crearea unei cereri simple. Dac vrem s cre m un tabel fictiv numai cu clien ii din Bra ov o s cre m o cerere n felul urm tor. Din meniul principal select m <Querys>. Apare: E C R A N 77

Vom selecta aici prima op iune <Create Query n Design view>. Apoi apare: 53

E C R A N 78

Select m, din tabel, tabelul client f cnd clic pe <Add>. Dup <Close> apare ecranul:

E C R A N 79

De aici putem selecta, cum am v zut deja, cmpurile de care avem nevoie. De asemenea select m ordinea cresc toare a numelor i , la <Criteria> scriem =brasov ,pentru a pune n tabelul fictive numai clien ii Bra oveni.

54

E C R A N 80

nchidem, ca de obicei, procedeul dnd nume acestui query.

E C R A N 81

Din ecranul principal, selectnd <Querys> i apoi client brasov cu dublu clic, putem vedea pe ecran con inutul tabelului fictive pe care tocmai l-am creat. Binen eles c trebuia mai nti s introduce i date i c trebuie s ave i cel pu in un client cu ora ul brasov.

55

E C R A N 82

Dac vrem, de exemplu, s cre m un tabel cu clien ii i c r ile comandate de ace tia, informa ia nu poate fi luat dintr-un singur tabel a a c trebuie s tim s facem 5.3 Crearea unei cereri utiliznd mai multe tabele. Select m, ca mai nainte, <Querys>, < Create Query n Design view >, ad ug m cu <Add> tabelele client, comanda, detaliu_comanda i carte, dup care ob inem:

E C R A N 83

Select m, aici, nume, prenume,titlu ca n tabelul urm tor: 56

E C R A N 84

P r sim dnd numele client carte.

E C R A N 85

Dac vrem s vedem, ca mai nainte, rezultatul, ob inem:

57

E C R A N 86

Vrem, acum, s afl m i valoarea c r ilor comandate de fiecare client i s ordon m clien ii dup aceast valoare. Select m, exact ca mai nainte, cmpurile nume i prenume, din acelea i tabele, i ad ug m un cmp calculat valoare=nr_bucati*pret. Cu clic pe butonul drept al mouse-ului pe partea de <Sort> se ob ine:

E C R A N 87

Cu clic pe <Totals> trecem n ecranul urm tor:

58

E C R A N 88

Se vede aici c nregistr rile vor fi grupate dup nume i prenume. De aici cu clic pe butonul care a ap rut sub valoare n linia <Totals> ob inem:

E C R A N 89

Cu clic pe <Sum> vom ncheia aceast proiectare i ob inem:

59

E C R A N 90

Ie im de aci, ca de obicei, dnd nume acestei cereri clienti cu valori. Proced m ca mai nainte ca s vedem rezultatul acestei cereri.

E C R A N 22

60

CAPITOLUL 6 Formulare. La introducerea datelor n noua noastr baz de date, am folosit un tabel incomod. Pe de alt parte am v zut, n capitolul 3, ecranele 20 23, un mod mai prietenos de introducere a datelor. Asemenea opera ii se fac comod prin formulare. Formularele sunt de dou tipuri: 1. Formulare pentru preluarea de date care ofer posibilitatea de a actualiza simultan mai multe tabele. 2. Formulare pentru decizii care prezint , ntr-un mod pl cut i imediat, informa ii ca suport pentru decizii. n acest capitol vom nv a :  S cre m formulare simple  S cre m formulare imediate  S modific m formulare  S cre m formulare cu subformulare  6.1 Crearea unui formular simplu. Un formular simplu poate fi creat pe baza unui tabel sau a unei cereri. S select m, de exemplu, tabelul autor, n meniul principal, i cu clic pe <Insert> ob inem: E C R A N 91

Cu clic pe <Form> de declan eaz deschide i, apar lista i autorii:

crearea formularului pe care, dac l

61

E C R A N 92

Aici putem face modific ri ale cmpurilor (n afar de nr_autor care este <autonumber>), putem introduce noi autori, sau, pur i simplu, putem s vedem datele memorate despre fiecare. Cam acela i formular se poate ob ine ca formular instantaneu. Select m tabelul autor i din bara de sus select m <New Object>:

E C R A N 93

Cu clic pe <AutoForm> ob ine: 62

E C R A N 94

Acest formular con ine i subformular unde vede i i num rul c r ilor scrise de autorii respectivi. Dac nu ne place cum arat , putem modifica formularul. n stnga sus, sub <File>, select m butonul de proiectare.

E C R A N 95

De aici select m <Design View> i apare: 63

E C R A N 96

Pute i m ri fereastra ecranului n dreapta , n jos , sau n amndou direc iile deodat , ag nd s ge ile de pe margini i tr gndu-le n direc ia dorit . Cu clic pe eticheta prenume_autor se ob ine:

E C R A N 97

Putem, aici, s schimb m textul etichetei sau s o deplas m ntr-o alt zon . S vedem dac a i n eles filozofia acestei aplica ii; pute i s aduce i formularul la forma urm toare? 64

E C R A N 98

Am v zut deja n capitolul 5, ecranele 70 75, cum se creaz formulare n modul asistat (cu Wizard-ul). Pute i acum s descoperi i cu se poate ad uga la un formular antet i picior de pagin . 6.2 Subformulare. n cadrul unui formular se poate crea un subformular. Am v zut deja asta n ecranul 95 i n ecranul 18. O s cre m un suformular la formularul carte ca s vedem i autorii c r ii listate. Cre m mai nti o cerere pe baza c reia se va crea subformularul. Cererea se face a a cum am nv at deja. Ajunge i n ecranul:

E C R A N 99

65

O s salv m cererea cu numele autor pe carte i relu m proiectarea formularului carte. Selectnd <Forms>,<carte> i <Design> apare: E C R A N 100

Rearanj m ecranul f cnd loc subformularului i select m din bara de sus butonul pentru tool box i , de acolo cel pentru subformular.

E C R A N 101

Dup aceasta, cu butonul stng al mouse-ului ap sat, pute i trasa spa iul pentru subformular. Cnd a i l sat butonul ve i fi n ecranul:

66

E C R A N 102

Select m <Next> i apare:

E C R A N 103

De aici lu m Query:autor pe carte i se ob ine: 67

E C R A N 104

Prelu m n subformular toate cmpurile:

E C R A N 105

Dup <Next> :

68

E C R A N 106

i iar i <Next>:

E C R A N 107

Apoi cu <Finish> se ob ine:

69

E C R A N 108

nchidem salvnd formularul i dac l deschidem ob inem: E C R A N 109

6.3 Crearea unui macro. Acesta este un formular n care se pot vedea c r ile cu autorii lor. Am v zut n capitolul 3 ecran 20 c prin dublu clic pe <employee> ap rea formularul pentru introducerea unui nou angajat. Dac vrem s introducem o carte dintr-o editur care este nou pentru noi, am putea s p r sim acest formular, s deschidem formularul edituri, dac l-am creat, i dup ce am introdus editura respectiv , s revenim n carte pentru a continua introducerea. Sigur c este 70

incomod i, dup modelul amintit din capitolul 3, vom nv a s declan m un formular la dublu clic pe numele editurii. n proiectare pe formularul carte, cu butonul drept al mouse-ului, se ob ine:

E C R A N 110

De aici, cu clic pe <Properties>, se ob ine:

E C R A N 111

Acum, pe <Event>, select m <On double clic> i facem clic pe se ob ine:

71

E C R A N 112

Am intrat n <Macro Bilder> unde vom construi un macro pentru deschiderea unui formular. Dup clic pe <Macro Bilder> se arat :

E C R A N 113

Am completat aici numele acestui macro. Dup clic pe <OK>, din ecranul urm tor select m <Open Form> ca n:

72

E C R A N 114

Dup clic ni se cere numele acestui macro ca n ecranul urm tor:

E C R A N 115

Alegem , din list , numele formularului - editura i, dup clic, nchidere i salvare, formularul carte func ioneaz a a cum am vrut.

73

CAPITOLUL 7 Rapoarte i etichete. Produsul principal al informa iilor din baza de date este un raport. Raportul este destinat tip ririi, adic edit rii pe hrtie care se p streaz o perioad de timp mai lung . Diferen ele de suport (ecran fa de hrtie) genereaz o serie ntreag de diferen e. n acest capitol vom nv a:  S cre m un raport imediat  S cre m un raport cu ajutorul asistentului (Report Wizard)  S facem grup ri i sinteze  S tip rim etichete pentru coresponden 7.1Asem n ri i deosebiri ntre rapoarte i formulare. O s prezent m mai nti deosebirile. 1. Rapoartele sunt destinate tip ririi i nu sunt concepute pentru a fi afi ate ntr-o fereastr . Dac vre i s vede i pe ecran imaginea unui raport, se poate s nu o vede i ntreag pe ecran i dac o mic ora i s-ar putea s nu o mai vede i clar. 2. Valorile din raport nu se pot modifica. 3. Rapoartele nu pot da o vedere tabelar ; cu ele singurele prelucr ri sunt design, print preview i print. 4. Se poate crea un raport neasociat unui tabel (real sau fictiv - vedere) ca acesta fiind gazda unor subrapoarte nelegate ntre ele. 5. Prin dialogul din <printer Setup> se poate adapta dimensiunea raportului la dimensiunea hrtiei. 6. n rapoartele multicoloan num rul, l imea i distan a dintre coloane este controlat de acela i Printer Setup nu din faza de proiectare. D m, n continuare, asem n ri ntre rapoarte i formulare. 1. Func ia lui <Report Wizard> este analoag cu cea a lui <Form Wizard > i pute i crea trei tipuri e rapoarte: cu o singur coloan , cu grupare i eventual totalizare i etichete pentru coresponden . 2. n raport g sim, ca i n formular, sec iunile de antet i de picior de pagin , dar utilizarea lor este mult mai frecvent . 3. Sec iunile grupurilor, din rapoarte, sunt echivalente cu sec iunea de detaliu din formular. Grupurile(denumite i benzi) pot avea propriul lor antet Group Header i propriul subsol - Group Footer - , care sunt folosite pentru denumirea grupului, respectiv pentru totaluri de grup. Am v zut i la formulare posibilit i de grupare. 4. Rapoartele pot avea subrapoarte ca i formularele. 7.2Crearea unui raport imediat.

74

Pentru a crea un raport imediat selecta i din meniul principal <Tabels> tabelul carte, apoi din <New Object> op iunea <Auto Report> ca n ecranul urm tor:

E C R A N 116

Cu clic sau Enter va apare:

E C R A N 117

A a cum v-am mai spus, nu se vede tot! Pute i s parcurge i toat lista ncerca i! Putem s facem i 75

7.3 Crearea unui raport cu ajutorul Wizardului. Selecta i, din meniul principal, tabelul carte i din <New Object> op iunea <Report>. Se ob ine:

E C R A N 118

Se alege <Report Wizard> i se ob ine:

E C R A N 119

76

n acest ecran se pot alege cmpurile dorite cum am f cut i la formulare. Dup <Next> apare:

E C R A N 120

Alege i aici gruparea dup nreditura i dup <Next> vom avea:

E C R A N 121

Aici pute i indica ordinea de sortare (n exemplul nostru dup titlu) i ave i posibilitatea de a face sum ri, dar asta vom vedea mai trziu.

77

E C R A N 122

Dup <Next> apare:

E C R A N 123

De aici alege i aranjarea grupurilor n pagin . V sf tuiesc s ncerca i toate modurile. Dup <Next> vine:

78

E C R A N 124

Din acest ecran se alge tipul fondului:

E C R A N 125

Cu <Finish> ajungem la:

79

E C R A N 126

Nu se v d n ntregime unele cmpuri, dar am nv at deja s modific m formulare; la fel putem modifica corespuz tor acest raport. Vom face acum un 7.4 Raport de sintez . O s cre m mai nti cererea comenzi. Aten ie! Raportul trebuie s aib la baz un tabel sau o cerere. tim deja s cre m o cerere a a c pornim de la ecranul: E C R A N 127

n seria de ecrane de creare a raportului (care seam n cu altele parcurse pn acum) o s punct m numai ecranele mai importante: 80

E C R A N 128

E C R A N 129

81

E C R A N 130

E C R A N 131

Dup <Finish> se ob ine:

82

E C R A N 132

Dac vrem totaluri, n proiectare de la ecranul:

E C R A N 133

Facem clic pe <Summary Options> i ob inem:

83

E C R A N 134

Cred c v descurca i aici ca s ob ine i sumarea pe Expr1. acum raportul va ar ta a a:

E C R A N 135

Se pot vedea la ion ion toate nivelele de sumare, iar dac da i la sfr it, o s vede i i totalul general <Grand total>. 7.5 Crearea etichetelor. 84

Dac vre i s edita i etichete cu numele i adresa clien ilor pentru a fi lipite pe pachetele cu c r i, pute i proceda astfel: Din meniul principal, selecta i tabelul client. Din <New Object> selecta i <Report> i din acesta <Label Wizard>. E C R A N 136

Dup <OK> apare:

E C R A N 137

Dup ce a i fixat m rimea etichetei i num rul de etichete pe acela i rnd cu <Next> ob ine i: 85

E C R A N 138

Unde alege i fontul i dimensiunea scrisului. Dup <Next>:

E C R A N 139

Aici alege i cmpurile pe care le vre i n etichet . Cu <Next>:

86

E C R A N 140

Avem ecranul n care ne fix m op iunile de sortare.

E C R A N 141

i dup <Finish>:

87

E C R A N 142

Dac nu v place modifica i-l cum a i nv at s ias a a:

E C R A N 143

88

CAPITOLUL 8 PROIECTAREA UNUI MENIU n acest capitol vom nv a s :  Cre m un buton  Leg m butonul de o ac iune. Am v zut, n capitolul 3, ecranul 17, c ac iunile unui sistem sunt concentrate ntr-unul sau mai multe ecrane legate, ceea ce constitui un meniu eventual cu submeniuri. Totul ncepe de la crearea unui buton care are ata at o ac iune n momentul n care este ap sat butonul. Ca s crea i un asemenea buton deschide i un formular nou cu <Design View>: 8.1 Crearea unui buton.

E C R A N 144

Dup selectare apare:

89

E C R A N 145

Acesta este un spa iu n care vom proiecta butonul folosind <Tool Box-ul> de pe bara din stnga ecranului. Selecta i de acolo butonul i , dup ap sare, pute i s l duce i pe ecran n locul dorit.

E C R A N 146

Ecranul va ar ta :

90

E C R A N 147

8.2 Legarea butonului de o ac iune. Select m, de aici, <Form Operation> i <Open Form> i dup <Next> apare:

E C R A N 148

De aici select m formularul pe care vrem s l deschid butonul, n exemplul nostru autor. Dup <Next> vedem:

91

E C R A N 149

i dup nc un <Next>:

E C R A N 150

n acest ecran cu butonul de selec ie, select m <Text> i n c su a corespunz toare punem textul deschide autor. Se ob in succesiv ecranele:

92

E C R A N 151

E C R A N 152

Dup <Next> i <Finish>:

93

E C R A N 153

P r sim ecranul dnd nume (buton autor). Dac deschide i formularul buton autor va apare:

E C R A N 154

Selectnd acest buton se va deschide formularul autor:

94

E C R A N 155

Exist i alte modalit i de a face butoane i de a le lega de o ac iune. Cititorul este ndemnat s descopere singur i alte posibilit i. Dup ce a i g sit cea mai convenabil , crea i-v meniul pentru aplica ia pe care am construit-o mpreun .

95

CAPITOLUL 9 Proiectul logic n acest capitol vom vedea, pe un exemplu, cum se proiecteaz un sistem cu baz de date rela ional . Vom proiecta un sistem cu baz de date pentru gestiunea unui cabinet de consiliere i orientare a elevilor. 9.1 Pasul 1: Proiectarea logic a bazei de date rela ionale:

Pasul 1.1. Identificarea tipurilor de entit i


n urma studierii documentelor implicate n cadrul gestiunii cabinetului de consiliere i orientare a elevilor se disting urm toarele entit i: j Elev j Psiholog j Membrii_familiei j Fi _individual j Tr s turi_individuale j Metode_psihodiagnostice j Factori j Procese_psihice n documentarea tipurilor de entit i includem o descriere am nun it fiec rei entit i: Nume tip de entitate Elev a

Descriere To i elevii care au solicitat serviciile cabinetului de consultare i orientare a elevilor Psiholog Totalitatea psihologilor care activeaz n cadrul cabinetului Membrii_familiei To i membrii familiei unui elev Fi _individual Toate datele legate de eviden a elevilor din cadrul cabinetului de consiliere i orientare colar Tr s turi_individuale Totalitatea tr s turilor individuale ale unui elev Metode_psihodiagnostice Totalitatea metodelor psihodiagnostice care i-au fost aplicate unui elev Factori Totalitatea factorilor care intervin n metodele psihodiagnostice Procese_psihice Totalitatea proceselor psihice care determin tr s turile individuale

Pasul 1.2. Identificarea tipurilor de rela ii. Tipurile de rela ii care intervin ntre tipurile de entit i prezente n sistem sunt expuse n continuare:
96

Tip de entitate Elev Psiholog Fi _indivdual Metode_psihodiagnostice Tr s turi_individuale

Tip de rela ie de ine completeaz con ine informa ii despre con ine informa ii despre con ine informa ii despre determin au sunt compuse din

Tip de entitate Fi _indivdual Fi _indivdual Membrii_familiei Tr s turi_individuale Metode_psihodiagnostice Tr s turi_individuale Factori Procese

Determinarea cardinalit ii i a particip rii tipurilor de rela ii: Cardinali tate Participa re Tip de entitate Tip de rela ie Tip de entitate

Elev Psiholog Fi _indivdual Fi _indivdual Fi _indivdual Metode_psihodiagnostice Metode_psihodiagnostice Tr s turi_individuale

de ine completeaz con ine informa ii despre con ine informa ii despre con ine informa ii despre determin au sunt compuse din

Fi _indivdual Fi _indivdual Membrii_familiei Tr s turi_individuale Metode_psihodiagnostice Tr s turi_individuale Factori Procese

1:1 1:N M:N M:N M:N M:N 1:N 1:N

T:T P:T T:T T:T T:T T:T P:T P:T

Pasul 1.3. Identificarea i atribuirea de atribute la tipurile de entit i i


tipurile de rela ii atributelor. Tip entitate
Elev

i determinarea domeniilor de defini ie a

Atribut Cod_elev Nume Prenume Data_na terii Jude ul Localitatea Strada Num r Bloc Scara Apartament coal Sex Vrst Telefon CNP 97

Domeniu AutoNumber Text(50) Text(50) Date/Time Text(30) Text(30) Text(30) Number Text(10) Text(1) Number Text(50) Text(1) Number Number Number

Psiholog

Fi _indivdual

Membrii_familiei

Tr s turi_individuale Proces

Alte_observa ii Cod_psiholog Nume Prenume Specializare Data_na terii Nr_fi Cod_elev Data_ntocmirii Cod_tr s turi Cod_psiholog Cod_metoda Id_membru Tip_familie Rel_ntre_p rin i Rel_elev_p rin i Rel_elev_fra i Conduita_la_lec ii Stil_de_munc Activitatea_n_cadrul_clasei Conduita_n_familie Antecedente Boli_ereditare Greutate n l ime Diagnostic Clasa Medie_generala Alte_observa ii Id_membru Nume Prenume Jude ul Localitatea Strada Num r Bloc Scara Apartament Calitatea_membrului Sex Varsta Ocupatie Cod_tr s tur Nume_tr s tur Cod_proces Nume_proces 98

Memo Autonumber Text(30) Text(30) Text(40) Date/Time Autonumber Number Date/Time Number Number Number Number Text(30) Memo Memo Memo Memo Text(50) Text(50) Memo Memo Memo Number Number Text(30) Text(5) Number Memo Autonumber Text(30) Text(30) Text(30) Text(30) Text(30) Number Text(10) Text(1) Number Text(10) Text(1) Number Text(30) Autonumber Text(20) Autonumber Text(20)

Metode_psihodiagnostice

Factor

Cod_trasatura Cod_metod Nume_metod Punctaj_brut Punctaj_standard Interpretare Cod_trasatura Profil_psihologic Concluzii Cod_factor Nume_factor Cod_metoda

Number Autonumber Text(20) Number Number Text(30) Number Memo Memo Autonumber Text(20) Number

Pentru n elegerea domeniilor atributelor din tabelul anterior, sunt explica i termenii folosi i: Text(x) este un text sau combina ii de texte i numere, dimensiunea fiind de x caractere Memo este un text de mare dimensiune cum sunt descrieri sau note Number- reprezint un num r Autonumber este un num r cu incrementare automat Alte tipuri de atribute (cmpuri) a i v zut n capitolul 4.

Pasul 1.4. Determinarea atributelor care compun cheile candidate


primare. Urm torul tabel prezint cheile ce intervin n cadrul sistemului: Tip de entitate Elev Chei candidat Cod_elev CNP Psiholog Cod_psiholog CNP Fi _individual Nr_fi Membrii_familiei Cod_familie Tr s turi_individuale Cod_tr s tur Procese Cod_proces Metode_psihodiagnostice Cod_metod Factori Cod_factor Cheie primar Cod_elev Cod_psiholog Nr_fi Cod_familie Cod_tr s tur Cod_proces Cod_metod Cod_factor

99

Pasul 1.5. Desenarea diagramei entity-relationship:


Elev 1 Psiholog 1

1 Fi _individual N 1 Fi _metode 1 N Metode_psihodiagnostice 1 N Factori N

N N 1 Fi _trasaturi 1 1 Fi _trasaturi 1 N Membrii_familiei

N Tr s turi_individuale 1 N Procese

Trebuie s reactualizam i lista atributelor pentru tipurile de entit i: Fisa_trasaturi, Fisa_metode i Fisa_membrii . Tip entitate Fisa_trasaturi Fisa_metode Fisa_membrii Atribut Cod_fis_tra Nr_fisa Cod_trasatura Cod_fis_met Nr_fisa Cod_metoda Cod_fis_mem Nr_fisa Id_membru Domeniu AutoNumber Number Number Autonumber Number Number Autonumber Number Number

100

Pasul 2.1. Proiectarea modelului conceptual pe un model logic local 1. Eliminarea rela iilor N:M. 2. Eliminarea rela iilor complexe. 3. Eliminarea rela iilor recursive. 4. Eliminarea rela iilor cu atribute. 5. Eliminarea rela iilor de tip 1:1. Nu este cazul exemplului nostru. Acesta nu con ine astfel de tipuri de rela ii.

6. Eliminarea rela iilor redundante. Pasul 2.2 Crearea rela iilor pentru modelul logic local. Entit i tari: Elev(Cod_elev, Nume, Prenume, Data_na terii, Jude ul, Localitatea, Strada, Num r, Bloc, Scara, Apartament, coal , Sex, Vrst , Telefon, CNP,Alte_observatii)
Cheie primara: Cod_elev Psiholog(Cod_psiholog, Nume, Prenume, Specializare, Data_na terii) Cheie primara: Cod_psiholog

Membrii_familiei(Id_membru, Nume, Prenume, Jude ul, Localitatea, Strada, Num r, Bloc, Scara, Apartament, Calitatea_membrului, Sex, Varsta, Ocupatie)
Cheie primara:Id_membru

Trasaturi individuale(Cod_tr s tur , Nume_tr s tur )


Cheie primara: Cod_trasatura

Metode_psihodiagnostice(Cod_metod , Nume_metod , Punctaj_standard, Interpretare, Profil_psihologic, Concluzii)


Cheie primara: Cod_metoda Entit i slabe:

Punctaj_brut,

Proces (Cod_proces, Nume_proces, Cod_trastura)


Cheie primara: Cod_process Cheie str in : Cod_tr s tur

Factor(Cod_factor, Nume_factor, Cod_metod )


Cheie primara: Cod_factor Cheie str in : Cod_metod Fi _indivdual ( Nr_fi ,

Cod_elev, Data_ntocmirii, Cod_psiholog, Tip_familie, Rel_ntre_p rin i, Rel_elev_p rin i, Rel_elev_fra i, Conduita_la_lec ii, Stil_de_munc , Activitatea_n_cadrul_clasei, Conduita_n_familie, Antecedente, Boli_ereditare, Greutate, n l ime, Diagnostic, Clasa, Medie_generala, Alte_observa ii)
Cheie primara: Nr_fisa Cheie straina: Cod_elev, Cod_psiholog

101

Fisa_trasaturi (Cod_fis_tra, Nr_fisa,Cod_trasatura)


Cheie primara: Cod_fis_tra Cheie str in : Nr_fisa, Cod_tr s tur

Fisa_metode(Cod_fis_met, Nr_fisa,Cod_metoda)
Cheie primara: Cod_fis_met Cheie str in : Nr_fisa, Cod_metoda

Fisa_membrii(Cod_fis_mem, Nr_fisa, Id_membru)


Cheie primara: Cod_fis_mem Cheie str in : Nr_fisa, Id_membru

Pasul 2.3 Validarea modelului, utiliznd normalizarea. Pentru teoria legat de normalizare cititorul este ndrumat spre [1], [2], [3]. Forma normal 1 n aceast etap , de normalizare, se urm re te eliminarea grupurilor repetitive din fiecare tabel. Analiznd fiecare tabel se observ c nu exist grupuri repetitive, deci baza de date este n forma normal 1. Forma normal 2 O rela ie este n 2NF dac este n 1NF i orice atribut este complet dependent de cheie. Forma normal 2 se verific doar la rela iile care au o cheie compus pe pozi ia de cheie primara. Dac pentru o rela ie, cheia primara se compune dintr-un singur atribut atunci ea este n form normal 2. Tabelele bazei de date din sistemul nostru au chei primare care se compun dintr-un singur atribut, n concluzie toate rela iile sunt deja n form normal 2. Forma normal 3 O rela ie este n 3NF dac este n 2NF i nu exista nici un atribut care s nu apar in cheii primare i care s fie tranzitiv dependent de cheia primar . Examinnd rela iile n forma normal de mai sus, observ m c nu exist dependen e tranzitive. Deci rela iile sunt n form normal 3. Pasul 2.4 Validarea modelului utiliznd tranzac iile. Tranzac iile cerute de utilizator sunt: T1. Crearea i modificare nregistr rilor despre un anumit elev Datele personale ale unui elev sunt memorate n tabela ELEV. Cheia primar pentru acest tabel este Cod_elev. n momentul n care se ncearc introducerea unui nou elev n baza de date, se verific automat dac acesta exist , caz n care sunt afi ate datele elevului i este permis modificarea anumitor date precum: Adresa, Nume, Prenume. tergerea unui elev din baza 102

de date nu este permis , acest lucru datorndu-se faptului c s-ar putea pierde datele despre membrii familiei elevului respectiv. T2. Listarea elevilor consilia i de un psiholog Tranzac ia poate fi rezolvat f cnd o c utare dup : Psiholog::Nume=nume psiholog Psiholog::Nume,Prenume Psiholog:: Cod_psiholog Fisa_individual ::Cod_psiholog Fi _individual ::Cod_elev Elev::Cod_elev Elev::Nume,Prenume T3. Listarea psihologilor care lucreaz n cadrul cabinetului de la o anumit dat (au completat fi e individuale) Fi _individual ::Data_ntocmirii>data Fisa_individual ::Cod_psiholog Psiholog:: Cod_psiholog Psiholog::Nume,Prenume T4. Listarea metodelor psihodiagnostice aplicate unui elev Elev::Nume=nume_elev Elev::Nume,Prenume Elev::Cod_elev Fi _individual ::Cod_elev Fi individual :: Nr_fisa Fisa_metoda:: Nr_fisa Fisa_metoda:: Cod_metoda Metode_psihodiagnostice:: Cod_metoda Metode_psihodiagnostice:: Nume_metoda T5. Listarea tr s turilor individuale ale unui elev Elev::Nume=nume_elev Elev::Nume,Prenume Elev::Cod_elev Fi _individual ::Cod_elev Fi individual :: Nr_fisa 103 Fisa_trasatura:: Nr_fisa

Fisa_trasatura:: Cod_tr s tur Tr s turi_individuale:: Cod_tr s tur Tr s turi_individuale:: Nume_tr s tur T6. Listarea membrilor familiei unui elev Elev::Nume=nume_elev Elev::Nume,Prenume Elev::Cod_elev Fi _individual ::Cod_elev Fi individual :: Nr_fisa Fisa_membrii::Nr_fisa Fisa_membrii::Id_membru Membrii_familiei:: Id_membru Membrii_familiei:: Nume, Prenume T7. Listarea factorilor care intervin n cadrul unei metode psihodiagnostice Metode_psihodiagnostice:: Nume=nume Metode_psihodiagnostice::Cod_metoda Factor:: Cod_metoda Factor::Nume_factor T8. Listarea proceselor care influen eaz o tr s tur individuale Tr s turi_individuale:: Nume_tr s tura=Nume Tr s turi_individuale:: Cod_tr s tur Proces::Cod_tr s tur Proces:: Nume_proces T9. Listarea unor date personale despre to i elevii (Nume, Prenume, Data_nasterii, coala, Localitate, Diagnostic) Elev::Cod_elev Elev::Nume,Prenume, Data_nasterii,Scoala,Localitatea Fisa_individuala::Cod_elev Fisa_individuala::Diagnostic Pasul 2.5 Desenarea diagramei E-R n cazul nostru aceast diagram nu se modific Pasul 2.6 Definirea regulilor de integritate ale bazei de date. Necesitatea datelor: 104

Aceste reguli le-am identificat deja, cnd am documentat atributele n pasul 1.3. Reguli asupra domeniului atributelor. Domeniile de defini ie au fost deja identificate cnd am documentat domeniile atributelor n pasul 1.3. Integritatea entit ilor. Aceste reguli au fost deja identificate, cnd am documentat cheile primare n pasul 1.4. Integritatea rela iilor. Elev(Cod_elev, Nume, Prenume, Data_na terii, Jude ul, Localitatea, Strada, Num r, Bloc, Scara, Apartament, coal , Sex, Vrst , Telefon, CNP,Alte_observatii)
Cheie primara: Cod_elev Psiholog(Cod_psiholog, Nume, Prenume, Specializare, Data_na terii) Cheie primara: Cod_psiholog Fi _indivdual ( Nr_fi , Cod_elev, Data_ntocmirii, Cod_psiholog,

Tip_familie, Rel_ntre_p rin i, Rel_elev_p rin i, Rel_elev_fra i, Conduita_la_lec ii, Stil_de_munc , Activitatea_n_cadrul_clasei, Conduita_n_familie, Antecedente, Boli_ereditare, Greutate, n l ime, Diagnostic, Clasa, Medie_generala, Alte_observa ii)
Cheie primara: Nr_fisa Cheie straina: Cod_elev Nenul , Cascad , referindu-se la Elev(.) Cod_psiholog Nenul , Cascad , referindu-se la Psiholog(...)

Trasaturi individuale(Cod_tr s tur , Nume_tr s tur ,)


Cheie primara: Cod_trasatura

Proces (Cod_proces, Nume_proces)


Cheie primara: Cod_process Cheie straina: Cod_tr s tur Nenul , Cascad , referindu-se la

Trasaturi individuale(Cod_tr s tur , Nume_tr s tur ,) Metode_psihodiagnostice(Cod_metod , Nume_metod , Punctaj_brut, Punctaj_standard, Interpretare, Profil_psihologic, Concluzii)
Cheie primara: Cod_metoda

Factor(Cod_factor, Nume_factor, Cod_metod )


Cheie primara: Cod_factor Cheie straina: Cod_metod Nenul , Cascad , referindu-se la

Metode_psihodiagnostice(...) Membrii_familiei(Id_membru, Nume, Prenume, Jude ul, Localitatea, Strada, Num r, Bloc, Scara, Apartament, Calitatea_membrului, Sex, Varsta, Ocupatie)
Cheie primara:Id_membru

Fisa_membrii(Cod_fis_mem, Nr_fisa, Id_membru)


Cheie primara: Cod_fis_mem Cheie str in : Nr_fisa Nenul , Cascad , referindu-se la Fisa_individuala() Id_membru Nenul , Cascad , referindu-se la

Membrii_familiei() Fisa_trasaturi (Cod_fis_tra, Nr_fisa,Cod_trasatura)


Cheie primara: Cod_fis_tra Cheie str in : Nr_fisa Nenul , Cascad , referindu-se la Fisa_individuala() Cod_trasaturi Nenul , Cascad , referindu-se la

Trasaturi individuale(...) 105

Fisa_metode(Cod_fis_met, Nr_fisa,Cod_metoda)
Cheie primara: Cod_fis_met Cheie str in : Nr_fisa Nenul , Cascad , referindu-se la Fisa_individuala() Cod_metoda Nenul , Cascad , referindu-se la

Metode_psihodiagnostice()

Diagrama E-R final :


Elev 1 Psiholog 1

1 Fi _individual N 1 Fi _metode 1 N Metode_psihodiagnostice 1 N Factori N

N N 1 Fi _trasaturi 1 N Membrii_familiei

1 Fi _trasaturi 1

N Tr s turi_individuale 1 N Procese

Partea II Scurt prezentare a aplica iei implementat Access

n SGBD-ul

Baza de date a fost implementat n Access. Aici rela iile dintre entit i sunt descrise astfel:

106

n momentul deschiderii bazei de date ConsiliereSiOrientare.mdb se va deschide meniul principal numit MainBoard. Acesta arat astfel:

107

Principalele op iuni sunt: y Deschide board-ul pentru formulare:

cu ajutorul c ruia se vor deschide toate formularele din baza de date. 108

Deschide board-ul pentru vizualizat rapoarte:

cu ajutorul c ruia pot fi vizualizate rapoartele. 9.2 Realizarea help-ului pentru aplica ie Aplica ia realizat n Access ofer suport pentru utilizatorii aplica iei. Help-ul utilizat n cadrul aplica iei a fost realizat folosind utilitarul Shalom, aceasta pentru a descrie modul n care pot fi folosite diferitele formulare de introducere a datelor. Pentru a avea acces la explica iile suplimentare realizate cu ajutorul programului Shalom, sub forma unui fi ier numit Help.hlp, utilizatorul poate ap sa butonul F1 sau poate folosi butonul <Wats this> cu care sunt nzestrate majoritatea formularelor. Exemplu:

109

Dup efectuarea unui click n cmpul respectiv se va deschide urm toarea fereastr :

Acela i efect ar fi putut fi realizat dac cursorul se afla n cmpul Data Intocmire i se ap sa tasta F1. 110

Aplica ia are mai multe niveluri de help, explica ii suplimentare putnd fi ob inute astfel: prin tooltip-uri; n momentul n care pozi ion m cursorul mouse-ului deasupra unui text box din cadrul unui form i l l s m pentru cteva secunde vor ap rea informa ii suplimentare referitoare la cmpul respectiv prin informa ii n status bar n momentul n care focus-ul este ntr-unul din elementele unui formular, n status bar vor ap rea informa ii referitoare la cmpul respectiv

111

BIBLIOGRAFIE [1] Connoly T., Begg C., Strachan A., Data base systems, Addison Wesley, 1997 [2] Harrington J.L., Relational database design, AP Professional, 1998. [3] Iacob P., Baze de date, Curs Univ. Transilvania Bra ov, 2003 [4] Iacob P., Ghid de proiectare a bazelor de date rela ionale, Univ. Transilvania Bra ov, 1997 [5] Iacob P. Baze de date pentru ncep tori, Ed. Univ. Pite ti, 2000

112

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