INFORMATICA DE GESTIUNE - BAZE DE DATE
BAZE DE DATE
Definitia bazei de date
Prin baza de date se intelege orice colectie de date sau informatii, care este organizata special in vederea consultarii rapide a datelor de catre utilizatorul unei aplicatii, care ruleaza pe un calculator.
Bazele de date sunt structurate astfel incat sa faciliteze memorarea, regasirea, modificarea si stergerea datelor, prin diferite operatii specifice.
Bazele de date se pot memora pe disc sau pe banda magnetica, pe disc optic sau pe orice alt fel de tip de memorare secundara.
Principala operatie care apare in orice aplicatie de baze de date este cea de regasire a datelor, in scopul obtinerii de informatii din baza de date. Aceasta 111i86b este finalitatea si sensul existentei oricarei baze de date. O baza
de date este creata pentru a putea fi interogata.
Organizarea bazei de date
Prima activitate a utilizatorului consta in crearea unei baze de date, fisier care are extensia DBF (in ACCESS implicit MDB). In acest fisier se memoreaza tot ce se creeaza pentru respective baza de date.
Organizarea datelor in baze de date constituie o forma de centralizare a acestora, fiind un echivalent informatic al bibliotecilor traditionale. Aceasta implica existenta unui 'bibliotecar' care in cazul bazelor de date poarta numele de administrator al bazei de date (ABD) - este vorba de o persoana sau un grup de persoane, avand atributii bine definite in organizarea si intretinerea bazei de date.
Obiectele cele mai importante, memorate intr-o baza de date sunt tabelele bazei. Un table este format dintr-un numar de linii(randuri) si dintr-un numar de coloane.
Prima linie a tabelului are un rol special, ea este linia
de antet a tabelului. Fiecare celula a liniei de antet contine un nume de camp.
Celelalte linii ale tabelului sunt articolele (inregistrarile) tabelului.
Fiecarui nume de
Unui tabel ii pot fi adaugate nu numai articole noi, ci si campuri noi, iar unele campuri pot fi desfiintate, adica structura tabelului poate fi modificata. In cazul modificarii structurii unui tabel, interogarile, formularele si rapoartele care se bazeaza pe tabelul reproiectat trebuie refacute.
Exemplu :
Un tabel care are numele Marfa si este destinat gestionarii produselor dintr-un magazin . tabelul contine urmatoarele cinci nume de campuri:
MarfaID – un camp de tip Auto Number, prin care fiecare articol al tabelului va avea un identificator unic, acest identificator este un numar intreg , motiv pentru care utilizatorul nu poate introduce in tabel articole care au acelasi identificator;
Nume – un camp de tip text care contine numele unui produs;
Cantitate – un camp numeric care contine cantitatea comandata de la un furnizor din produsul respectiv;
PretUnitar – un camp de tip valoare monetara care contine pretul unitar al produsului;
DataProcurarii – un camp de tip data calendaristica care contine data de procurare a produsului.
Acest tabel poate contine urmatoarele cinci articole:
MarfaId |
Nume |
Cantitate |
Pret Unitar |
DataProcurarii |
Conserve de peste |
5,00 lei | |||
Cascaval |
3,00 lei | |||
Rulada de pui |
2,00 lei | |||
Unt |
1,00 lei | |||
Margarina |
1,00 lei |
O baza de date poate contine mai multe tabele. Aceste tabele, de regula, sunt tabele asociate, adica exista intre ele o anumita relatie. Astfel, de exemplu, un prim tabel poate contine informatii referitoare la categoriile de produse existente intr-un magazin: lactate, conserve; un alt tabel poate contine informatii despre produsele propriu-zise: cantitatea existenta in stoc din fiecare produs, iar al treilea tabel poate contine informatii referitoare la pretul unitar al produselor.
Interogari
Interogarile servesc la selectarea - pe baza anumitor criterii - a anumitor articole din tabele. O interogare poate sa selecteze anumite articole din cele livrate de o alta interogare. Articolele selectate pot fi afisate intr-o ordine stabilita de utilizator. Exista posibilitatea combinarii datelor provenite din mai multe tabele asociate, deci rezultatele interogarii pot fi vizualizate intr-o singura fereastra. In majoritatea cazurilor programul Access permite editarea datelor afisate intr-o interogare; modificarile efectuate vor fi salvate in tabelul, care a furnizat datele.
Exemplu: interogarea avand numele qryMarfa selecteaza articolele tabelului tblMarfa, care au fost procurate in data de 21 decembrie 1998. Articolele astfel selectate sunt sortate crescator in functie de pretul unitar al produsului.
Nume |
Data procurarii |
Cantitate |
Pret unitar |
Unt |
2 lei |
||
Cascaval |
3 lei |
||
Rulada de pui |
6 lei |
Formulare
Formularele servesc in primul rand pentru a facilita introducerea articolelor unui tabel, cu ajutorul unui sablon vizibil pe ecran. Folosindu-le, este posibila si navigarea intre articolele deja introduse si editarea articolelor. Formularele pot afisa cate un singur articol odata, astfel ca introducerea de valori in campurile articolului afisat va fi foarte simpla si sigura. Formularele pot afisa articolele in ordinea definita de utilizator si permit selectarea numai a articolelor, care indeplinesc anumite criterii. Programul Access realizeaza o inlantuire intre formular si tabel: informatia tastata in formular va fi memorata in tabelul aferent formularului. Exista posibilitatea utilizarii unui singur formular pentru a introduce articole, simultan, in mai multe tabele. Formularele sunt inzestrate cu o bara de instrumente, prevazuta cu butoane de comanda pentru parcurgerea articolelor deja introduse, precum si un buton pentru introducerea unui articol nou. Pe bara se afiseaza numarul actual precum si numarul total de articole.
Exemplu : pentru a introduce articole in tabelul tblMarfa prezentat anterior se poate utiliza urmatorul formular:
MarfaID | ||
Nume |
Conserve de peste |
|
Cantitate | ||
PretUnitar |
5 lei |
|
Dataprocurarii |
Cheia primara
Puterea sistemelor care gestioneaza baza de date relationale consta in faptul ca, in astfel de sisteme, este posibila cautarea si prelucrarea simultana a informatiilor care sunt memorate in mai multe tabele distincte, prin intermediul diferitelor interogari, formulare si rapoarte. Pentru realizarea tratarii simultane a informatiilor provenite din mai multe tabele distincte, fiecare tabel trebuie sa aiba cel putin un camp(sau un numar de campuri) care sa contina o valoare unica pentru fiecare articol din tabel. Astfel, prin continutul acestui camp fiecare articol memorat in tabel poate fi identificat in mod unic. Informatia memorata in campul respectiv este denumita valoarea cheii primare, iar despre camp se spune ca are atributul de cheie primara a tabelului. Dupa ce utilizatorul desemneaza campul care va avea atributul de cheie primara a tabelului, programul Access va supraveghea permanent informatia care se introduce in campul respectiv. Astfel, in cazul in care utilizatorul introduce intr-un camp care are atributul de cheie primara o valoare care deja a fost utilizata sau nu introduce nici o informatie intr-un astfel de camp, programul Access sesizeaza imediat aceasta greseala si emite mesaj de eroare, cerand remedierea erorii.
Atributul de cheie primara de regula se atribuie unui camp care are tipul AutoNumber, deoarece informatiile continute in acest camp sunt generate de program, pentru fiecare articol nou se va genera automat un nou numar de identificare.
Daca intr-un tabel exista un anumit camp (de exemplu, de tip text sau de tip numeric), care intotdeauna contine valori unice, atunci campul respectiv poate avea atributul de cheie primara. Sa presupunem ca intr-un tabel cu evidenta populatiei exista un camp, in care se memoreaza codul numeric personal(CNP) al unei persoane. Campul respectiv poate avea atributul de cheie primara, deoarece nu exista doua persoane care au acelasi CNP. Campul care contine informatii referitoare la numele persoanei nu ar fi convenabil pentru atributul de cheie primara a tabelului, deoarece pot exista doua persoane cu nume identice.
In situatiile in care intr-un tabel nu poate fi gasit un camp, care sa contina intotdeauna valori unice, atributul de cheie primara poate fi asociat la doua sau la mai multe campuri, prin care se poate realiza identificarea unica a articolelor.
Intr-un tabel de evidenta a populatiei, asocierea atributului de cheie primara, pentru campurile referitoare la nume, data de nastere si domiciliu, ar putea fi suficiente pentru identificarea unui articol din tabel.
Indexarea
Un camp al unui tabel este indexat atunci, cand se cere ca programul sa ataseze campului respectiv anumite tabele interne, prin care se realizeaza accelerarea catarilor, sortarilor, gruparilor si filtrarilor de articole.
Exemplu: sa consideram un tabel care contine informatii referitoare la angajatii unei firme, avand structura urmatoare:
AngajatID(de tip AutoNumber);
NumeDeFamilie(de tip Text);
Prenume(de tip Text);
Salariu(de tip Number, Long Integer).
Tabelul contine 5 articole:
AngajatID |
NumeDeFamilie |
Prenume |
Salar |
Ionescu |
Vasile | ||
Popescu |
Maria | ||
Vasilescu |
Petre | ||
Radulescu |
Rodica | ||
Dumitrescu |
Carmen |
Daca se cere indexarea in ordine crescatoare a campului NumeDeFamilie, atunci programul Access va crea un tabel intern cu 5 intrari, de forma urmatoare:
AngajatID |
NumeDeFamilie |
|
Popescu |
||
Dumitrescu |
||
Ionescu |
||
Radulescu |
||
Vasilescu |
Prin indexarea campului NumeDeFamilie cautarile, sortarile, gruparile si filtrarile referitoare la numele de familie al angajatilor vor fi foarte rapide.
Tabele asociate intr-o baza de date
Proiectarea eficienta a unei baze de date implica separarea datelor in mai multe tabele, fiecare tabel avand o tema bine definita. Prin separarea datelor in mai multe tabele, cu teme unice, se evita repetarea informatiei si utilizarea datelor redondante, astfel ca se minimizeaza spatiul necesar memorarii datelor.
Datele izolate in tabele distincte, cu teme unice, in momentul prelucrarii lor trebuie sa fie reunite. In operatia de reunire a tabelelor se va comunica programului legaturile logice existente intre tabele. Astfel va fi posibila tratarea simultana a informatiilor, care provin din mai multe tabele. Primul pas in reuniunea informatiilor provenite din mai multe tabele consta in definirea relatiilor intre tabelele bazei de date. Dupa ce au fost definite aceste relatii, se poate trece la pasul urmator, in care se creeaza obiecte: interogari, formulare si rapoarte. Aceste obiecte permit afisarea simultana a informatiilor provenite din mai multe tabele izolate.
In marea majoritate a cazurilor intre doua tabele ale unei baze de date se stabilesc relatii de tipul „de la unu la mai multi”. Exista si alte tipuri de relatii: ”de la mai multi la mai multi” si „unu la unu”.
Relatia de tipul „de la unu la mai multi”
Sa presupunem ca o unitate comerciala doreste pastrarea informatiilor referitoare la activitatea societatii. Tabelul care urmeaza sa fie proiectat ar trebui sa contina doua categorii de informatii:
Informatii despre clienti( numele, adresa si telefonul clientilor);
Informatii despre tranzactii(data si valoarea comenzilor).
O prima varianta –de altfel eronata – ar fi crearea unui singur tabel, care sa cantina toate datele referitoare la activitate. Acest tabel ar avea urmatoarele sapte campuri:
ActID, identificatorul activitatii, de tip AutoNumber, cheie primara a tabelului, prin care se identifica in mod unic fiecare articol din tabel;
NumeClient, de tip text, care contine numele clientului;
AdresaClient, de tip text, care contine adresa clientului;
TelefonClient, de tip Number de dimensiune Long Integer, care contine numarul de telefon al clientului;
DataComenzii, de tip Date/Time, care contine data efectuarii comenzii;
ValoareaComenzii, de tip Number de dimensiune Long Ineger, care contine valoarea comenzii.
Tabelul astfel proiectat,in care au fost introduse 6 articole, ar putea sa aiba aspectul urmator:
ActID |
Nume Client |
Adresa Client |
Telefon Client |
Data Comenzii |
Valoarea Comenzii |
Popescu |
Cluj | ||||
Ionescu |
Dej | ||||
Anton |
Gherla | ||||
Popescu |
Cluj | ||||
Anton |
Gherla | ||||
Popescu |
Cluj |
|