Documente Academic
Documente Profesional
Documente Cultură
PROIECT
BAZE DE DATE
2
CAPITOLUL I.
SGBD – ASPECTE FUNDAMENTALE
1.1. Conceptul de SGBD.
Pentru a înţelege noţiunea de SGBD (Sistem de Gestiune a Bazelor de Date, în engleză –
DataBase Management System), în contextul unui SBD (Sistem de Bază de Date), vom studia
definirea, rolul şi evoluţia SGBD-urilor.
a) Definirea unui SGBD
SGBD este un ansamblu complex de programe care asigură interfaţa între o bază de date şi
utilizatorii acesteia.
SGBD este componentă software a unui sistem de bază de date care interacţionează cu toate
celelalte componente ale acestuia, asigurând legătura şi interdependenţa între elementele sistemului
(vezi arhitectura unui SBD)
b) Rolul unui SGBD
Rolul unui SGBD într-un context de sistem de bază de date este de a:
1. defini şi descrie structura bazei de date, care se realizează printr-un limbaj propriu specific,
conform unui anumit model de date;
2. încărca/valida datele în baza de date respectând nişte restricţiile de integritate impuse de
modelul de date utilizat;
3. realiza accesul la date pentru diferite operaţii (consultare, interogarea, actualizare, editare
situaţii de ieşire), utilizând operatorii modelului de date
4. întreţine baza de date cu ajutorul unor instrumente specializate (editoare, utilitare - shells,
navigatoare – browsers, convertoare etc);
5. asigura protecţia bazei de date subaspectul securităţii şi integrităţii datelor.
3
Se spune că o aplicaţie informatică depinde de date, dacă modificarea structurii de memorare a
datelor sau a strategiei de acces la date afectează şi aplicaţia.
Independenţa datelor faţă de aplicaţie poate fi:
- fizică, adică modul de memorare a datelor şi tehnicile fizice de memorare (strategia de acces),
pot fi schimbate fără a rescrie programele (exemplu, se poate face acces secvenţial, apoi se poate
indexa şi face un acces direct);
- logică, adică structura de date poate fi schimbată (deoarece este păstrată în dicţionarul bazei
de date) fără a rescrie programele (exemplu, se poate adăuga în structură un nou câmp).
Necesitatea asigurării independenţei datelor faţă de programele de aplicaţie, de către SGBD,
este dată de următoarele aspecte:
• diferite aplicaţii au nevoie de viziuni diferite ale utilizatorului asupra celorlalte date.
O bază de date este realizată pentru o gamă largă de utilizatori, care au la dispoziţie un volum
mare de date. SGBD-ul trebuie să-i permită la un moment dat unui utilizator să “vadă (să-şi
construiască o viziune) doar o parte din baza de date şi anume numai acele date care îl interesează;
• administratorul bazei de date trebuie să aibă libertatea de a schimba structura de memorare
sau strategia de acces, ca răspuns la cerinţele noi apărute, fără a modifica aplicaţiile existente (sistem
deschis). După darea în folosinţă a unei baze de date pot apare schimbări de standarde sau norme, se
pot modifica priorităţile aplicaţiei, se pot modifica unităţile şi modul de memorare ale datelor etc. Cu
alte cuvinte, dinamica lumii reale înconjurătoare va genera modificări în baza de date. SGBD-ul va
permite aplicaţiei informatice să funcţioneze cu programele existente şi să convertească datele;
Baza de date existentă la un moment dat, precum şi programele de aplicaţie care au fost folosite
o perioadă de timp, reprezintă o investiţie majoră la care nu trebuie să se renunţe prea uşor.
Cheltuielile pentru realizarea unei baze de date sunt mari, iar ele trebuie recuperate integral şi
adus un beneficiu.
5
La nivelul SGBD-ului pot exista o serie de parametri de configurare care influenţează procesul de
restaurare automată. Aceşti parametri se referă la: intervalul de restaurare, indicatorul de restaurare (ce
informaţii vor fi scrise în fişierul de erori) etc.
- Restaurarea manuală a BD implică intervenţia administratorului pentru refacerea bazei de
date de pe un suport tehnic care a fost distrus. Cea mai recentă copie de siguranţă efectuată pentru o
BD afectată este încărcată şi se reiau prelucrările efectuate din momentul copierii până la producerea
defecţiunii. Restaurarea manuală se face prin deconectarea tuturor utilizatorilor de la BD, încărcarea
copiei şi reluarea lucrului.
1.2.5. Partajabilitatea datelor
Partajabilitatea datelor se referă nu numai la aspectul asigurării accesului mai multor utilizatori
la aceleaşi date, ci şi la posibilitatea dezvoltării unor aplicaţii fără a se modifica structura bazei de date.
1.2.6. Legăturile între date
Legăturile între date corespund asocierilor care se pot realiza între obiectele unei aplicaţii
informatice. Orice SGBD trebuie să permită definirea şi descrierea structurii de date, precum şi a
legăturilor dintre acestea, conform unui model de date. Fiecare tip de model de date permite anumite
legături între date. Un SGBD, care implementează un anumit model de date, va trebui să asigure şi
realizarea legăturilor dintre datele corespunzătoare în conformitate cu schema conceptuală.
7
- SGBD pentru calculatoare mari se folosesc pentru baze de date foarte complexe şi foarte mari
(exemple: Oracle, DB2, IMS).
- SGBD pentru minicalculatoare se folosesc pentru baze de date complexe şi mari şi au
cunoscut o dezvoltare puternică în anii ‘80 (exemplu: Oracle).
- SGBD pentru microcalculatoare se folosesc pentru baze de date de complexitate şi de mărime
mici şi medii. Au o mare răspândire în momentul actual (exemple: FoxPro, Oracle, Acces).
Tendinţa actuală este ca SGBD-ul să fie compatibil pe cât mai multe sisteme de calcul sub cât
mai multe sisteme de operare. Acest lucru este dictat de noua tehnologie de realizare de aplicaţii tip
sisteme deschise, lucru de care ţine cont şi noua generaţie (a treia) de SGBD-uri.
- SGBD-ul cu limbaj gazdă este cel care are un limbaj de manipulare a datelor bazat pe unul de
nivel înalt (universal). Limbajul gazdă poate fi chiar un limbaj universal (Cobol, Pascal) sau o extensie
(adaptare) a unui astfel de limbaj. Avantajul acestei soluţii este acela că se pot dezvolta proceduri
complexe de program, se pot realiza interfeţe om-maşină foarte bune, se valorifică experienţa de
programare din limbajele de nivel înalt (toate rezultă din avantajele programării procedurale).
Dezavantajul major este acela că formularea cererilor de regăsire se face mai greu, de multe ori
într-un mod inaccesibil utilizatorilor finali. Acest lucru este suplinit de SGBD prin alte componente
specifice: generatoare, utilitare etc. (exemplu Oracle).
- SGBD-ul cu limbaj propriu (autonom) este cel care are un limbaj de manipulare a datelor
specific. Acest limbaj de programare propriu este procedural şi are marele avantaj că permite
implementarea tuturor facilităţilor oferite de SGBD. În el se pot programa proceduri complexe şi
interfeţe puternice ca într-un limbaj universal, dar în plus se realizează un acces uşor şi optimizat la
baza de date. Dezavantajul este că un astfel de limbaj nu poate fi utilizat decât de specialiştii în
informatică (exemplu limbajul din Visual FoxPro).
- SGBD ierarhice sunt cele care implementează modelul de date arborescent (ierarhic) şi au fost
primele care s-au utilizat pentru gestionarea bazelor de date. Ele au o serie de avantaje pentru domenii
precise din lumea reală înconjurătoare, de exemplu tehnologia construcţiei de maşini, dar au limite
pentru alte domenii (exemplu: IMS).
- SGBD reţea sunt cele care implementează modelul de date reţea şi care au eliminat multe din
limitele celor ierarhice. Ele au o largă aplicabilitate pentru numeroase probleme din lumea reală, dar
sunt dificil de utilizat datorită complexităţii ridicate (exemplu: IDMS).
- SGBD relaţionale sunt cele care implementează modelul de date relaţional şi au aplicabilitate
în majoritatea domeniilor din lumea reală. Ele pot fi folosite de o gamă largă de utilizatori datorită
facilităţilor oferite (generatoare, limbaj neprocedural etc.) (exemple: Oracle, Visual FoxPro, Paradox,
Acces, Informix, Progres).
- SGBD orientate obiect sunt cele care implementează modelul de date orientat obiect. Ele se
pretează bine la problemele foarte mari, de complexitate ridicată, precum şi pentru tipurile noi de
aplicaţii (proiectarea asistată, multimedia, sisteme deschise) (exemple: O2, Orion, Jasmin).
Majoritatea SGBD-urilor actuale au implementate, în ultimele versiuni, facilităţi de tratare a
obiectelor (exemple: Oracle, Visual FoxPro).
- SGBD centralizate sunt cele care gestionează datele amplasate într-o singură bază de date
centrală. La acestea au acces toţi utilizatorii autorizaţi pentru a efectua diferite operaţii de manipulare a
datelor. Toate calculatoarele care nu sunt legate în reţea şi lucrează cu baze de date au instalat un
SGBD centralizat.
8
Tot un SGBD centralizat, dar cu facilităţi de lucru în reţea, trebuie instalat şi în reţelele de
calculatoare care au plasată baza de date pe un singur calculator (de obicei pe server).(exemplu: Visual
FoxPro, Access)
- SGBD distribuite sunt cele care gestionează datele amplasate pe mai multe calculatoare dintr-
o reţea tratându-le ca un tot unitar. Complexitatea acestor SGBD-uri este ridicată, având componente
speciale pentru realizarea conexiunilor şi tratarea distribuită a datelor (exemplu: Oracle, DB2,
Informix).
CAPITOLUL II.
ACCESS – PROGRAMUL MICROSOFT OFFICE PENTRU BAZE DE DATE
Microsoft Access este un program pentru crearea şi administrarea bazelor de date şi beneficiază de toate
facilităţile Microsoft Windows. Este integrat în Microsoft Office permiţând schimbul de informaţii cu alte
aplicaţii din Office.
De asemenea, permite folosirea datelor memorate în diferite baze de date sau create cu alte sisteme de
gestionare a datelor.
Access prezintă şi un mod de lucru asistat, cu multe ferestre de dialog ce uşurează mult munca
utilizatorului.
Microsoft ACCESS îmbină modelul relaţional cu cel orientat spre obiecte, adică organizează relaţional
datele şi este orientat spre obiecte care au asociate evenimente sau proprietăţi. Access-ul delimitează baza de
date şi tabelul.
Principalele sale caracteristici sunt:
este relaţional şi lucrează sub sistemul de operare Windows;
este deschis comunicării cu alte Sisteme de Gestiune a Bazelor de Date cum ar fi FoxPro sau Paradox;
este compatibil cu tehnologia ActiveX, care permite realizarea aplicaţiilor client/server;
permite realizarea unor aplicaţii complexe prin utilizarea limbajului Visual Basic;
permite accesul la baze de date din reţeaua Internet, fiind un instrument util pentru publicarea
informaţiilor în paginile Web;
este autodocumentat prin help, apelabil contextual sau la cerere;
conţine instrumente Wizard care permit utilizatorului crearea într-o manieră foarte simplă a obiectelor
bazei de date;
permite crearea de comenzi rapide (shortcuts) în vederea accesării obiectelor Access;
permite crearea de grupuri de obiecte definite de utilizator în cadrul bazei de date;
permite personalizarea bazei de date;
permite utilizarea obiectelor Access din cadrul altor aplicaţii rulate sub sistemul de operare Windows;
pe baza facilităţii de compactare, se minimizează dimensiunea bazei de date Ia închidere;
se permite crearea de aplicaţii care să utilizeze baze de date stocate în SQL Server, în cadrul unei reţele
de calculatoare.
Access 2003 acceptă o varietate de formate de date, inclusiv Extensible Markup Language (XML),
OLE, Open Database Connectivity (ODBC) şi Microsoft Windows® SharePoint™ Services.
oferă posibilitatea de a lega tabele, astfel încât să putem accesa concomitent informaţii din mai multe
baze de date în cadrul formularelor, rapoartelor şi al paginilor de acces la date din Access 2003. Se pot
lega tabele din alte baze de date Access, foi de calcul Microsoft Excel, surse de date ODBC, baze de
9
date Microsoft SQL Server™ şi din alte surse de date.
oferă posibilitatea de a încorpora în soluţiile Access date bazate pe Microsoft SQL Server. Se poate
utiliza Stored Procedure Designer pentru a crea şi a modifica proceduri simple stocate în SQL Server,
fără să fie necesară cunoaşterea Transact-SQL.
O bază de date Access poate fi definită ca o colecţie de obiecte: tabele, interogări, formulare, rapoarte,
pagini Web, macro comenzi şi module.
Tabela este un obiect definit de utilizator în care sunt stocate datele
primare (expresia modelului relaţional).
Formularul este un obiect care permite introducerea datelor, afişarea acestora sau
controlul întregii aplicaţii.
Interogarea este un obiect care permite vizualizarea informaţiilor obţinute prin
prelucrarea datelor din una sau mai multe tabele şi/sau alte cereri de interogare.
Raportul este un obiect care permite formatarea şi tipărirea informaţiilor obţinute în
urma consultării bazei de date sub formă de documente.
Pagina Web de accesare a datelor reprezintă un obiect care include un fişier HTML şi
alte fişiere suport în vederea furnizării accesului la date prin intermediul browser-elor Internet.
Macro comanda reprezintă un obiect care conţine o definiţie structurată a
uneia sau mai multor acţiuni pe care Access Ie realizează ca răspuns la un anumit eveniment.
Modulul reprezintă un obiect care conţine proceduri definite de
utilizator şi scrise în limbajul de programare Visual Basic.
Trebuie subliniată diferenţa majoră care există între Microsoft Access şi alte sisteme de gestiune a
bazelor de date. Astfel, în Visual FoxPro, prin baze de date (database) se înţeleg doar acele fişiere în care sunt
stocate datele.
Funcţiile SGBD-ului Microsoft Access sunt următoarele:
- funcţia de descriere a datelor este realizată cu limbajul de descriere a datelor pentru definirea
structurii tabelelor şi a relaţiilor dintre acestea ;
- funcţia de manipulare a datelor este realizată cu limbajele de manipulare a datelor în cele trei
variante QBE, SQL, şi VBA ;
- funcţia de securitate a datelor şi lucru în regim utilizator este realizată prin parole şi drepturi de
acces ;
- funcţia de import şi export de date permite importul şi exportul de date între baze de date
diferite ale sistemului ;
- funcţia de menţinere a integrităţii datelor reduce riscul erorii de definire sau înregistrare a
datelor indiferent de volumul acestora prin intermediul unor reguli.
Tipuri de date
La alegerea tipului de date pentru un câmp se va ţine cont de următoarele:
Ce tipuri de date doresc să fie admise în câmp? Spre exemplu, nu se va putea memora text
într-un câmp cu tipul de date Number.
Cât spaţiu doresc să folosesc pentru memorarea valorilor din câmp?
Ce tipuri de operaţii doresc să se execute cu valorile din câmp? Spre exemplu, Microsoft
Access poate aduna valorile din câmpurile Number sau Currency, dar nu şi valorile din
câmpurile Text sau OLE Object.
Doresc sortarea sau indexarea unui câmp? Câmpurile Memo sau OLE Object nu pot fi
sortate sau indexate.
Doresc folosirea unui câmp pentru a grupa articolele din cereri şi rapoarte? Câmpurile
Memo sau OLE Object nu se pot folosi pentru a grupa articolele.
11
Cum doresc să sortez valorile dintr-un câmp? într-un câmp Text, numerele sunt sortate ca
şiruri de caractere (1, 10, 100, 2, 20, 200 s.a.m.d.), nu ca valori numerice. Pentru a sorta
numerele ca valori numerice se folosesc câmpurile Number sau Currency. De asemenea,
multe formate de date calendaristice nu se vor sorta corect. Dacă se introduc într-un câmp
Text; pentru a fi sortate corect se introduc numai într-un câmp Date/Time.
Următorul tabel prezintă toate tipurile de date admise în Microsoft Access, modul lor de
folosire şi dimensiunea de memorare.
12
Wizard valori dintr-o altă tabelă sau dintr-o listă de folosit pentru a executa examinarea, în mod
valori folosind o casetă combo. Alegând această obişnuit 4 bytes.
opţiune, se lansează un Wizard care dirijează
crearea listei.
În general o bază de date conţine mai multe tabele care de regulă sunt asociate, adică au o
relaţie între ele.
Cheia primara identifică în mod univoc fiecare înregistrare dintr-un tabel şi leagă introducerea
unei valori multiple intr-un câmp al cheii primare.
Alegerea cheii primare se face din fereastra Table prin alegerea unui câmp (care urmează a fi
cheia primară) şi executarea unui clic pe simbolul cu acelaşi nume din bara de butoane sau prin
intermediul opţiunii Primary Key din meniul Edit.
Ca rezultat va apare simbolul cheii în stânga denumirii câmpului. Executarea unui nou clic pe
acelaşi simbol îndepărtează cheia primară.
Crearea relaţiilor între tabele
Pentru stabilirea unei relaţii între 2 tabele este nevoie ca acestea să aibă un câmp comun. Există
3 tipuri de relaţii:
1. Relaţie unu la unu sau biunivocă în care fiecărei înregistrări din tabela A îi corespunde cel
mult o înregistrare în tabela B. Acest tip de relaţie se obţine punând acelaşi câmp în ambele tabele, sau
cheia primara din unul va fi preluată drept cheie externă în cel de-al doilea.
2. Relaţie unu la mai mulţi şi în acest caz unei înregistrări din A îi vor corespunde mai multe
înregistrări din B.
3. Relaţia mai mulţi Ia mai mulţi adică o înregistrare din A poate fi în relaţie cu mai multe
înregistrări din B şi invers.
Pentru stabilirea relaţiilor dintre tabele se foloseşte opţiunea Relationships din meniul Tools. La
selectarea acestei opţiuni va apare caseta de dialog Show Table, în care se vor alege tabelele între care
se vor stabili legături prin executarea unui dublu clic asupra denumirii acestuia.
Pentru a stabili o legătură între două tabele trebuie parcurse următoarele etape:
- Se apasă tasta <Ctrl>;
- Se alege câmpul de legătură dintr-o tabelă şi deplasându-ne pe câmpul de legătură din cea de-
a doua tabela eliberăm butonul mouse-ului pentru a deschide caseta de dialog Relationships.
În fereastra Relationships se pot stabili câteva opţiuni:
- Impunere integritate referenţială impune respectarea unor condiţii la eliminarea sau
modificarea unor înregistrări (previne ştergerea accidentală a unor înregistrări de folos într-o tabelă
corelată).
- Actualizare în cascadă câmpuri corelate realizează actualizarea în cascadă a câmpurilor
asociate.
- Ştergere în cascadă câmpuri corelate prin care ori de câte ori se vor elimina înregistrări din
primul tabel, automat vor fi eliminate şi din tabelul corelat.
Pentru a preciza tipul de legătură se selectează opţiunea Join Tipe:
- 1 include toate înregistrările din acele tabele pentru care câmpurile de legătura au valori egale.
- 2 include toate liniile din A şi numai pe acelea din B pentru care câmpurile sunt egale.
- 3 include liniile din B şi numai pe acelea din A pentru care există egalitatea câmpurilor.
Interogările (Queries) reprezintă rezultatul unui procedeu de filtrare, prin care sunt afişate
spre vizionare numai anumite date din tabele, în acest caz filtrul este stabilit de către utilizator precum
13
şi ordinea de aşezare a înregistrărilor. Există şi posibilitatea combinării datelor provenite din mai multe
tabele asociate precum şi amplasarea rezultatelor interogării într-o singură fereastră.
Programul Access include aplicaţia QBE (Query by Example) grafic. Utilizarea acestei
caracteristici oferă o mai mare flexibilitate decât Filter, permiţând alegerea câmpurilor care apar în
rezultatul interogării şi crearea unor interogări mult mai complexe, folosind informaţia din tabele
principale şi din cele asociate acestora.
Există patru tipuri de interogări:
interogări de selecţie (select) - sunt extrase date din unui sau mai multe tabele şi rezultatul este
afişat sub formă de listă.
interogări încrucişate (crosstab) - centralizează datele din unui sau mai multe tabele în formatul
unei foi de calcul tabelar Acest tip de interogare este util dacă obiectul îl reprezintă analiza
datelor şi crearea de grafice şi diagrame pe baza sumei valorilor din câmpurile numerice ale
mai multor interogări.
interogări de acţiune (action) - acest tip de interogare permite adăugarea, modificarea sau
ştergerea înregistrărilor dintr-un tabel. Prin aceste interogări sunt create noi tabele în bazele de
date sau modificate tabelele existente.
interogări parametrice (parameter) - folosesc în mod repetat o interogare, făcând numai simple
modificări ale criteriilor ei. La rularea unei asemenea interogări Access deschide o casetă de
dialog în care trebuie furnizată valoarea criteriului de filtrare.
În lista de interogări din fereastra Database pentru fiecare tip de interogare există câte un
simbol plasat înaintea denumirii interogării.
Prin urmare, interogările permit acţiunea asupra datelor din mai multe tabele sau asupra datelor
dintr-o interogare şi un alt tabel, în general într-o interogare sunt prezente acele înregistrări. sau părţi
ale acestora, care respectă anumite criterii de căutare.
Crearea unei cereri de interogare se poate face în mai multe moduri:
proiectare pas cu pas în modul Vizualizare proiect;
proiectarea cu ajutorul expertului( Wizard);
proiectarea în limbajul SQL;
crearea unui filtru şi salvarea acestuia ca cerere de interogare.
În continuare vom prezenta realizarea unei interogări pas cu pas în modul Vizualizare proiect.
Pentru început se activează opţiunea Interogări în fereastra Bază de date şi se execută clic pe
opţiunea Nou, iar din caseta de dialog Interogare nouă se alege opţiunea Vizualizare proiect. În
caseta de dialog AfişareTabel se aleg tabele de unde includem câmpuri în interogare.
Fereastra interogării este împărţită în două panouri, în panoul superior al ferestrei este afişată o
listă cu toate tabelele din care trebuie să fie interogate datele.
Dacă se creează o interogare pe baza unor tabele corelate, relaţiile vor apare pe măsură ce
amplasăm tabele în panoul superior.
În partea de jos a ferestrei sunt listate toate câmpurile care trebuie să fie afişate în interogare.
Fiecare din aceste câmpuri are mai multe proprietăţi ce pot fi modificate.
Proprietăţile câmpurilor sunt:
- Câmp: dă numele câmpului;
- Tabel: indică tabelul de origine al câmpului;
- Sortare: aici putem indica dacă rezultatul interogării se sortează;
- Afişare: specifică dacă un câmp va fi afişat sau nu;
- Criterii: aceasta constituie probabil cea mai importantă proprietate a unei interogări.
Aici trebuie să stabilească utilizatorul după ce criteriu trebuie filtrate datele din întreaga bază
de date. Regulile de introducere a criteriilor interogării corespund celor de Ia criteriile filtrelor.
În partea superioară a ferestrei de proiectare a interogării se găseşte o listă care conţine toate
câmpurile tabelului de origine.
Executând dublu clic pe o opţiune a acestei liste, câmpul respectiv este adăugat interogării şi va
apărea în panoul inferior ca ultima intrare, în partea dreaptă. Câmpurile pot fi mutate din poziţiile lor
prin procedeul „drag and drop"(trage şi plasează).
14
Dacă unele câmpuri trebuie ulterior îndepărtare, se marchează simplu întreaga coloană şi se
şterge cu ajutorul tastei <Delete>. Dacă o coloană este importantă pentru o interogare dar la un
moment dat nu trebuie vizualizată, aceasta poate fi dezactivată cu ajutorul proprietăţii Afişare.
La închiderea modului Vizualizare proiect suntem atenţionaţi automat în cazul în care nu am
salvat modificările. Când interogarea va fi deschisă din nou, ea va prezenta rezultatul sub forma unui
tabel.
Ca şi în cazul formularelor, cele mai simple rapoarte şi cel mai uşor de obţinut sunt
autorapoartele. Acestea pot fi de două tipuri: autorapoarte pe coloană (Autoraport Coloane) şi sub
formă tabelară (Autoraport Tabele).
Pentru crearea unui autoraport se selectează butonul Raport din fereastra bazei de date şi se
execută clic pe opţiunea New.
În caseta de dialog Raport Nou ce se va deschide urmează a fi selectate una din opţiunile de
realizare a autorapoartelor: Autoraport Coloane, Autoraport Tabele.
Tot în această casetă vom executa clic pe lista derulantă din dreapta textului unde vom alege
tabelul sau interogarea ce conţine datele ce urmează a fi preluate în raport.
Modul (Modules) conţine una sau mai multe subrutine scrise în Visual Basic for
Applications, limbaj de programare folosit în cadrul aplicaţiilor Microsoft Office.
17
CAPITOLUL III.
SITUAŢIA ŞCOLARĂ A ELEVILOR DIN CLASA a XI-a A
GRUPUL ŞCOLAR AGRICOL - BALŞ
Definirea problemei.
Crearea unei baze de date pentru evidenţa situaţiei şcolare a elevilor din clasa a XI-a A.
Baza de date trebuie să stocheze notele acordate de profesori elevilor, la fiecare materie la
sfârşitul semestrului I.
- discipline
- elevi
- note
- profesori
Identificarea asocierilor între entităţi este următorul pas. Prin asociere se înţelege o legătura
între cele două entităţi bazată pe un câmp al lor.
Stabilirea acestora este o operaţie relativ intuitivă care, în cazul meu entităţile au următoarele
asocieri care generează relaţii de tip unu-la-mai mulţi:
18
Un elev are mai multe note, evident, la o materie poţi primi mai multe note, un profesor acord ă
mai multe note.
Stabilirea câmpurilor se face în funcţie de specificul utilizării bazei de date. O atenţie sporită
trebuie acordată atributelor cheie primară (scrise cu roşu). În cazul meu am preferat, pentru
simplificarea codificării datelor, voi folosi tipul de dată AutoNumber.
Elevi:
Discipline:
19
Profesori:
20
Note:
S-a creat Baza de date cu ajutorul programului MICROSOFT ACCESS utilizând obţinea
“New-Blank Data Base”.S-a salvat baza de date intr-un fişier numit “Proiect Access ”.
S-a deschis baza de date nou creată ; s-a selectat obţinea “Table” şi s-au creat patru tabele cu
ajutorul opţiuni “Create with Design View”: Elevi, Discipline, Profesori, Note.
În formarea numelui câmpului se recomandă:
– să nu se utilizeze caracterul spaţiu; pentru îmbunătăţirea lizibilităţii numelui se poate înlocui spaţiul
cu caracterul de subliniere ( _ ) sau se pot utiliza litere majuscule şi minuscule în acelaşi nume;
– reducerea lungimii numelui câmpurilor pentru a conserva resursele sistemului şi pentru a scuti
utilizatorul de introduceri lungi atunci când se fac referiri la numele câmpului.
S-au creat, în fiecare tabel, mai multe câmpuri descrise mai sus.
În tabelul Profesori, pentru câmpul ,, grad didactic" am creat un tip de data cu ajutorul Lookup
Wizard in modul Datasheet View.
21
Tabelele Access se pot salva în mai multe moduri:
– din meniul File se alege opţiunea Save;
– se execută click pe butonul Save de pe bara cu instrumente de lucru;
– se execută evenimentul click pe butonul de închidere a ferestrei de descriere a tabelei
– din meniul de control se alege opţiunea Close.
Indiferent de modul de salvare, Access afişează caseta de dialog Save As care solicită
furnizarea unui nume pentru tabelă. Utilizatorul introduce numele tabelei în caseta de text Table Name
şi apoi execută click pe butonul OK.
Orice tabelă trebuie să posede o cheie primară ( Primary Key), adică un câmp sau un grup de
câmpuri care identifică în mod unic fiecare înregistrare. Dacă utilizatorul nu stabileşte o cheie primară,
Access stabileşte una în mod implicit creând un câmp de tip AutoNumber care va conţine un
număr unic pentru fiecare înregistrare.
Cheia primară se defineşte din fereastra Indexes se activează meniul View, opţiunea Indexes.
22
Proprietăţile din fereastra Indexes:
• Primary – valoarea Yes indică faptul că indexul este cheie primară;
• Unique – valoarea Yes indică faptul că indexul va avea valori unice, nefiind permis
duplicatele; pentru o cheie primară, această proprietate are obligatoriu valoarea Yes.
• Ignore Nulls - valoarea Yes indică faptul că sunt permise valorile Null într-un index; pentru o
cheie primară, această proprietate are obligatoriu valoarea No.
Pe lângă modalitatea descrisă anterior, cheia primară a unui tabel se mai poate defini astfel:
– dacă este vorba de o cheie formată dintr-un singur câmp, se poziţionează cursorul în câmpul
respectiv, se acţionează click dreapta şi se alge opţiunea Primary Key;
– pentru chei primare formate din mai multe câmpuri, se selectează câmpurile din bordura
ferestrei de proiectare şi se acţionează butonul menţionat anterior.
O cheie externă nu se defineşte explicit în Access sub noţiunea de cheie externă, ea fiind
stabilită prin definirea relaţiilor dintre tabele. Pentru creşterea performanţelor se recomandă definirea
de indecşi pentru fiecare cheie externă.
Pentru a efectua aceste operaţii este necesar ca tabela să fie deschisă în modul DataSheet.
Dacă tabela este deschisă imediat după creare, Access va afişa o foaie de date vidă, iar
pointerul de înregistrare va fi plasat pe prima şi unica linie, pe butonul ei de selecţie (butonul gri
din prima coloană din tabela afişată în modul Datasheet View).
Pentru a introduce date se plasează pur şi simplu cursorul pe câmp şi se introduce o valoare.
în timp ce se efectuează această operaţie, pointerul de înregistrare * se transformă într-un creion,
ilustrând faptul că se editează o înregistrare. O nouă linie vidă apare dedesubtul primei linii. În locul
23
pointerului de înregistrare figurează un asterisc indicând o nouă înregistrare.
Dacă tabela care se deschide în modul Datasheet View conţine date, pentru a adăuga o nouă
înregistrare trebuie plasat cursorul pe ultima linie (al cărei pointer este un asterisc) şi se introduce
noua înregistrare. Pentru plasarea cursorului pe ultima linie se execută click pe butonul New Record
de pe bara cu instrumente sau se alege Insert –> Record sau se utilizează tasta săgeata în jos.
S-au introdus date in tabele deschizându-le pe rând.
Definirea legăturilor dintre tabele se realizează din meniul Tools-> Relationships, acesta
activând un panou de editare vizuală a acestora. Prima activare a acestei opţiuni are ca efect şi afişarea
unei ferestre cu obiectele bazei de date ce se pot plasa în panou prin dublu-click sau selectarea
obiectului şi butonul Add.
Pentru a putea defini o legătură între două tabele, trebuie să existe compatibilitate între tipul de
date al cheii primare şi cel al cheii externe corespunzătoare.
După plasarea tuturor tabelelor în panoul de editare, definirea propriu-zisă a unei relaţii se
realizează prin drag-and-drop dinspre cheia primară a unei tabele spre cheia externă corespunzătoare
sau invers.
Dacă o cheie este formată din mai multe câmpuri, acestea se editează corespunzător în panoul
Edit Relationship.
Relaţiile sunt:
- între tabela Note şi tabela Elevi relaţie de tipul unu-la-mai mulţi
- între tabela Note şi tabela Profesori relaţie de tipul-unu-la-mai mulţi
- între tabela Note şi tabela Discipline relaţie de tipul unu-la-mai mulţi
3.2.5. Interogările (Queries)
Interogarea datelor din tabele se realizează în două moduri:
24
• în mod grafic prin interfaţa Query By Example (QBE) - interogare prin exemplu;
• prin limbajul SQL sub formă de blocuri de cerere.
Access oferă trei posibilităţi pentru definirea interogării şi afişarea rezultatelor acesteia.
– Design View – fereastră sub forma unei grile de interogare, în care se defineşte interogarea;
– Datasheet View – fereastră în care se afişează rezultatele interogării;
– SQL View – fereastră în care Access generează automat codul SQL al interogării QBE;
aceeaşi fereastră este folosită şi pentru scrierea directă a unei interogări cu ajutorul
instrucţiunilor SQL.
25
b) Am creat o interogare care să calculeze media semestrială a elevilor la obiectele la care susţin
teză şi care să afişeze doar numele, prenumele, disciplina, nota1, nota2, nota3, teza şi media
acestora.
Se de click pe butonul Queries (Interogări) din fereastra Database: şi se alege opţiunea Create
query in Design view. Am adus câmpurile nume_elev, pren_elev,den_disciplina, nota1, nota2, nota3 şi
teza şi am completat următoarea coloană din grilă cu:
Medie: Round((3*(([nota1]+[nota2]+[nota3])/3)+[teza])/4)
La linia Criteria alegem în câmpurile nota3 şi teza criteriul’’ >0’’. Închidem interogarea de la butonul
x, se salvează sub numele Medie cu teza, apoi vizualizăm rezultatul prin deschiderea acesteia din
fereastra Database, opţiunea Queries.
c) Am creat o interogare de selecţie care să afişeze mediile semestriale ale elevilor şi să se
specifice elevii corigenţi.
d)
Se de click pe butonul Queries (Interogări) din fereastra Database: şi se alege opţiunea Create
query in Design view. Am adus câmpurile nume_elev, pren_elev(din tabelul Elevi), media_semI(din
tabelul Note) şi den_disciplina(din tabelul Discipline) şi am completat următoarea coloană din grilă cu:
Rezultat: IIf([Media_semI]<=4;"CORIGENT")
Închidem interogarea de la butonul x, se salvează sub numele Corigenţi promovaţi, apoi
vizualizăm rezultatul prin deschiderea acesteia din fereastra Database, opţiunea Queries.
e) Am creat o interogare de selecţie care să afişeze mediile semestriale ale elevilor corigenţi.
Se de click pe butonul Queries (Interogări) din fereastra Database: şi se alege opţiunea Create
query in Design view.
Am adus câmpurile nume_elev, pren_elev(din tabelul Elevi), media_semI(din tabelul Note) şi
den_disciplina(din tabelul Discipline).
26
La linia Criteria alegem în câmpul media_semI criteriul’’ <=4’’. Închidem interogarea de la
butonul x, se salvează sub numele Corigenţii, apoi vizualizăm rezultatul prin deschiderea acesteia din
fereastra Database, opţiunea Queries.
f) Am creat o interogare de selecţie care să afişeze elevii cu note scăzute la purtare.
Se de click pe butonul Queries (Interogări) din fereastra Database: şi se alege opţiunea Create
query in Design view. Am adus câmpurile nume_elev, pren_elev(din tabelul Elevi), media_semI(din
tabelul Note) şi id_disciplina(din tabelul Discipline).
La linia Criteria alegem în câmpul media_semI criteriul’’ <10’’ şi în câmpul id_disciplina
criteriul “ purta”. Închidem interogarea de la butonul x, se salvează sub numele Medii scăzute purtare,
apoi vizualizăm rezultatul prin deschiderea acesteia din fereastra Database, opţiunea Queries.
g) Am creat o interogare de sintetizare a datelor pentru obţinerea mediei generale a elevilor şi
sortarea acestora în ordinea descrescătoare a mediei. Elevii au un număr de 15 discipline.
Rezolvarea problemei se va realiza în două etape:
– se va face o interogare de tip total pentru calculul mediei fiecărui elev şi– interogarea Medie;
– se va face o interogare pe baza interogării precedente, Medie, şi a tabelei Elevi, se vor calcula
mediile generale– interogarea Medie_generala.
Dacă se doreşte afişarea mediei generale doar cu două zecimale vom alege Properties –>
Format –> Fixed pentru câmpul Media al interogării Medie_generala.
Pentru interogarea Medie am ales câmpurile: id_disciplina(din tabelul Discipline), id_elev(din
tabelul Elevi) şi media_semI(din tabelul Note).
Pentru interogarea Medie_generala am ales tabelul Elevi şi tabelul Medie creat prin interogarea
anterioară. Câmpurile alese sunt nume_elev, pren_elev(din tabelul Elevi) şi am completat următoarea
coloană din grilă cu:
media_generala: Sum([media_semI])/14
În linia Total alegem opţiunea Group By pentru câmpurile nume_elev, pren_elev iar pentru
câmpul media_generala opţiunea Expresion, precum şi sortarea Descending.
3.2.6. Formulare(Forms)
Access pune la dispoziţia proiectantului o serie de facilităţi în vederea creării unui formular.
Astfel se poate alege între:
– generarea automată a unor formulare predefinite (AutoForm: Columnar, Tabular, Datasheet,
PivotTable, Pivotchart);
– proiectarea asistată, caz în care utilizatorul este îndrumat de către o serie de
asistenţi(Wizards: Form Wizard, Chart Wizard, PivotTable Wizard).
Formularele create sunt:
a) Corigenţii1, Media generala şi Medii scăzute la purtare pentru care am folosit
formularele Wizard, folosind ca sursă diferite tabele.
Etapele pe care le-am parcurs au fost:
1. se acţionează butonul New din fereastra bazei de date pentru activarea asistentului New
Form;
2. se optează pentru varianta Form Wizard;
3. se selectează tabela sau interogarea dorită în rubrica derulantă solicitată; prin click pe
butonul Ok, sistemul intră în modul Wizard;
4. se selectează câmpurile din sursa de date, ce vor fi afişate în formular; câmpurile accesibile
ale tabelei/interogării selectate sunt afişate în zona Available Fields; câmpurile ce for face parte
din formular sunt afişate în zona Selected Fields;
Selectarea câmpurilor se face cu ajutorul butoanelor:
– > pe al cărui click se transmite un singur câmp selectat din zona Available Fields în zona
Selected Fields;
– >> pe al cărui click se transmit toate câmpurile din zona Available Fields în zona Selected
Fields;
– < pentru revenirea unui câmp selectat din Selected Fields în Available Fields;
27
– << pentru revenirea tuturor câmpurilor selectate din Selected Fields în Available Fields;
Denumire formular Tabel(sursa de date) Câmp selectat în zona
Available Fields
Corigenţii1 Interogarea Corigenţii nume_elev,
pren_elev,
den_disciplina
Media generala Interogarea Media generala nume_elev,
pren_elev,
media_generala
Medii scăzute la purtare Interogarea Medii scăzute la purtare nume_elev,
pren_elev
media_semI
5.se alege tipul de formular şi anume opţiunile privind forma de poziţionare a datelor din
formular; opţiunile sunt: Columnar, Tabular, Datasheet, Justified, PivotTable, PivotChart
6. se stabileşte imaginea de fundal pentru formular (Stone, Standard etc.);
7. în ultima etapă se defineşte titlul formularului, precum şi modul în care va fi deschis
formularul
Definirea unui subformular presupune înglobarea (includerea) unui formular în cadrul altui
formular, primul devenind subformular, iar al doilea formular principal.
Pentru definirea unui subformular în modul Design se procedează astfel:
• se deschide în modul Design, formularul ce se doreşte a fi formular principal;
• se activează fereastra bazei de date;
28
• folosind tehnica drag&drop, se aduce depune formularul, ce se doreşte a fi subformular, în
interiorul formularului principal;
• se salvează formularul principal.
Sincronizarea formular–subformular se realizează prin intermediul câmpurilor de legătură
cheia primară din sursa de date aferentă formularului principal şi cheia externă din sursa de date
aferentă subformularului.
Denumirile acestor câmpuri sunt înscrise automat de Access în proprietăţile Link Master Field
şi Link Child Field ale controlului de tip subform din formularul principal.
Am creat un formular cu subformular în modul Form Wizard pentru tabelele Elevi şi Note:
1. se acţionează butonul New din fereastra bazei de date pentru activarea asistentului New Form;
2. se optează pentru varianta Form Wizard;
3. se selectează câmpurile din tabela Elevi sau apoi din tabela Note şi tabela Discipline;
4. pentru tabelul Elevi se selectează opţiunea Linched formes;
5. se alege un model de prezentare pentru subformular;
6. se stabileşte imaginea de fundal pentru formular (Stone, Standard etc.);
7. se stabileşte denumirea primului formular (First form) Elevi1 şi a celui de-al doilea formular
(Second form) Note1.
În primul formular am inserat cu ajutorul butonului Subform/subreport un alt formular în
punctual de inserare, în modul Design Wiev. Formularul introdus este tabelul Medie generala.
Acest formular apare ca ecran de prezentare:
- meniul Tools şi am selectat Startup
- am executat clic pe săgeata listei Display From/Page şi apoi am selectat formularul Elevi1
- am executat OK.
29