Baze Incepatori

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

Descărcați ca doc, pdf sau txt
Descărcați ca doc, pdf sau txt
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 Entiti, atribute, chei. 2.2 Diagrama ER (Entitate relaie.) CAPITOLUL 3 Primii pai n baze de date relaionale 3.1 Crearea unei baze de date relaionale folosind resurse ACCESS. 3.2 Popularea bazei de date folosind formulare. 3.3 Filtrarea nregistrrilor 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, protecia i nchiderea bazei de date CAPITOLUL 5 Cereri i vederi asupra bazei de date 5.1 Crearea unei relaii 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.1Asemnri 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 aciune. CAPITOLUL 9 Proiect de sistem cu baz de date 9.1 Proiectarea logic a bazei de date Relaionale. 9.2 Realizarea help-ului pentru aplicaie 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 viaa de toate zilele. Un dicionar, 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 dicionar de structuri sau meta-date (informaii despre structuri) i creeaz o interdependen ntre datele propriu-zise i programe. n funcie de modul de organizare a informaiilor se cunosc trei tipuri de baze de date: relaional, ierarhic, n reea. Din punctul de vedere al ntelegerii bazelor de date, cel mai simplu este tipul relaional. Sistemul de baze de date relaional are aceeai 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 informaii n baza de date, actualizarea i extragerea datelor din baza de date, controlul i autorizarea accesului la date, precum i asigurarea unei independene ntre structura bazei de date i programele de aplicaie. Bazele de date constituie un univers deosebit de atragtor. De la apariia conceptului de baz de date (cnd, aceasta, era vzut ca o colecie de fiiere) pn n prezent (cnd vorbim de modelul relaional), acesta a avut o extraordinar evoluie, din punct de vedere al coninutului. Evoluia sa extraordinar s-a datorat att dezvoltrii deosebite a fundamentelor teoretice cu privire la reprezentarea i regsirea datelor, ct i realizrii a numeroase sisteme de gestiune a bazelor de date, ceea ce a fcut posibil utilizarea pe scara larg n diverse domenii ale activitii sociale a produselor program, avnd la baz aceste sisteme. Fundamentarea teoriei bazelor de date pornete de la necesitatea definirii modelelor de date, modelul relaional constituind unul dintre cele mai importante dintre aceste modele. ntr-un asemenea model, datele sunt memorate sub forma de relaii, un element al unei relaii reprezentnd un obiect al lumii reale. Esena modelului relaional al bazelor de date l constituie teoria dependenelor. Cteva din avantajele modelului relaional sunt urmtoarele: datele sunt reprezentate simplu i uor de regsit; ofer posibilitatea utilizrii limbajelor de programare de nivel nalt pentru acces la date; realizarea integritii i confidenialitii datelor; posibilitatea de realizare a unei mulimi diverse de aplicaii; existena unei metodologii de proiectare a bazelor de date. n prezentul volum autorul cadru didactic la Catedra de Informatic Teoretic a Facultii de Matematic i Informatic din Universitatea Transilvania Braov - si propune ca, beneficiind de o foarte bogat experien n abordarea teoretic i aplicativ a bazelor de date, n activitatea desfurat cu studenii, s pun la dispoziia cititorului, doritor s se iniieze n baze de date, elementele practice necesare acestei iniieri. Aadar 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 nceptori cartea noastr [5] scris n cadrul proiectului TEMPUS IB_JEP 14186-99. Am simit nevoia de mprosptare pentru c, ntre timp SGBD ACCESS a evoluat i proiectul exemplu din carte era incomplet. Am adugat, de asemenea, crearea unui meniu (capitolul 8) i modul de apelare a unui macro (capitolul 6, ecranele 111 - 116). Mulumesc soiei mele Mirela, care m-a ajutat cu sfaturi i corectura crii.

CAPITOLUL I INTRODUCERE Foarte mult lume discut sau chiar folosete noiunea de Sisteme cu baz de date, dar n afar de preiozitatea exprimrii, muli dintre acetia cred c o colecie oarecare de fiiere, n orice limbaj care permite o prelucrare, ar fi suficient pentru nevoile afacerii, dac pregtirea 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 lipsete? Lipsete nelegerea distinct a ceea ce nseamn un Sistem cu baze de date i lipsete proiectarea n acord cu aceast nelegere. Exemplu de proiectare incorect Pentru nelegerea facil a unor definiii teoretice care vor urma, o s prezentm un exemplu. Firma Lectura inteligent vinde cri 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 clienii mai vechi. n urma reclamei primete comenzi pe care le satisface ulterior. Bul, biatul patronului, elev strlucit la Liceul de Informatic, a creat o metod simpl (i eficient pentru nceput) de manipulare a comenzilor i vnzrilor, pe care a denumit-o baz de date. Cititorul i va da seama c titlul este pretenios. Autorul i propune s descopere mpreun cu cititorul defectele acestei abordri, aprute pe msur 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 localitii (patru cifre) cu primele trei litere ale numelui i cu un numr de ordine ( cinci cifre) .Deci Popescu Ion al 35-lea client din Braov va avea identificatorul 220000800035. Acest cod, dup cum se vede, asigur unicitatea unui identificator pentru clieni. Cum se desfoar activitatea? Pe baza unui catalog clientul comand una sau mai multe cri. Cnd cartea este disponibil (se afl n depozit) este trimis la toi cei care au comandat-o i n csua comand satisfcut se marcheaz un X. La prima vedere totul este simplu, n regul, i treaba chiar a funcionat o vreme. Scopul nostru este s observm care sunt defectele unui asemenea proiect. Defectul numrul 1 Baza de date conine multe date duplicate: - numele, adresa, ., unui client apar de cte ori acesta comand o nou carte - titlul, autorii apar de cte ori este comandat aceiai carte i ce dac sunt date duplicate? - se ocup mai mult loc pe mediul de stocare - scrierea de mai multe ori a aceluiai 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 regsite n baza de date ce va face ca anumii clieni s nu fie satisfcui, de aici decurgnd o serie ntreag de probleme. Soluia ar fi s eliminm pe ct posibil duplicrile sau, atunci cnd ne permite, acestea s fie corecte (consistente). O proiectare corect a unei baze de date rezolv aceast problem. Defectul numrul 2 Pentru c firma fcea catalogul manual, cu un consum mare de munc necalificat, s-a pus problema editrii catalogului direct din baza de date. Dar din aceast baz de date este imposibil de realizat aa ceva pentru c: - baza de date nu conine toate datele care fac posibil alegerea unei cri. (lipsete un scurt coninut, de exemplu) - prin adugare am ajunge s accentum 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 cri care nu au fost comandate de nimeni i aceast problem nu poate fi rezolvat cu acest sistem. Defectul numrul 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 informaia despre carte o s pierdem adresele tuturor clienilor care au comandat numai aceea carte i deci nu vom putea trimite catalogul la o mulime de clieni posibili. Defectul numrul 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 acelai client pe dou adrese de aici posibila duplicare a pachetelor sau trimiterea unui pachet la o adres greit. n acest curs vom nva s proiectm corect o baz de date astfel nct s evitm apariia acestor defecte. Proiectul nu este suficient pentru a rezolva problema. Datele sunt depuse n calculator mpreun cu relaiile dintre ele ntr-un mod fizic care nun e intereseaz n acest moment. Noi vrem s exprimm cerine asupra bazei de date n limbajul proiectului. Traducerea din acest limbaj, cutarea i editarea rezultatelor este treaba Sistemului de Gestiune al Bazei de Date prescurtat SGBD. {90% din calculatoarele funcionale n acest moment sunt echipate cu Microsoft Office deci, pentru a putea aplica aproape oriunde cele nvate o s nvm s utilizm SGBD Microsoft ACCES }

