|
Concepte esentiale ale bazelor de date
Vom relua, pe scurt, notiunile importante referitoare la bazele de date:
O baza de date reprezinta o colectie de date inrudite, care se refera la un anumit subiect sau obiectiv, impreuna cu unstrumentele folosite pentru manipularea acestor date
Baza de date contine urmatoarele elemente (aceste elemente ale bazei de date se numesc obiecte Access):
- tabelul (table) - colectie de date inrudite, stocate pe linii si coloane; este compus din coloane (domenii) de date (campuri) si inregistrari (record), linia din cadrul tabelului care contine toate datele referitoare la un anumit element, numita si tuplu;
- formular (form) - un obiect Access care afiseaza informatiile dintr-un tabel intr-un format diferit de cel al tabelului (altfel decat pe linii si coloane); este folosit pentru introducerea si vizualizarea datelor dintr-un tabel, inregistrare cu inregistrare; foarte important pentru formulare este ca nu trebuie sa contina toate campurile unui anumit tabel;
- interogare (query) - un obiect Access care stocheaza intrebari cu privire la datele stocate in baza de date; raspunsul la interogare poate fi utilizat pentru a manipula datele dintr-un tabel, cum ar fi stergerea unei inregistrari sau vizualizarea datelor dintr-un tabel, care indeplinesc anumite criterii;
- raport (report) - un obiect Access care stocheaza detalii pentru afisarea sau tiparirea datelor in mod organizat; permite rezumarea informatiilor unei baze de date intr-un format potrivit pentru tiparire.
Dezvoltarea de aplicatii de baze de date de mari dimensiuni este in acelasi timp un fapt banal, dar si un fapt deosebit.
Banalitatea consta in faptul ca un procent semnificativ din efortul de dezvoltare de aplicatii se indreapta spre acest domeniu.
Extraordinarul se leaga de complexitatea deosebita a acestor aplicatii, care implica echipe mari de proiectanti, necesita atat experienta in domeniu cat si adaptarea la conditii mereu noi.
Si nu in ultimul rand, reprezinta o mare responsabilitate.
Cu toate ca industria de software cunoaste o adevarata explozie, cu toate ca suntem literalmente bombardati cu sute si sute de aplicatii din ce in ce mai complexe si mai specializate, inca nu a fost "inventat" un pachet software care sa satisfaca necesitatile generale ale unei intreprinderi.
Chiar daca ne restrangem pretentiile la partea numita de obicei "de gestiune economica", un astfel de software nu se intrezareste la orizont, cu toate ca in linii mari, toate intreprinderile functioneaza pe aceleasi principii.
Exista pachete "de gata" care satisfac anumite nevoi specifice dar, la noi ca si in alte parti, elemente specifice primeaza si in consecinta marea majoritate a intreprinderilor prefera sa-si construiasca "la comanda" sistemul informatic.
Un sistem de gestiune a bazelor de date (SGBD) este un mecanism al carui principiu fundamental consta, la modul cel mai general, in asa-zisa abstractizare a datelor stocate pe suport.
Exista trei nivele de abstractizare, corespunzand celor trei modele ale datelor: fizic, conceptual si logic.
- Modelul fizic (sau intern) priveste datele asa cum sunt ele stocate pe suport si reprezinta nivelul zero al abstractizarii;
- Modelul conceptual priveste datele prin semnificatia lor reala;
- Modelul logic (sau extern) priveste datele prin prisma utilizatorului final.
Pentru o baza de date pot exista mai multe modele logice, in functie de diversele categorii de utilizatori finali.
Mecanismele de "proiectie" intre aceste nivele asigura ceea ce se cheama de obicei independenta de date, adica stabilitatea aplicatiilor la modificari in modul fizic de stocare a datelor.
Proiectarea aplicatiilor de baze de date implica din aceasta perspectiva doua etape initiale extrem de importante: proiectarea logica si respectiv implementarea fizica a modelului de date. Modelul de date formeaza fundatia intregului sistem de aplicatii ce va exploata baza de date.
Proiectarea logica (logical design) se refera la stabilirea modelului conceptual al bazei de date care este in mare masura independenta de SGBD-ul particular care va fi utilizat. Rezultatul acestei etape a proiectarii este un document care va cuprinde definitia detaliata a structurilor de date ce vor fi implementate impreuna cu toate elementele de semantica asociate acestor structuri.
Implementarea fizica (physical implementation) consta in transpunerea pe SGBD-ul specific a modelului conceptual realizat in etapa anterioara.
Concretizarea acestei etape consta intr-un script (o lista de comenzi) realizat in limbajul de descriere a datelor (DDL - Data Description Language) utilizat de SGBD-ul ales. Rolul acestuia este sa creeze si sa initializeze baza de date cu streucturile corespunzatoare celor descrise in etapa anterioara.
Acest script se mai numeste schema bazei de date si va fi utilizat ca referinta in proiectarea aplicatiilor propriu-zise.
Aceasta etapa este extrem de complexa si de importanta, deoarece ea stabileste o serie de elemente care vor influenta functionalitatea, extensibilitatea si, intr-o destul de mare masura, performanta ansamblului de aplicatii care va fi dezvoltat. Metoda cea mai utilizata in aceasta etapa este cea a diagramelor Entitate - Relatie (ER - Entity - Relationship).
Entitatile reprezinta abstractizari ale lucrurilor reale, fie ele concrete sau imateriale.
Ele pot corespunde unor persoane, obiecte, locuri, documente, concepte, etc.
Ceea ce intereseaza in proiectarea unei baze de date sunt doar tipurile de entitati implicate in activitatea modelata.
Identificarea acestora si corecta lor evidentiere este o problema care tine in mare masura de experienta si chiar de "flerul" proiectantului.
Cu toate acestea, cateva reguli pot fi folositoare.
Simplitatea este cea mai importanta.
Este preferabil sa lucram cu mai putine entitati decat cu prea multe, deoarece pe parcursul dezvoltarii proiectului cele omise isi vor cere cu siguranta drepturile, in schimb cele inutile nu vor cere explicit sa fie excluse, complicand si mai mult o activitate care numai de complexitate nu duce lipsa.
O alta regula de bun simt este denumirea lor cat mai clara si sugestiva, deoarece aceste nume tind sa se perpetueze pana in detaliile aplicatiilor.
Este evident ca entitatile nu pot cuprinde singure intreaga informatie ce trebuie administrata si nici nu pot fi concepute ca "insule informationale".
O buna parte din informatia semnificativa legata de activitatea modelata se afla tocmai in relatiile care exista intre entitati.
Exista trei clase principale de relatii:
- relatii one - to - one;
- relatii one - to - many: cazul cel mai comun;
- relatii many - to - many.
Modelul relational se bazeaza pe o modalitate unica de stocare, atat pentru entitati cat si pentru relatii intre acestea: totul se stocheaza in tabele.
Primul pas in determinarea tabelelor este deci foarte clar: fiecarei entitati ii va corespunde o tabela.
Daca numele entitatilor a fost judicios stabilit, este de dorit ca tabelele sa pastreze numele entitatilor.
Totusi, numele prea lungi nu sunt de dorit (de exemplu, tabela corespunzatoare entitatii DEPARTAMENT o vom numi DEPT).
Problemele apar la stabilirea tabelelor care sa stocheze relatiile.
Teoretic, orice relatie poate fi stocata intr-o tabela separata (care sa contina cheile prin care se face legarea liniilor), dar la modul practic se recurge adesea la combinarea in aceeasi tabela a informatiilor referitoare la o entitate cu informatii corespunzatoare unei relatii.
Este din nou un pas in care experienta si flerul proiectantului are un cuvant greu de spus.
Daca s-a stabilit modul de stocare a relatiilor intre enitati, acest pas nu pune probleme speciale.
Raportul privind specificarea cerintelor ofera informatii suficiente pentru acest pas.
Din nou se cere multa atentie la stabilirea unor denumiri sugestive pentru coloane si la stabilirea unei modalitati consistente si uniforme de notare (nu datorita unor constrangeri formale, ci pentru a asigura proiectului un plus de claritate).
De pilda se pot folosi nume unice pentru aceeasi informatie, sau se pot utiliza prefixe stabilite pe baza numelor tabelelor.
Unul dintre principiile fundamentale ale modelului relational este unicitatea liniilor unei tabele.
O coloana sau o combinatie de coloane care identifica in mod unic o linie este numita cheie primara a tabelei.
Exista situatii in care exista mai multe astfel de coloane sau combinatii de coloane.
In aceste cazuri cheia primara este aleasa in functie de relevanta lor in cazul specific al activitatii modelate.
Celelalte chei posibile se cheama chei candidate.
Atributul unei tabele care ia valori din domeniul unei chei primare a altei tabele se numeste cheie straina (stocarea relatiilor intre entitati se face prin perechi formate dintr-o chei primara si o cheie straina).
In practica se evita in cele mai multe situatii cheile primare formate din mai multe coloane in cazul tabelelor corespunzatoare unor entitati (asa-numitele "nomenclatoare"), prin introducerea unui cod anume creat care sa joace rolul de cheie primara (de pilda "marca" pentru angajati, codul pentru produse, etc).
Este important in acest caz sa se stabileasca o metodologie unitara si coerenta de codificare, deoarece o codificare defectuasa poate crea probleme enorme in exploatarea bazei de date.
Exista mai multe metode raspandite, de cele mai multe ori bazate pe o combinatie de informatii, cum ar fi de pilda o litera corespunzatoare unei anumite clasificari cu un cod numeric care sa forteze unicitatea.
O tehnica utila este stabilirea unei asa-numite "cifre de control", generata pe baza unui algoritm, astfel incat riscurile de a introduce un cod gresit (care sa "cada" peste unul existent) sa fie cat mai mici.
Aplicatie
Lansarea programului Access se face prin selectarea optiunii Microsoft Access din meniul PROGRAMS (in care se intra prin clic pe butonul START).
Inchiderea programului : se alege optiunea EXIT din meniul FILE.
Crearea unei baze de date noi se poate face utilizand optiunile casetei de dialog Microsoft Access care apare in momentul in care lansezi aplicatia sau utilizand comanda New din meniul File.
Crearea unei baze de date prin intermediul casetei de dialog Microsoft Access presupune parcurgerea urmatoarelor etape:
- Lanseaza in executie programul Access;
- Programul afiseaza caseta de dialog prezentata in imaginea urmatoare. In acest punct poti alege sa deschizi o baza de date deja existenta, sa creezi o noua baza de date goala sau sa lansezi Database Wizard. Pentru cea de a doua optiune selecteaza Blank Access Database
-Se deschide caseta de dialog File New Database in care introduci numele bazei de date.
-Apasa butonul CREATE si in acest moment baza de date va fi creata iar pe ecran apare fereastra corespunzatoare acestei baze de date.
Crearea unei baze dedate utilizand comanda New din meniul File presupune parcurgerea urmatoarelor etape:
- Alege din meniul FILE optiunea NEW;
- In caseta de dialog NEW selecteaza pictograma DATABASE si se apasa butonul OK
- In caseta de dialog FILE NEW DATABASE alege unitatea de disc si folder-ul in care se doreste creeza baza de date si specifica numele bazei de date.
- Apasa pe butonul CREATE
DESCHIDEREA UNEI BAZE DE DATE
Pentru a deschide o baza de date creata anterior trebuie sa parcurgi urmatorii pasi:
-Selecteaza din meniul FILE, optiunea OPEN
-Daca fisierul nu este in folder-ul curent cauta folder-ul in care a fost salvata anterior baza de date.
-Executa dublu clic pe fisier sau selecteaza-l si apasa butonul OPEN pentru a-l deschide.
In Microsoft Access 2003, butonul OPEN din caseta de dialog OPEN are o lista derulanta:
- OPEN READY-ONLY - impiedica salvarea modificarilor din baza de date;
- OPEN EXCLUSIVE - impiedica alt utilizator sa lucreze cu baza de date pe care ai deschis-o;
- OPEN EXCLUSIVE READY-ONLY - aplica ambele restrictii.
Chestionar
1. Care este rolul programarii bazelor de date?
2. Care este rolul principal al programului Microsoft Windows?
3. Care sunt componentele principale ale bazei de date Access?
4. Ce reprezinta macrocomenzile?
5. In ce este continut codul VBA?
6. Cum se defineste procedura?
7. Care este structura unei proceduri VBA?
8. Care sunt tipurile de proceduri VBA?
9. Care sunt tipurile de module Access?
10. Cum se defineste evenimentul?
11. Care sunt actiunile pentru care sunt necesare macro-urile?
12. Care sunt obiectele VBA?
13. Cum definim proprietatea unui obiect?
14. Cum se asigura functionalitatea bazei de date?