CAPITOLUL 2 ELEMENTE DE PROIECTARE A BAZEI DE DATE 2.1 Entiti, atribute, chei. n introducere am vzut c actualizarea datelor despre clieni sau a datelor despre cri este dificil n concepia iniial. Aceast deficien a aprut pentru c au fost puse mpreun date despre trei lucruri distincte: clieni, cri i comand. Astfel de lucruri vor fi numite de acum nainte entiti. Entitatea este ceva despre care se memoreaz date. Clienii i crile sunt entiti tangibile (tari), comenzile nu pot exista fr celelalte dou, ele nu sunt tangibile dei 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 concretizrile acestei entiti, adic reprezentanii sau instanele entitii. Pe fiecare linie nu vom avea chiar reprezentanii entitii ci numai date care caracterizeaz din punctual de vedere al aplicaiei reprezentanii entitii; aceste date se numesc atribute. Deci o entitate din viaa real genereaz ntr-o baz de date relaional un tabel ale crui coloane au ca nume atributele entitii, iar pe linii succesive se gsesc valorile atributelor pentru fiecare reprezentant al entitii n parte. De exemplu: entitatea CARTE are atributele: id carte, titlu, autor, editura, pre, n exemplul dat sunt trei reprezentani ai acestei entiti, iar fiecare celul a acestui tabel reprezint o valoare a atributului corespunztor coloanei pentru reprezentantul corespunztor 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 cri vom avea n tabel 10.000 de linii pe care ar fi memorate valorile atributelor entitii 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 Braov Cluj Iai 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 clieni cu acelai nume cum vom determina care este cel care a comandat o anumit carte? Am vzut care sunt inconvenientele crerii unui cod mixt cum a fost cel iniial. Am mai putea folosi pentru identificatori numele plus numrul de telefon, dar n acest caz avem multe caractere i rmn problemele legate de actualizri; de exemplu schimbarea numrului de telefon. Un astfel de atribut, simplu sau obinut prin concatenare care identific unic o instan a unei entiti se va numi cheie. Aa cum recomand practica i autorii Harrington [2] vom crea chei printr-un numr generat succesiv i unic n special pentru persoane, locuri, lucruri etc. Rmn situaii n care este nevoie de chei concatenate. Existena unei chei care s identifice unic reprezentanii unei entiti este o regul esenial de integritate a datelor. ntr-un model relaional (de care ne ocupm n mod special) este esenial ca atributele s aib valori unice, adic fiind dat o instan a unei entiti, un anumit atribut trebuie s aib o singur valoare. De exemplu un client poate avea un singur numr de telefon. Dac lsm mai multe locuri, mrim inutil i neproporional baza de date deci n cazul acestei necesiti trebuie creat o nou entitate numr de telefon cu mai multe instane. 2.2 Diagrama ER (Entitate relaie.) Odat stabilite entitile i atributele ele trebuie s rmn pe un document; de fapt toat activitatea de proiectare trebuie documentat. Pe lng tabelele pe care le putem gsi 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-relaie). O prezentm 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 relaiile ntre entiti. Iat cum arat, n prim instan, entitile reproiectate pentru societatea Lectura inteligent. Client * nr client nume prenume ora strad nr cod potal telefon Comad * nr comand nr client dat Carte * nr carte clasificare titlu ediie data apariiei pre gen Editur * nr editur nume adres ora strad numr cod potal 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 urmtoarele simboluri: CHARx text de x caractere, x 256 INTx numr ntreg de x cifre DECIMALx.z numr 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 combinaie a precedentelor BOOLEAN valoarea logic (adevrat sau fals) n baza de date se vor introduce i relaii ntre entitile, care sunt de fapt realizate ntre instane. Vom enumera n continuare tipurile de relaii care se pot stabili ntre entiti: Relaii 1 la 1 Este cazul relaiei din cstoria dintre dou posibile entiti brbai i femei (nu n rile islamice) Relaii 1 la n Sunt cele mai frecvente. Exemplu la o editur pot fi mai multe cri, dar o anumit carte provine de la o singur editur. Relaii n la m ntre comenzi i cri. ntr-o comand pot fi mai multe cri i aceeai carte poate s apar n mai multe comenzi. Acest tip de relaii nu este uor de mnuit i o astfel de relaie este transformat n dou relaii 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 entiti ntre care exist relaia de n la m. Relaiile vor fi descrise n diagramele E-R cu linii ntre entiti care vor fi ntretiate 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: relaia ntre comenzi i cri Carte Comad * nr comand nr client dat 0 | * nr carte clasificare titlu ediie data apariiei pre gen

O comand conine cel puin o carte, dar o carte poate s nu fie comandat de nimeni, totui este o relaie de tip n la m. ea poate fi transformat prin introducerea entitii detaliu comand n: Carte Comad Detaliu comad * nr carte || | 0 | | clasificare * nr comand * nr comand titlu nr client * nr carte ediie dat data apariiei pre gen Deci diagrama final ntr-o proiectare corect ar fi: Client * nr client nume prenume ora strad nr cod potal telefon Editur * nr editur nume adres ora strad numr cod potal telefon pers contact

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

=
0

Carte * nr carte clasificare titlu ediie data apariiei pre gen

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

S observm c: - cheia n entitatea comand este numrul de comand care apare n mod natural pe acest document. - cheia n entitile de legtur detaliu comand i carte autor, introduce pentru a distruge relaiile n la m, este format din concatenarea celor dou chei ale entitilor legate i nu creaz probleme de actualizare. O baz de date relaional are la baz relaia, care poate fi considerat ca un tabel (reprezentarea unei entiti) cu linii (instane ale entitilor), i coloane (atribute). Bineneles c ntre tabele trebuie s existe legturi. Aceste legturi sunt realizate prin disciplina: cheie primar cheie strin Cheia primar este cheia unei relaii, iar cheia strin este atributul (de obicei cu acelai nume ) de acelai tip cu cheia primar i cu valori care se pun n coresponden cu cele ale cheii primare. Pentru ca o baz de date relaional s fie corect, trebuie ca baza de date s ndeplineasc anumite restricii: - restricia de unicitate a cheii - restricia referenial valorile cheii strine trebuie s figureze printre valorile cheii primare sau s aib valoarea NUL - restricia entitii valorile cheii primare sunt unice i nu pot fi NUL - restricia de domeniu valorile atributelor pot fi NUL sau din domeniul de definiie. Gsii n capitolul 9 un exemplu de proiectare a unei baze de date relaionale. Un alt exemplu se poate gsi n Iacob[5].

11

CAPITOLUL 3 Primii pai n baze de date relaionale O s crem o baz de date relaional folosind resurse ACCESS. O s populm aceast baz de date folosind formulare. O s listm componente ale bazei de date folosind criterii logice (filtrare). O s salvm i o s nchidem baza de date. 3.1 Crearea unei baze de date relaionale folosind resurse ACCESS. Pentru a lansa SGBS-ul ACCESS trebuie s avei instalat pe PC-ul vostru Microsoft Office Profesional. Dup ce ai pornit calculatorul va aprea pe ecran ceva n stilul:

E C R A N 1

Cu clic pe butonul stng al mouse-ului poziionat pe <Start> se obine:

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 obine ecranul:

E C R A N 3

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

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> obinem:

E C R A N 6

De aici alegem <Create> i obinem: 14

E C R A N 7

Apsnd succesiv pe <Next> obinem 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 declaneaz crearea bazei de date cu defilarea unor ecrane de tipul:

E C R A N 14

Dup ce se termin aceast operaie se obine: 18

E C R A N 15

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

E C R A N 16

Cnd prsii acest ecran cu clic pe Information> obinei: 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 fcnd clic pe <Enter/View Products>. De exemplu:

E C R A N 18

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

E C R A N 19

Acum este cazul s introducei mai multe produse n fiecare categorie pe care o alegei. V propun cel puin 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>. Observai c data apare cu valoarea iniial = 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 nregistrri corespunztoare 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 obine aa ceva:

22

E C R A N 23

Am mai introdus o factur:

E C R A N 24

Observai c, dac revenii n <products>, putei veda cte cri i cnd au fost primite:

23

E C R A N 25

E C R A N 26

Revenind n meniul principal (prsirea 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 obinem:

24

E C R A N 27

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

E C R A N 28

1)

De aici putem vedea rapoarte cu : comparaii de cost al produselor <Product cost Comparisons>(atenie la aspect! Studiai n acest sens bara de meniu de sus)

25

E C R A N 29

2)

cumprri pe furnizor

E C R A N 30

3)

Informaii despre stoc:

26

E C R A N 31

4) E C R A N 32

detalii despre tranzacii:

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

un ecran n care se vede c au fost filtrate nregistrrile i au rmas numai cele dou cri introduse.

E C R A N 33

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

E C R A N 34

Formularul s-a golit. Selectai valorile de filtrare i facei clic pe plnia din bara de sus; o s apar doar nregistrrile filtrate. De exemplu, selectnd din <Cathegory> geanta, din <Product name> poeta fifi se obine:

28

E C R A N 35

29

CAPITOLUL 4 Crearea unei noi baze de date n acest capitol vom nva: s crem o nou baz de date vid. s crem i o s modificm tabele. s adugm atribute cu anumite proprieti. s specificm chei. s crem relaii ntre tabele. s populm tabele. s salvm 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

Obinem ceva de tipul:

30

E C R A N 37

Dai un nume viitoarei baze de date i facei clic pe <Create>. Se obine:

E C R A N 38

4.2 Crearea i o modificarea tabelelor. Vom prefera <Create table n design view>. Dai Enter i putei crea prima tabel. Vom crea mai nti tabela client cu numele fiecrui atribut i selectnd tipul de atribut. Se poate vedea n ecranul urmtor c la nr_client am dat tipul <Auto number>. Aceasta nseamn c la fiecare nou client sistemul va aduga un nou cod mrind cu 1 codul maxim de pn atunci; bineneles 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

Fcnd clic pe <X.> obinei:

E C R A N 40

Dai Enter i n ecranul care urmeaz dai numele noii tabele.

32

E C R A N 41

Cu clic pe<OK> se obine ecranul 42. Este momentul s tii mai multe despre tipurile de date pe care le putem ataa 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> numr care poate fi ntreg sau fracionar ca n tabelul urmtor:

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> legturi 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 csu de lisare sau un combo dup cum vom vedea mai departe.

33

E C R A N 42

Sistemul nu v las s cerai tabela fr a defini o cheie. Apsai pe <YES>, selectai tabela client selectai din bara de sus <Design view> i definii cheia ca fiind nr_client. Dac avei un autonumber cheia se va defini automat.

E C R A N 43

Crem 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

Observai 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

Aa cum se poate vedea n ecranul 47, putem, n partea de jos a ecranului, s specificm proprieti ale cmpurilor: - <Field Size> definete lungimea unui text n numr 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> ataeaz un ablon la care trebuie s se potriveasc datele de intrare. Putei ataa o astfel de masc apelnd la wizard prin butonul marcat cu <> 37

<Caption> - ceea ce scriei aici va aprea ca nume al cmpului n toate editrile 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 construiete cu Wizard-ul o expresie care las s intre n tabel numai valorile corecte. - <Validation Text> dac expresia anterioar nu este corect se afieaz textul . - <Allow Zero Length> se aplic la texte unde se poate pune spaiu 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 fcnd clic pe <Add> de fiecare dat. Dup ce le-ai adugat pe toate facei clic pe <Close> i vei obine:

E C R A N 52

Putem rearanja tabelele pe ecran prin drag and draw. Apsm cu bubonul stng al mouse-ului pe numele tabelei i, fr s dm drumul butonului, deplasm imaginea n poziia dorit. Aranjai acum ecranul astfel nct s obinei ecranul 53.

39

E C R A N 53

n acest ecran vom face legturile tot cu drag and draw. Legtura trebuie fcut ntre atribute din cele dou tabele; atributele trebuie s fie de acelai tip (tipul autonumber se poate lega cu number long integer). Se ia un atribut din partea cu 1 a legturii (vezi diagrama de la pag ), i se trage la atributul corespunztor din cealalt tabel. De exemplu, trgnd nr_editura din editura peste acelai atribut din carte se obine:

E C R A N 54

40

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

E C R A N 55

Se obine:

E C R A N 56

n acest mod vom face toate legturile din diagrama de la pag 10 i obinem: 41

E C R A N 57

Prsim, ca de obicei, acest ecran i putem verifica sau modifica aceste relaii urmnd acelai 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 obine:

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 exerciiu bun este s introducei 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 uor de respectat integritatea referenial, aa cum se poate vedea n tabelele 18 - 26 i n capitolul 6. 4.4 Salvarea, protecia i nchiderea bazei de date 44

Tot ce construii n ACCESS este dus automat pe disc; informaiile se pot pierde totui dac nu s-a fcut corect <Shut Down> la nchiderea calculatorului. Se pune ns problema s pstrm o copie a bazei de date, fie ntr-un alt folder, fie pe dischet. Pentru aceasta, din meniul principal, apsnd pe <File> se obine:

E C R A N 63

Aici, cu clic pe <Save As> se obine:

E C R A N 64

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

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

Dup clic aici putei s punei parola care va fi cerut de cte opri deschidei aceast baz de date. Atenie s nu uitai parola!

46

CAPITOLUL 5 Cereri i vederi asupra bazei de date Putem lista liniile unui tabel, aa cum am fcut pn acum, dar avem urmtoarele inconveniente: s-ar putea s nu avem nevoie de toate liniile ci numai de unele care ndeplinesc anumite condiii am nvat deja s facem acest lucru prin filtrare s-ar putea s nu ne trebuiasc toate cmpurile s-ar s avem nevoie de informaii combinate din mai multe tabele (de exemplu cnd listm o carte s avem nevoie i de numele editurii i de numele autorilor am putea s crem tabele aa cum avem nevoie, dar am descoperit toate neajunsurile unui asemenea mod de organizare n primul capitol. Exist soluie ? Bine neles! Soluia se numete vedere (view) care nseamn un tabel fictiv cu care se pot face o serie de operaii, fr 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 cri, aa c vom adopta a doua cale. Cererile care utilizeaz mai multe tabele fac apel la relaiile pe care le-am stabilit n capitolul 4 (ecranele 50 57). n acest capitol o s nvm: S crem o relaie pentru a defini o list de alegeri (care este rezultatul unei cereri) S crem o cerere simpl (dintr-un singur tabel) Sa crem o cerere utiliznd mai multe tabele ntre care exist relaii S modificm o cerere S adugm cmpuri calculate S facem grupuri 5.1 Crearea unei relaii pentru a defini o list de alegeri. O s observm nti c dac vrem s nu greim cnd introducem editor unei cri trebuie s o lum dintre editurile existente sau, dac acest editur nu exist, s o adugm 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> - selectm <> i se deschide ecranul 67. 47

E C R A N 66

E C R A N 67

Aici vom proiecta o cere astfel: Selectm tabelul editura Selectm <.Add> i tabelul se mut sus Ieim selectnd <Close> din subecran

48

E C R A N 68

Dup ce am ieit, selectm 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 legtura cu tabelul carte, cum am declarat n Bound Column. Selecia 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 opiunea <Ascending> pentru ca editurile s fie listate n combo box n ordine alfabetic cresctoare.

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 modificrilor. n bara de sus selectm < Insert> apoi <Form> i obinem:

E C R A N 70

Alegem <Form Wizard> i <OK> ca s ncepem un proces de generare a unui formular anticipnd puin coninutul capitolului 6. v 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 selectm butonul . > >> Dup <Next> apare ecranul: 50

E C R A N 72

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

E C R A N 73

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

51

E C R A N 74

Aici, dup ce am selectat <Open >, selectm <Finish> i obinem:

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 toate crile pe rnd cu butonul nainte sau cu napoi trece la prima carte cu butonul

|
52

sau la ultima cu

sau putem introduce o nou nregistrare cu

Se poate vedea cum funcioneaz combo boxul selectnd corespunztor din cmpul nreditura.

E C R A N 76

5.2 Crearea unei cereri simple. Dac vrem s crem un tabel fictiv numai cu clienii din Braov o s crem o cerere n felul urmtor. Din meniul principal selectm <Querys>. Apare: E C R A N 77

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

E C R A N 78

Selectm, din tabel, tabelul client fcnd clic pe <Add>. Dup <Close> apare ecranul:

E C R A N 79

De aici putem selecta, cum am vzut deja, cmpurile de care avem nevoie. De asemenea selectm ordinea cresctoare a numelor i , la <Criteria> scriem =brasov ,pentru a pune n tabelul fictive numai clienii Braoveni. 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 coninutul tabelului fictive pe care tocmai l-am creat. Bineneles c trebuia mai nti s introducei date i c trebuie s avei cel puin un client cu oraul brasov.

55

E C R A N 82

Dac vrem, de exemplu, s crem un tabel cu clienii i crile comandate de acetia, informaia nu poate fi luat dintr-un singur tabel aa c trebuie s tim s facem 5.3 Crearea unei cereri utiliznd mai multe tabele. Selectm, ca mai nainte, <Querys>, < Create Query n Design view >, adugm cu <Add> tabelele client, comanda, detaliu_comanda i carte, dup care obinem:

E C R A N 83

56

Selectm, aici, nume, prenume,titlu ca n tabelul urmtor:

E C R A N 84

Prsim dnd numele client carte.

E C R A N 85

Dac vrem s vedem, ca mai nainte, rezultatul, obinem:

57

E C R A N 86

Vrem, acum, s aflm i valoarea crilor comandate de fiecare client i s ordonm clienii dup aceast valoare. Selectm, exact ca mai nainte, cmpurile nume i prenume, din aceleai tabele, i adugm un cmp calculat valoare=nr_bucati*pret. Cu clic pe butonul drept al mouse-ului pe partea de <Sort> se obine:

E C R A N 87

Cu clic pe <Totals> trecem n ecranul urmtor: 58

E C R A N 88

Se vede aici c nregistrrile vor fi grupate dup nume i prenume. De aici cu clic pe butonul care a aprut sub valoare n linia <Totals> obinem:

E C R A N 89

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

59

E C R A N 90

Ieim de aci, ca de obicei, dnd nume acestei cereri clienti cu valori. Procedm 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 vzut, n capitolul 3, ecranele 20 23, un mod mai prietenos de introducere a datelor. Asemenea operaii 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 plcut i imediat, informaii ca suport pentru decizii. n acest capitol vom nva : S crem formulare simple S crem formulare imediate S modificm formulare S crem formulare cu subformulare 6.1 Crearea unui formular simplu. Un formular simplu poate fi creat pe baza unui tabel sau a unei cereri. S selectm, de exemplu, tabelul autor, n meniul principal, i cu clic pe <Insert> obinem: E C R A N 91

Cu clic pe <Form> de declaneaz crearea formularului pe care, dac l deschidei, apar listai autorii:

61

E C R A N 92

Aici putem face modificri 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 acelai formular se poate obine ca formular instantaneu. Selectm tabelul autor i din bara de sus selectm <New Object>:

E C R A N 93

Cu clic pe <AutoForm> obine: 62

E C R A N 94

Acest formular conine i subformular unde vedei i numrul crilor scrise de autorii respectivi. Dac nu ne place cum arat, putem modifica formularul. n stnga sus, sub <File>, selectm butonul de proiectare.

E C R A N 95

63

De aici selectm <Design View> i apare:

E C R A N 96

Putei mri fereastra ecranului n dreapta , n jos , sau n amndou direciile deodat, agnd sgeile de pe margini i trgndu-le n direcia dorit. Cu clic pe eticheta prenume_autor se obine:

E C R A N 97

64

Putem, aici, s schimbm textul etichetei sau s o deplasm ntr-o alt zon. S vedem dac ai neles filozofia acestei aplicaii; putei s aducei formularul la forma urmtoare?

E C R A N 98

Am vzut deja n capitolul 5, ecranele 70 75, cum se creaz formulare n modul asistat (cu Wizard-ul). Putei acum s descoperii cu se poate aduga la un formular antet i picior de pagin. 6.2 Subformulare. n cadrul unui formular se poate crea un subformular. Am vzut deja asta n ecranul 95 i n ecranul 18. O s crem un suformular la formularul carte ca s vedem i autorii crii listate. Crem mai nti o cerere pe baza creia se va crea subformularul. Cererea se face aa cum am nvat deja. Ajungei n ecranul:

E C R A N 99

65

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

Rearanjm ecranul fcnd loc subformularului i selectm din bara de sus butonul pentru tool box i , de acolo cel pentru subformular.

E C R A N 101

66

Dup aceasta, cu butonul stng al mouse-ului apsat, putei trasa spaiul pentru subformular. Cnd ai lsat butonul vei fi n ecranul:

E C R A N 102

Selectm <Next> i apare:

E C R A N 103

67

De aici lum Query:autor pe carte i se obine:

E C R A N 104

Prelum n subformular toate cmpurile:

E C R A N 105

68

Dup <Next> :

E C R A N 106

i iari <Next>:

E C R A N 107

69

Apoi cu <Finish> se obine:

E C R A N 108

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

6.3 Crearea unui macro. Acesta este un formular n care se pot vedea crile cu autorii lor. 70

Am vzut n capitolul 3 ecran 20 c prin dublu clic pe <employee> aprea formularul pentru introducerea unui nou angajat. Dac vrem s introducem o carte dintr-o editur care este nou pentru noi, am putea s prsim 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 incomod i, dup modelul amintit din capitolul 3, vom nva s declanm un formular la dublu clic pe numele editurii. n proiectare pe formularul carte, cu butonul drept al mouse-ului, se obine:

E C R A N 110

De aici, cu clic pe <Properties>, se obine:

E C R A N 111

71

Acum, pe <Event>, selectm <On double clic> i facem clic pe se obine:

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 urmtor selectm <Open Form> ca n:

72

E C R A N 114

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

E C R A N 115

Alegem , din list, numele formularului - editura i, dup clic, nchidere i salvare, formularul carte funcioneaz aa cum am vrut.

73

CAPITOLUL 7 Rapoarte i etichete. Produsul principal al informaiilor din baza de date este un raport. Raportul este destinat tipririi, adic editrii pe hrtie care se pstreaz o perioad de timp mai lung. Diferenele de suport (ecran fa de hrtie) genereaz o serie ntreag de diferene. n acest capitol vom nva: S crem un raport imediat S crem un raport cu ajutorul asistentului (Report Wizard) S facem grupri i sinteze S tiprim etichete pentru coresponden 7.1Asemnri i deosebiri ntre rapoarte i formulare. O s prezentm mai nti deosebirile. 1. Rapoartele sunt destinate tipririi i nu sunt concepute pentru a fi afiate ntr-o fereastr. Dac vrei s vedei pe ecran imaginea unui raport, se poate s nu o vedei ntreag pe ecran i dac o micorai s-ar putea s nu o mai vedei clar. 2. Valorile din raport nu se pot modifica. 3. Rapoartele nu pot da o vedere tabelar; cu ele singurele prelucrri 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 numrul, limea i distana dintre coloane este controlat de acelai Printer Setup nu din faza de proiectare. Dm, n continuare, asemnri ntre rapoarte i formulare. 1. Funcia lui <Report Wizard> este analoag cu cea a lui <Form Wizard > i putei crea trei tipuri e rapoarte: cu o singur coloan, cu grupare i eventual totalizare i etichete pentru coresponden. 2. n raport gsim, ca i n formular, seciunile de antet i de picior de pagin, dar utilizarea lor este mult mai frecvent. 3. Seciunile grupurilor, din rapoarte, sunt echivalente cu seciunea 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 vzut i la formulare posibiliti de grupare. 4. Rapoartele pot avea subrapoarte ca i formularele. 74

7.2Crearea unui raport imediat. Pentru a crea un raport imediat selectai din meniul principal <Tabels> tabelul carte, apoi din <New Object> opiunea <Auto Report> ca n ecranul urmtor:

E C R A N 116

Cu clic sau Enter va apare:

E C R A N 117

75

Aa cum v-am mai spus, nu se vede tot! Putei s parcurgei toat lista ncercai! Putem s facem i 7.3 Crearea unui raport cu ajutorul Wizardului. Selectai, din meniul principal, tabelul carte i din <New Object> opiunea <Report>. Se obine:

E C R A N 118

Se alege <Report Wizard> i se obine:

E C R A N 119

76

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

E C R A N 120

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

E C R A N 121

77

Aici putei indica ordinea de sortare (n exemplul nostru dup titlu) i avei posibilitatea de a face sumri, dar asta vom vedea mai trziu.

E C R A N 122

Dup <Next> apare:

E C R A N 123

78

De aici alegei aranjarea grupurilor n pagin. V sftuiesc s ncercai toate modurile. Dup <Next> vine:

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 vd n ntregime unele cmpuri, dar am nvat deja s modificm formulare; la fel putem modifica corespuztor acest raport. Vom face acum un 7.4 Raport de sintez. O s crem mai nti cererea comenzi. Atenie! Raportul trebuie s aib la baz un tabel sau o cerere. tim deja s crem o cerere aa c pornim de la ecranul: E C R A N 127

80

n seria de ecrane de creare a raportului (care seamn cu altele parcurse pn acum) o s punctm numai ecranele mai importante:

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

82

Dup <Finish> se obine:

E C R A N 132

Dac vrem totaluri, n proiectare de la ecranul:

E C R A N 133

83

Facem clic pe <Summary Options> i obinem:

E C R A N 134

Cred c v descurcai aici ca s obinei sumarea pe Expr1. acum raportul va arta aa:

E C R A N 135

84

Se pot vedea la ion ion toate nivelele de sumare, iar dac dai la sfrit, o s vedei i totalul general <Grand total>. 7.5 Crearea etichetelor. Dac vrei s editai etichete cu numele i adresa clienilor pentru a fi lipite pe pachetele cu cri, putei proceda astfel: Din meniul principal, selectai tabelul client. Din <New Object> selectai <Report> i din acesta <Label Wizard>. E C R A N 136

Dup <OK> apare:

E C R A N 137

85

Dup ce ai fixat mrimea etichetei i numrul de etichete pe acelai rnd cu <Next> obinei:

E C R A N 138

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

E C R A N 139

86

Aici alegei cmpurile pe care le vrei n etichet. Cu <Next>:

E C R A N 140

Avem ecranul n care ne fixm opiunile de sortare.

E C R A N 141

i dup <Finish>: 87

E C R A N 142

Dac nu v place modificai-l cum ai nvat s ias aa:

E C R A N 143

88

CAPITOLUL 8 PROIECTAREA UNUI MENIU n acest capitol vom nva s: Crem un buton Legm butonul de o aciune. Am vzut, n capitolul 3, ecranul 17, c aciunile 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 ataat o aciune n momentul n care este apsat butonul. Ca s creai un asemenea buton deschidei 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 spaiu n care vom proiecta butonul folosind <Tool Box-ul> de pe bara din stnga ecranului. Selectai de acolo butonul i , dup apsare, putei s l ducei pe ecran n locul dorit.

E C R A N 146

90

Ecranul va arta :

E C R A N 147

8.2 Legarea butonului de o aciune. Selectm, de aici, <Form Operation> i <Open Form> i dup <Next> apare:

E C R A N 148

91

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

E C R A N 149

i dup nc un <Next>:

E C R A N 150

92

n acest ecran cu butonul de selecie, selectm <Text> i n csua corespunztoare punem textul deschide autor. Se obin succesiv ecranele:

E C R A N 151

E C R A N 152

Dup <Next> i <Finish>: 93

E C R A N 153

Prsim ecranul dnd nume (buton autor). Dac deschidei 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 modaliti de a face butoane i de a le lega de o aciune. Cititorul este ndemnat s descopere singur i alte posibiliti. Dup ce ai gsit cea mai convenabil, creai-v meniul pentru aplicaia 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 relaional. 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 relaionale:

Pasul 1.1. Identificarea tipurilor de entiti


n urma studierii documentelor implicate n cadrul gestiunii cabinetului de consiliere i orientare a elevilor se disting urmtoarele entiti: Elev Psiholog Membrii_familiei Fi_individual Trsturi_individuale Metode_psihodiagnostice Factori Procese_psihice n documentarea tipurilor de entiti includem o descriere amnunit a fiecrei entiti: Nume tip de entitate Elev Descriere Toi elevii care au solicitat serviciile cabinetului de consultare i orientare a elevilor Psiholog Totalitatea psihologilor care activeaz n cadrul cabinetului Membrii_familiei Toi membrii familiei unui elev Fi_individual Toate datele legate de evidena elevilor din cadrul cabinetului de consiliere i orientare colar Trsturi_individuale Totalitatea trsturilor 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 trsturile individuale 96

Pasul 1.2. Identificarea tipurilor de relaii. Tipurile de relaii care intervin ntre tipurile de entiti prezente n sistem sunt expuse n continuare:

Tip de entitate Elev Psiholog Fi_indivdual Metode_psihodiagnostice Trsturi_individuale

Tip de relaie deine completeaz conine informaii despre conine informaii despre conine informaii despre determin au sunt compuse din

Tip de entitate Fi_indivdual Fi_indivdual Membrii_familiei Trsturi_individuale Metode_psihodiagnostice Trsturi_individuale Factori Procese

Determinarea cardinalitii i a participrii tipurilor de relaii: Cardinal itate Participa re Tip de entitate
Elev Psiholog Fi_indivdual Fi_indivdual Fi_indivdual Metode_psihodiagnostice Metode_psihodiagnostice Trsturi_individuale

Tip de relaie
deine completeaz conine informaii despre conine informaii despre conine informaii despre determin au sunt compuse din

Tip de entitate
Fi_indivdual Fi_indivdual Membrii_familiei Trsturi_individuale Metode_psihodiagnostice Trsturi_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 entiti i


tipurile de relaii i determinarea domeniilor de definiie a atributelor. Tip entitate
Elev

Atribut Cod_elev Nume Prenume Data_naterii Judeul Localitatea Strada Numr Bloc Scara 97

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

Psiholog

Fi_indivdual

Membrii_familiei

Apartament coal Sex Vrst Telefon CNP Alte_observaii Cod_psiholog Nume Prenume Specializare Data_naterii Nr_fi Cod_elev Data_ntocmirii Cod_trsturi Cod_psiholog Cod_metoda Id_membru Tip_familie Rel_ntre_prini Rel_elev_prini Rel_elev_frai Conduita_la_lecii Stil_de_munc Activitatea_n_cadrul_clasei Conduita_n_familie Antecedente Boli_ereditare Greutate nlime Diagnostic Clasa Medie_generala Alte_observaii Id_membru Nume Prenume Judeul Localitatea Strada Numr Bloc Scara Apartament Calitatea_membrului Sex 98

Number Text(50) Text(1) Number Number Number 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)

Trsturi_individuale Proces Metode_psihodiagnostice

Factor

Varsta Ocupatie Cod_trstur Nume_trstur Cod_proces Nume_proces Cod_trasatura Cod_metod Nume_metod Punctaj_brut Punctaj_standard Interpretare Cod_trasatura Profil_psihologic Concluzii Cod_factor Nume_factor Cod_metoda

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

Pentru nelegerea domeniilor atributelor din tabelul anterior, sunt explicai termenii folosii: Text(x) este un text sau combinaii de texte i numere, dimensiunea fiind de x caractere Memo este un text de mare dimensiune cum sunt descrieri sau note Number- reprezint un numr Autonumber este un numr cu incrementare automat Alte tipuri de atribute (cmpuri) ai vzut n capitolul 4.

Pasul 1.4. Determinarea atributelor care compun cheile candidate i


primare. Urmtorul 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 Trsturi_individuale Cod_trstur Procese Cod_proces Metode_psihodiagnostice Cod_metod Factori Cod_factor Cheie primar Cod_elev Cod_psiholog Nr_fi Cod_familie Cod_trstur 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 Trsturi_individuale 1 N Procese

Trebuie s reactualizam i lista atributelor pentru tipurile de entiti: 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 relaiilor N:M. 2. Eliminarea relaiilor complexe. 3. Eliminarea relaiilor recursive. 4. Eliminarea relaiilor cu atribute. 5. Eliminarea relaiilor de tip 1:1. Pasul 2.2 Crearea relaiilor pentru modelul logic local. Entiti tari: Elev(Cod_elev, Nume, Prenume, Data_naterii, Judeul, Localitatea, Strada, Numr, Bloc, Scara, Apartament, coal, Sex, Vrst, Telefon, CNP,Alte_observatii)
Cheie primara: Cod_elev Psiholog(Cod_psiholog, Nume, Prenume, Specializare, Data_naterii) Cheie primara: Cod_psiholog

Nu este cazul exemplului nostru. Acesta nu conine astfel de tipuri de relaii.

6. Eliminarea relaiilor redundante.

Membrii_familiei(Id_membru, Nume, Prenume, Judeul, Localitatea, Strada, Numr, Bloc, Scara, Apartament, Calitatea_membrului, Sex, Varsta, Ocupatie)
Cheie primara:Id_membru

Trasaturi individuale(Cod_trstur, Nume_trstur)


Cheie primara: Cod_trasatura

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


Cheie primara: Cod_metoda Entiti slabe:

Punctaj_brut,

Proces (Cod_proces, Nume_proces, Cod_trastura)


Cheie primara: Cod_process Cheie strin: Cod_trstur

Factor(Cod_factor, Nume_factor, Cod_metod)


Cheie primara: Cod_factor Cheie strin: Cod_metod

101

Fi_indivdual(Nr_fi,

Cod_elev, Data_ntocmirii, Cod_psiholog, Tip_familie, Rel_ntre_prini, Rel_elev_prini, Rel_elev_frai, Conduita_la_lecii, Stil_de_munc, Activitatea_n_cadrul_clasei, Conduita_n_familie, Antecedente, Boli_ereditare, Greutate, nlime, Diagnostic, Clasa, Medie_generala, Alte_observaii)
Cheie primara: Nr_fisa Cheie straina: Cod_elev, Cod_psiholog

Fisa_trasaturi (Cod_fis_tra, Nr_fisa,Cod_trasatura)


Cheie primara: Cod_fis_tra Cheie strin: Nr_fisa, Cod_trstur

Fisa_metode(Cod_fis_met, Nr_fisa,Cod_metoda)
Cheie primara: Cod_fis_met Cheie strin: Nr_fisa, Cod_metoda

Fisa_membrii(Cod_fis_mem, Nr_fisa, Id_membru)


Cheie primara: Cod_fis_mem Cheie strin: 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 urmrete 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 relaie este n 2NF dac este n 1NF i orice atribut este complet dependent de cheie. Forma normal 2 se verific doar la relaiile care au o cheie compus pe poziia de cheie primara. Dac pentru o relaie, 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 relaiile sunt deja n form normal 2. Forma normal 3 O relaie este n 3NF dac este n 2NF i nu exista nici un atribut care s nu aparin cheii primare i care s fie tranzitiv dependent de cheia primar. Examinnd relaiile n forma normal de mai sus, observm c nu exist dependene tranzitive. Deci relaiile sunt n form normal 3. Pasul 2.4 Validarea modelului utiliznd tranzaciile. Tranzaciile cerute de utilizator sunt: 102

T1. Crearea i modificare nregistrrilor 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 afiate datele elevului i este permis modificarea anumitor date precum: Adresa, Nume, Prenume. tergerea unui elev din baza de date nu este permis, acest lucru datorndu-se faptului c s-ar putea pierde datele despre membrii familiei elevului respectiv. T2. Listarea elevilor consiliai de un psiholog Tranzacia poate fi rezolvat fcnd o cutare 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 fie 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 trsturilor individuale ale unui elev Elev::Nume=nume_elev 103

Elev::Nume,Prenume Elev::Cod_elev Fi_individual::Cod_elev Fi individual:: Nr_fisa Fisa_trasatura:: Nr_fisa Fisa_trasatura:: Cod_trstur Trsturi_individuale:: Cod_trstur Trsturi_individuale:: Nume_trstur 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 influeneaz o trstur individuale Trsturi_individuale:: Nume_trstura=Nume Trsturi_individuale:: Cod_trstur Proces::Cod_trstur Proces:: Nume_proces T9. Listarea unor date personale despre toi elevii (Nume, Prenume, Data_nasterii, coala, Localitate, Diagnostic) Elev::Cod_elev Elev::Nume,Prenume, Data_nasterii,Scoala,Localitatea Fisa_individuala::Cod_elev 104

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: Aceste reguli le-am identificat deja, cnd am documentat atributele n pasul 1.3. Reguli asupra domeniului atributelor. Domeniile de definiie au fost deja identificate cnd am documentat domeniile atributelor n pasul 1.3. Integritatea entitilor. Aceste reguli au fost deja identificate, cnd am documentat cheile primare n pasul 1.4. Integritatea relaiilor. Elev(Cod_elev, Nume, Prenume, Data_naterii, Judeul, Localitatea, Strada, Numr, Bloc, Scara, Apartament, coal, Sex, Vrst, Telefon, CNP,Alte_observatii)
Cheie primara: Cod_elev Psiholog(Cod_psiholog, Nume, Prenume, Specializare, Data_naterii) Cheie primara: Cod_psiholog Fi_indivdual(Nr_fi, Cod_elev, Data_ntocmirii, Cod_psiholog,

Tip_familie, Rel_ntre_prini, Rel_elev_prini, Rel_elev_frai, Conduita_la_lecii, Stil_de_munc, Activitatea_n_cadrul_clasei, Conduita_n_familie, Antecedente, Boli_ereditare, Greutate, nlime, Diagnostic, Clasa, Medie_generala, Alte_observaii)
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_trstur, Nume_trstur,)


Cheie primara: Cod_trasatura

Proces (Cod_proces, Nume_proces)


Cheie primara: Cod_process Cheie straina: Cod_trstur Nenul, Cascad, referindu-se la

Trasaturi individuale(Cod_trstur, Nume_trstur,) 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, Judeul, Localitatea, Strada, Numr, 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

105

Cheie strin: 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 strin: Nr_fisa Nenul, Cascad, referindu-se la Fisa_individuala() Cod_trasaturi Nenul, Cascad, referindu-se la

Trasaturi individuale(...) Fisa_metode(Cod_fis_met, Nr_fisa,Cod_metoda)


Cheie primara: Cod_fis_met Cheie strin: 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 1 Fi_trasaturi 1 N Membrii_familiei

N Trsturi_individuale 1 N Procese

Partea II Scurt prezentare a aplicaiei implementat n SGBD-ul Access


Baza de date a fost implementat n Access. Aici relaiile dintre entiti sunt descrise astfel:

106

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

107

Principalele opiuni sunt: Deschide board-ul pentru formulare:

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

Deschide board-ul pentru vizualizat rapoarte:

cu ajutorul cruia pot fi vizualizate rapoartele. 9.2 Realizarea help-ului pentru aplicaie Aplicaia realizat n Access ofer suport pentru utilizatorii aplicaiei. Help-ul utilizat n cadrul aplicaiei 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 explicaiile suplimentare realizate cu ajutorul programului Shalom, sub forma unui fiier numit Help.hlp, utilizatorul poate apsa 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 urmtoarea fereastr:

Acelai efect ar fi putut fi realizat dac cursorul se afla n cmpul Data Intocmire i se apsa tasta F1. 110

Aplicaia are mai multe niveluri de help, explicaii suplimentare putnd fi obinute astfel: prin tooltip-uri; n momentul n care poziionm cursorul mouse-ului deasupra unui text box din cadrul unui form i l lsm pentru cteva secunde vor aprea informaii suplimentare referitoare la cmpul respectiv prin informaii n status bar n momentul n care focus-ul este ntr-unul din elementele unui formular, n status bar vor aprea informaii 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 Braov, 2003 [4] Iacob P., Ghid de proiectare a bazelor de date relaionale, Univ. Transilvania Braov, 1997 [5] Iacob P. Baze de date pentru nceptori, Ed. Univ. Piteti, 2000

112

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