Home - Rasfoiesc.com
Educatie Sanatate Inginerie Business Familie Hobby Legal
Doar rabdarea si perseverenta in invatare aduce rezultate bune.stiinta, numere naturale, teoreme, multimi, calcule, ecuatii, sisteme




Biologie Chimie Didactica Fizica Geografie Informatica
Istorie Literatura Matematica Psihologie

Access


Index » educatie » » informatica » Access
» Notiuni generale despre baze de date si Access


Notiuni generale despre baze de date si Access


Notiuni generale despre baze de date si Access 95

Scopul lucrarii :

Aceasta lucrare va prezinta :

la inceput, cateva notiuni de baze de date ( necesare, ca in orice domeniu de activitate) ;



apoi, o prezentare sintetica a termenilor cu care se opereaza in Access ;

si in final partea practica, in care veti folosi ceea ce s-a prezentat anterior pentru o prima sesiune de lucru cu Access 95 ( din pachetul Office 97) .

Introducere in domeniul bazelor de date

baza de date( 'database', prescurtat BD) reprezinta o colectie de informatii corelate, ce se refera la un anumit subiect. ( Se poate face o analogie cu o clasa din limbajele OOP.). Aceasta colectie este organizata intr-o structura specifica.

Pe langa colectia propriu-zisa de date, o BD mai contine si relatiile logice intre informatiile colectate, precum si tehnicile corespunzatoare de prelucrare.

BD odata creata trebuie administrata ( sau gestionata) . Fara a gestiona datele colectate se pierde total importanta bazei respective de date . Ea ar ajunge astfel o simpla arhiva si nimic mai mult. Ne-am intoarce, cu alte cuvinte, la demodatele teancuri de dosare sau cataloage de componente electronice si implicit la neplacuta sarcina de a cauta ceva ce se afla, parca de fiecare data, la baza teancului.

Cum datele continute intr-o BD presupun relatii logice, oricine poate fi interesat in capacitatea acesteia de a furniza solutii celor mai diverse probleme. Deci, apare de la sine inteleasa utilitatea existentei unor sisteme de gestiune a bazelor de date, sau prescurtat SGBD.

Functiile unui SGBD sunt :

construirea bazelor de date ;

introducerea informatiilor in BD ;

dezvoltarea de aplicatii cu BD .

Puteti asocia un SGBD cu o interfata intre user si modul intern de memorare a informatiilor.

In sfarsit, mergand de la general la particular, dintr-un SGBD se obtine un SRGBD, adica sistem relational de gestiune a unei baze de date . Acesta realizeaza controlul complex al unei BD folosind relatiile bine-definite ce exista intre informatiile colectate .

Access 95 este un SRGBD .

Componentele unei BD folosite in Access 95

O baza de date in Access 95 este compusa din mai multe entitati, numite obiecte .

Acestea sunt : tabele ( 'tables'), interogari ( 'queries'), formulare ('forms'), rapoarte ( ' reports'), comenzi macro ( ' macros') si module ( 'modules') .

Puteti vedea cum arata o BD Access 95 in figura 1 . Observati in partea de sus a ferestrei exact obiectele amintite( sub forma de etichete), ce compun baza de date .


Fig. 1 - Fereastra unei baze de date Access 95 .

Descrierea obiectelor

Tabele

Am spus mai inainte ca o BD este o colectie de date corelate, cu referire la un anumit subiect ( sau entitate). Toate aceste date( informatii) vor fi stocate in tabele. Pentru fiecare subiect ( entitate) trebuie creat un nou tabel . De exemplu, daca se doreste o BD cu referire la o biblioteca, atunci ne-am putea gandi la colectionarea datelor despre :

carti( cu numele si prenumele autorului, titlul cartii, editura, anul aparitiei, numar ISBN, numarul de cota al cartii respective s.a.) ;

gestionarea persoanelor inscrise la acea biblioteca( fisele de inscriere, cu numele si prenumele cititorului, adresa, numar de telefon etc.) ;

imprumuturi ( ce titlu, cui, pe ce perioada) ;

achizitii si improspatarea fondului de carte( titlul nou achizitionat, numarul de bucati, disponibilul din depozit) .

Pentru fiecare dintre aceste posibile entitati trebuie creat un tabel.

Structura unui tabel Access 95 este aratata in figura urmatoare( figura 2) .


Fig. 2 - Structura unui tabel .

Ce va contine un tabel ?

Orice tabel este organizat sub forma unei grile, cu randuri si coloane .

( vedeti figura 2) . Randurile se numesc inregistrari, iar coloanele se numesc campuri .

Un rand contine informatii despre un exemplar al entitatii respective( in exemplul dat anterior, pentru entitatea carte vom avea mai multe titluri, pentru cititor mai multe persoane).

O coloana tine un anumit atribut ( o caracteristica) al ( a) entitatii reprezentate in acel tabel( in exemplul anterior autorul unei carti, titlul cartii sau perioada de imprumut sunt fiecare o caracteristica a entitatii de care apartin) . Fiecare camp al unui tabel va contine acelasi tip de data pentru toate exemplarele .

Deci un tabel contine doua tipuri de informatie :

informatiile care descriu modul de alcatuire al tabelului, adica structura tabelului , care este data de inregistrari ;

datele propriu-zise, adica informatia continuta in campuri .

Interogari ( queries)

O interogare reprezinta o intrebare pe care o formulam, in legatura cu informatiile colectate in baza de date. In urma unei astfel de intrebari, mediul Access ne intoarce o multime de inregistrari, care pot face parte din unul sau mai multe tabele ale BD interogate . Multimea de inregistrari poarta numele de set dinamic rezultat al interogarii, sau mai scurt set dinamic rezultat . Am subliniat 'dinamic', deoarece este o calitate importanta. Ea ne spune ca daca in tabelul, sau tabelele sursa ( care au furnizat setul) apar modificari, acestea se vor reflecta si in set ( el continand valorile cele mai recente) .

Cand si Unde folosim o interogare ?

Rolul unei interogari este sa extraga din tabelele BD datele care ne sunt necesare la un moment dat .

O interogare are diferite utilizari :

afisarea numai a inregistrarilor care corespund criteriilor pe care le stabilim ;

afisarea inregistrarilor intr-o anumita ordine ( tot pe baza unor conditii) ;

combinarea inregistrarilor din mai multe tabele ;

realizarea de modificari similare in mai multe inregistrari dintr-un tabel, simultan ;

stergerea unor inregistrari ;

s.a. .

In majoritatea situatiilor, Access permite editarea datelor afisate de o interogare. Rezultatul editarii este scris inapoi in tabelul( tabelele) care au furnizat setul .

Atentie : aceasta comportare trebuie sa fie privita si dintr-un alt punct de vedere, diferit de cel ce o considera un avantaj . Astfel, o interogare poate furniza un numar de titluri de carti ce trebuie inlocuite din cauza uzurii. Printre ele se poate intampla sa existe si una( sau mai multe) care la o a doua privire sa nu necesite inlocuirea. Deci le stergem din randul celor ce trebuie neaparat schimbate. Stergerea va fi reflectata si in tabelul care a furnizat acele titluri pentru inlocuire. Rezultatul ? Se pierde definitiv inregistrarea corespunzatoare acelui titlu !

Trebuie retinut : o interogare nu are date proprii , ci opereaza cu ceea ce se citeste din tabele sau cu ceea ce se scrie in tabele .

Analogia cu o functie C cu parametri luati prin referinta este evidenta .

Formulare ( forms)

Formularul este o fereastra prin care se pot :

introduce date in BD ( cel mai adesea) ;

vizualiza datele unei inregistrari sau din setul dinamic rezultat al unei interogari ;

modifica sau elimina date .

Puteti vedea cum arata un formular in figura de mai jos ( figura 3) .


Fig. 3 - Un tip de formular Access 95

Ce contine un formular ?

Un formular poate contine subformulare pentru afisarea de date asociate . De exemplu cate carti s-au primit in ultima saptamana, sau ce cititori au intarziat predarea.

Formularele pot contine si butoane ( controale) care realizeaza actiuni specifice : deschiderea altor formulare sau tiparirea rapoartelor.

Avand in vedere toate acestea se poate spune ca formularul reprezinta interfata utilizator a unei BD Access 95 .

Retineti ca un formular contine doua tipuri de informatie :

informatii de structura care dau infatisarea si alcatuirea( adica : amplasarea; marimea si forma; numarul, tipul si caracteristicile sectiunilor; numarul, tipul, amplasarea si atributele controalelor s.a. ) ;

datele propriu-zise, afisate .

Rapoarte( reports)

In opozitie cu formularele ( folosite la operatiile de intrare intr-o BD Access 95) rapoartele indeplinesc operatiile de iesire . Datele sunt dirijate cel mai adesea catre o imprimanta, astfel ca orice doriti sa tipariti va arata cel mai bine sub forma de raport.

Atunci cand vom crea rapoarte vom avea la dispozitie din partea Access 95 programe 'wizard' pentru crearea tipurilor uzuale ale unui astfel de obiect.


Un raport arata ca in figura urmatoare ( figura 4).

Fig. 4 - Un raport Access 95 .

Comenzi macro( macros)

O comanda macro ( sau macro-comanda) este un obiect al unei BD Access95 ce contine o secventa de actiuni ce se repeta la dorinta noastra .

Va puteti gandi la acest obiect ca la un macro din limbajul de asamblare .

Ele se pot atasa unui formular, raport, unui buton( numit si control, ca la interfetele grafice Windows), unui element de meniu sau unei combinatii de taste .

Comenzile macro inlocuiesc programarea( care in Access 95 se face folosind Visual Basic pentru aplicatii - VBA) pentru actiunile de rutina, ca deschiderea unui formular sau tiparirea unui raport . Pot fi folosite in cazul proiectarii unei interfete simple catre baza noastra de date . Nu trebuie insa exagerata folosirea comenzilor macro, deoarece oricum ele nu sunt atat de eficiente precum o functie a limbajului de programare. De asemenea duce la pierderea unor posibilitati oferite de module( vezi 2.1.6).

Comenzile macro au rol important si in :

verificarea si validarea datelor ;

stabilirea valorilor pentru proprietatile obiectelor( controale, formulare, machete) ;

crearea interfetelor intre aplicatii si user .

Cum sunt create comenzile macro ?

Comenzile maco sunt create de catre programator. Nu se poate ca o astfel de comanda sa fie creata prin inregistrarea unei secvente de combinatii de taste .

O comanda de acest fel este compusa din actiuni asa cum am amintit mai sus . Actiunea indeplineste o sarcina bine-definita. Unele actiuni au nevoie de informatii suplimentare. Acestea sunt argumentele . De exemplu dorim sa deschidem un formular. Care ? Numele acestuia este absolut necesar macro-ului de deschidere al formularului. Trebuie, deci, furnizat ca atare, pentru a da sens operatiei de deschidere.

Actiunile ce compun o macro-comanda sunt oferite de Access 95 . Mediul ne pune la dispozitie o lista derulanta de actiuni pe care le putem folosi. Dar detaliile fiecarei operatii trebuie furnizate de noi .

Retineti ca :

o macro-comanda Access 95 reprezinta un set de actiuni ;

o macro-comanda Access 95 este analoga unui macro din limbajul de asamblare sau din C. Ea este codificata aici in limbajul definit de setul de actiuni disponibile;

folosind macro-comenzile facem tot o programare, dar la un nivel mai rudimentar.

Module( modules)

Pentru a discuta despre un modul trebuie sa spunem cate ceva despre programarea in VBA .

Astfel, ca in orice limbaj de programare, un program VBA este compus din instructiuni . Mai multe instructiuni formeaza o procedura ( denumirea trebuie respectata, ca in limbajul de asamblare ; nu asociati procedura cu functia din C).

Procedurile sunt de doua feluri :

daca realizeaza o activitate sau operatie se numesc proceduri Sub .

Cu o astfel de procedura se trateaza evenimentele din cadrul unui formular, raport sau control( buton) . De aceea mai poarta numele de proceduri de tratare a evenimentelor ;

daca realizeaza calculul unei valori se numesc proceduri Function ;

Deduceti de aici ca procedura nu poate fi numita functie . Puteti folosi totusi termenul de functie pentru usurinta, dar trebuie sa faceti diferenta intre functie si procedura .

Ce contine un modul ?

Modulul este un obiect Access ce contine o colectie de declaratii, instructiuni si proceduri din VBA . Va puteti gandi la el ca la un mic program, dar care nu are puterea de a rula ! De obicei se memoreaza in acelasi modul proceduri inrudite pentru rezolvarea unei anumite sarcini.

Tot ce se face cu o comanda macro se poate face cu un modul, si chiar mai mult.

Un modul poate fi de trei feluri :

modul pentru machete ;

modul pentru rapoarte ;

modul global .

Care este forma unui modul ?

Un modul asigura organizarea procedurilor unei aplicatii.

Fiecare modul contine :

o sectiune pentru declaratii ;

o sectiune de proceduri, unde apar procedurile ce prezinta legaturi logice intre ele ( asa cum am spus mai sus) .

Dupa cum se vede, forma unui modul este apropiata ca structura de cea a unui program, din care lipseste acea parte ce i-ar justifica denumirea ( si anume functia main( ) in C, sau etichetele 'Start' - 'end Start' din limbajul de asamblare ).

3. O prima sesiune de lucru Access 95

In acest paragraf vom afla cum se creaza o noua baza de date si cum ajunge aceasta functionala. Aflam cum sunt create tabelele pe care ea trebuie sa le contina si ce relatii pot aparea intre tabele .

Crearea unei noi baze de date

O BD noua se poate crea in doua moduri, depinzand de momentul ales pentru creare .

Astfel :

La start :

atunci cand lansati mediul Access 95, va aparea o caseta de dialog

( figura 5) .


Fig. 5 - Caseta de dialog ce apare automat la lansarea Access 95 .

De aici aveti doua optiuni :


Fara ajutorul programului 'wizard' : prin selectarea optiunii 'Blank Database' ( figura 6), ajungeti la fereastra aratata in figura 7. Aceasta este fereastra in care dati un nume noii baze de date pe care o creati.

Fig. 6 - In caseta de dialog de la start, se alege optiunea 'BlankDatabase'.


Fig. 7 - Ce nume va primi noua baza de date ?

Apasand OK ajungeti la fereastra din figura 8. Ce vedeti in figura 8 este o BD noua, necompletata ; prin selectia oricareia din etichetele cu numele obiectelor unei BD ( 'tables', 'queries' s.a.) ce apar in partea de sus a ferestrei, veti vedea ca nu exista nimic creat. Sarcina noastra este sa cream, pe parcursul lucrarilor de laborator, fiecare dintre aceste obiecte ;


Fig. 8 - Fereastra noii baze de date, asa cum apare dupa ce a primit un nume.

Cu 'wizard' : prin selectarea optiunii 'Database Wizard' ( figura 9) veti intra

in fereastra 'New' ( figura 10).


Fig. 9 - Selectati 'Database Wizard' daca doriti asistenta din partea Access 95

Exista doua etichete disponibile : 'General' si 'Blank Database' .

Alegand 'General' ( figura 10) veti crea o BD noua fara a folosi sabloanele de BD oferite de Access 95 ; se ajunge apoi la figura 7, dupa care figura 8, adica o noua BD gata de lucru ;

Alegand 'Databases' veti putea opta dintr-o multime de BD predefinite

( figura 10.1). Alegand unul dintre sabloane si confirmand cu OK urmeaza ferestrele din figurile 7 si 8. Se lanseaza apoi automat 'Database Wizard' si se intra intr-o sucesiune de pasi pentru specificarea unui model al bazei de date. Figura 12 va arata programul 'Database Wizard' in actiune .

Ceea ce aveti de facut la fiecare pas din Wizard este sa fiti atenti la intrebarile ce vi se pun, astfel incat sa dati raspunsurile corecte. Odata raspunsurile fiind date, apasati butonul 'Next'.


Fig. 10 - Dupa selectarea in caseta de dialog de la start a optiunii 'Database Wizard', ajungeti la aceasta fereastra .


Fig. 10.1 - Fereastra New cu eticheta 'Databases' marcata . Se observa variatele modele predefinite de BD oferite de Access 95 .

Se repeta succesiunea aceasta pana cand butonul 'Next' devine inactiv ( figura 11.1). Acum trebuie apasat butonul 'Finish', moment in care, folosindu-se toate informatiile pe care le-ati furnizat la fiecare pas, se va crea o noua BD ( vezi si figura 12) .


Fig. 11 - Unul din pasii pe care ii executa Database Wizard . Trebuie selectate informatiile dorite, dupa care se trece la pasul urmator( 'Next'). Se poate si reveni folosind 'Back' . La final se incheie procesul de creare cu 'Finish' .


Fig. 11.1 - Fereastra de final a programului Wizard. Butonul 'Next' este inactiv.

Se apasa 'Finish' si astfel este gata modelul bazei de date .


Fig. 12 - Programul Database Wizard in actiune .

Clasic, in orice moment, selectand in meniul File optiunea 'New

Database' .

Urmeaza fereastra din figura 10. Aici, cum am aratat, se poate alege una dintre etichete. Procedand astfel, se trece prin etapele prezentate deja la 1.2 .

se da un nume noii baze de date( figura 7) ;

se afiseaza fereastra unei BD necompletate ( figura 8) ;

se lanseaza automat de catre Access 95 programul Wizard pentru specificarea modelului ( parametrilor) bazei de date ( figura 11), daca s-a ales unul din sabloanele predefinite de BD.

LUCRAREA 2

Crearea tabelelor

Scopul lucrarii :

In lucrare se studiaza modul de creare a tabelelor cu si fara ajutorul programului Table Wizard , precum si toate comenzile necesare.

Crearea unui tabel

Fara tabele, o baza de date isi pierde intelesul, deoarece tabelele sunt cele care stocheaza informatia primara. Ca o analogie, ganditi-va la un calculator( PC) fara hard-disk ! si veti intelege imediat afirmatia anterioara.

! Nu uitati : inregistrare se numeste orice rand dintr-un tabel, iar camp se numeste orice coloana .

Inainte de a trece la crearea propriu-zisa trebuie sa cunoastem caracteristicile campurilor.

Astfel, un camp este un obiect cu urmatoarele atribute :

nume, care identifica un fiecare camp; este de maxim 64 de caractere, inclusiv spatiile ce apar ;

tip de data, care ne spune :

ce fel de valori se pot introduce in acel camp ;

cata memorie se aloca ;

ce operatii sunt permise cu acel camp ;

daca poate fi folosit in cazul unor indexari sau sortari ale inregistrarilor dupa valorile acestuia ;

text ( nota) explicativ( a) , unde putem insemna ce dorim pentru a descrie acel camp si utilitatea sa ( un fel de pro memoria).

Tipuri de date

Se face o descriere succinta a tipurilor de date acceptate de Access 95.

Acest paragraf este foarte util in intelegerea manevrarii inregistrarilor.

Tipul text ( text)

Acesta este tipul de data cel mai intalnit.

Access permite o lungime implicita( default) de 50 de caractere, dar puteti folosi oricate caractere intre 1 si 255.

Evident ca sub forma de text se pot stoca, unde este cazul: numele si prenumele, adresa, denumirea unui produs, titlul unei carti s.a. Pe langa acestea, tipul text poate fi util si in alte situatii care la prima vedere ar necesita alte tipuri de date. De exemplu un numar de telefon poate fi mai avantajos stocat ca sir de caractere decat ca numar pe 4 octeti( cazul numerelor noastre de telefon). De ce? Sa presupunem ca cineva gaseste ca este mai la indemana sa-si noteze numerele de telefon

sub forma : 312-5678, pentru a le retine mai usor ; sau sub forma 89.89.989. Intr-o astfel de scriere observati ca apar si caractere ( '-', '.'). Atunci este natural sa folosim tipul de data text pentru stocarea lor.

Tipul memo( memo)

Tipul memo consta numai din text .

Limita unui camp memo este de 64KB pentru fiecare inregisrare, adica aproximativ 16 pagini text scrise la un rand .

Campurile 'memo' pot aparea de mai multe ori intr-o inregistrare. Se da astfel posibilitatea user-ului de a-si face insemnari acolo unde are nevoie de ele.

Tipul numar( number)

Iata care sunt numerele acceptate, in ordinea crescatoare a numarului de octeti necesari pentru stocarea lor :

Intregi :

'byte' : este stocat pe un octet si poate tine valori intregi numai pozitive

( de la 0 la 255) ;

'integer' : este stocate pe doi octeti si poate tine numere negative si pozitive ( de la -2^16 pana la 2^16 - 1) ;

'long integer' : este stocat pe patru octeti si poate tine valori negative si pozitive ( -2^64 . 2^64 - 1) ;

In virgula mobila :

'single' : permite 7 cifre semnificative ;

'double' : permite 14 cifre semnificative ;

Tip special :

'ReplicationID' ( IdentificatorDuplicare sau IdentificatorMultiplicare) : este stocat pe 16 octeti. Are scopul de a asigura un identificator global unic ( GUID -Globally Unique Identifier) pentru acele BD ce administreaza cantitati mari de date. Modul intern de memorare impune o utilizare atenta a acestuia. Se recomanda folosirea lui doar in cazul in care numarul de inregistrari creste foarte mult intre doua sincronizari ale unei BD asupra careia se opereaza din partea mai multor utilizatori.

Tipul data calendaristica/ora( date/time)

Access stocheaza intern data calendaristica folosind un numar in virgula mobila pe 8 octeti. Ziua este interpretata ca o fractiune dintr-o zi.

Modificand proprietatile acestui tip de data se pot obtine diferite comportari. Proprietatile unui camp se modifica din partea de jos a ferestrei unui tabel deschis in modul 'Design'. Mai tarziu veti vedea cum se ajunge la modul Design( proiectarea unui tabel).

Deocamdata retineti doar ca :

daca doriti ca Access 95 sa introduca automat data curenta, trebuie setata proprietatea unui camp de acest tip la '=Date()' . Pentru a se obtine automat si data si ora trebuie folosita optiunea '=Now()' .

proprietatea 'Format' trebuie setata( stabilita) pentru toate campurile de tipul date/time. Aceasta definitie va fi transmisa din tabel catre interogari, formulare si rapoarte . Aveti optiunile :

'Short Date' : reprezintarea anului in format cu doua cifre . Este suficienta in majoritatea cazurilor ;

Short Date redefinita : reprezentare anului in format cu patru cifre. Modificarea se face astfel : Start->Settings->Control Panel->Regional Settings. Aici selectati eticheta 'Time' si unde apare 'Short date' modificati valoarea astfel incat in dreptul anului sa apara 'yyyy' in loc de 'yy'. Apoi dati 'Apply' urmat de OK .

Tipul valuta( currency)

Acest tip este reprezentat intern in virgula fixa. Puterea lui de memorare este :

pentru numere intregi poate tine pana la 15 cifre ( deci pana la 10 la puterea 15) ;

pentru numere fractionare poate tine pana la sutimi dintr-o unitate .

Pe scurt : 15 cifre inainte de virgula ( la dreapta virgulei) si 4 cifre dupa virgula ( la stanga virgulei) .

Reprezentarea interna confera tipului valuta precizia necesara calculelor financiare, dar si o comportare inferioara d.p.d.v. al vitezei ( este mai lent) relativ la tipul numar ( intreg sau virgula mobila).

Tipul numar cu incrementare automata( autonumber)

Tipul implicit in reprezentarea interna este intreg lung( 'long integer'), deci pe 4 octeti.

O data de acest tip poate fi :

secventiala, ce ajuta la generearea unor numere unice ;

aleatoare, cu ajutorul careia se pot genera numere aleatoare. Aceste numere pot fi utile de exemplu intr-o problema de amestec, sau intr-un concurs cu premii, la desemnarea castigatorului.

Retineti ca desi acest tip are o reprezentare interna implicita, Access permite user-ului sa modifice aceasta reprezentare . Deoarece acest tip este tot un numar se poate folosi si 'ReplicationID' in loc de valoarea implicita. Se recomanda folosirea lui 'ReplicationID' atunci cand se lucreaza simultan cu aceeasi BD, iar

numarul de inregistrari are variatii rapide ( creste foarte repede intre doua sincronizari ale BD curent folosite).

La ce foloseste numarul cu incrementare automata ?

Numarul cu incrementare automata da o ordine inregistrarilor.

Fiecare inregistrare, pe masura ce este introdusa, capata un numar de ordine. Daca se renunta la introducerea unei inregistrari, numarul cu autoincrementare corespunzator este sarit si nu va mai fi atribuit ulterior. De asemenea, in cazul stergerii unei inregistrari nu exista posibilitatea crearii unei alte inregistrari cu acelasi numar. Acel numar nu mai poate fi folosit.

Este cel mai bine ca in relatiile intre tabele sa folositi un numar cu autoincrementare .

Tipul da/nu( Yes/No)

Este corespunzator tipului boolean din limbajele de programare.

Poate contine opozitii ca: Yes/No; On/Off; True/False .

Cum poate fi folosit ?

Daca dintr-un tabel sunt dorite anumite inregistrari se poate folosi acest tip pentru selectie/deselectie. Alegerea nu se face automat, ci o faceti dvs. Prin stabilirea tipului la una din cele doua valori logice.

Tipul obiect OLE ( OLE object)

La specificarea acesteui tip acel camp permite folosirea unor obiecte provenite din alte aplicatii( programe Windows 95) care s-au inregistrat ca servere OLE. Este permisa stocarea intr-o baza de date a unor documente ( create cu un procesor de text), foi de calcul Excel, imagini ( de diferite formate), sunete s.a. .

Tipul wizard de cautare ( Lookup Wizard)

Un camp cu acest tip este capabil de a cauta in alte tabele. Ce cauta ?

Depinde de BD respectiva. De exemplu ce cititor are imprumutata cartea al carei titlu se cunoaste. In tabelul cartilor se va crea un camp cu tipul Lookup Wizard care va stoca valoarea identificatorului tabelului cititorilor si va afisa numele acestuia.

Proprietatile campurilor

Acestea apar in partea de jos a ferestrei de proiectare a unui tabel ( figura 13).


Fig. 13 - Proprietatile campurilor. Observati in partea de jos a ferestrei doua etichete : 'General' si 'Lookup'. Din cauza ca tabelul nu are nici un camp completat, aceste etichete nu contin nimic .

Format ( format)

Este sub forma de sir. Are influenta asupra modului de afisare ( output) al datelor.

Puteti sa va ganditi la sirul de formatare al functiei 'printf()' din C. Specificatorii de format forteaza functia sa afiseze datele dupa cum ii stabilim noi, tinand cont de contextul respectiv.

Sirul de format Access poate contine :

un format predefinit cum sunt : Currency, Percent( procent) sau Short Date( anul in format cu doua cifre) ;

un format personalizat stabilit de utilizator ; personalizarea se face pe baza unor caractere de formatare speciale specifice tipului de camp.

Masca de intrare ( input mask)

In opozitie cu 'Format', 'Input Mask' controleaza modul de introducere al datelor ( partea de 'input').

Pentru fiecare caracter introdus 'Input Mask' determina daca :

este caracter optional sau obligatoriu ;

tipul de caracter : numeric, alfabetic, alfa-numeric sau orice caracter .

In plus se poate stabili daca se introduc caractere majuscule sau minuscule si daca ele se dau de la dreapta la stanga sau invers.

Access 95 are introdusa si o noua masca fata de versiunile anterioare.

Aceasta este masca 'password' care determina ca toate caracterele unui camp sa fie afisate ca asteriscuri.

Titlu ( caption)

Pentru un camp care nu are stabilita aceasta proprietate se va folosi ca titlu al campului chiar numele introdus in acel camp .

Unde se foloseste ?

Valoarea acestei proprietati este folosita :

la afisarea numelor de campuri, in situatia cand un tabel este prezentat in modul 'Datasheet' ( Foaie de date). Acesta este modul implicit utilizat de Access 95 ;

in cadrul unui formular, ca eticheta a unui control legat de un anume camp ;

pentru afisarea unui spatiu intr-un nume de camp care nu-l are in mod obisnuit. De exemplu un camp are denumirea 'FisaImprumut'. Putem folosi acest nume ca 'Fisa Imprumut' daca ii stabilim proprietatea 'caption' la 'Fisa Imprumut'.

Valoare implicita ( default value)

Access 95 foloseste anumite valori implicite pentru diferitele tipuri ale unui camp ( vezi paragraful tipurilor de camp). Trebuie sa intervenim si sa modificam ceea ce Access stie dinainte, daca dorim o alta valoare decat cea prestabilita. De exemplu tipul Yes/No are valoarea prestabilita 1( adica 'true').

Pentru a intelege mai bine ganditi-va la un nou program instalat. Inainte de a-l configura dupa dorinta, el totusi functioneaza utilizand anumite setari implicite ale producatorului. Sau, rezolutia implicita a lui Windows 95 la instalare este 640*480*16. Cine doreste altceva poate schimba aceasta setare.

Regula de validare( Validation Rule) si text de validare

( Validation Text)

-> Regula de validare este un text pe care il introduceti pentru a stabili o anumita limitare asupra datelor.

Restrictiile sale sunt :

accepta maximum 255 de caractere ;

nu poate contine o trimitere la un alt camp sau obiect ;

nu poate include functii definite de dvs. Si nici functii domeniu( cum este 'Dlookup()' ) .

Pe baza regulii de validare se verifica limitele intervalului in cazul unui camp. De exemplu dintre toate datele de tip numar ce se pot introduce ne intereseaza doar acelea din intervalul [ 0, 100] . Regula de validare va fi atunci stabilita la 'Between 0 and 100' . Regula de validare foloseste in crearea ei operatori oferiti de Access. In exemplul dat operatori sunt : Between si and.

-> Textul de validare reprezinta mesajul afisat in cazul in care se incalca regula de validare. Este un mesaj de eroare ce da lamuriri asupra modului de rezolvare.

Necesar ( required)

Spune daca acel camp trebuie neaparat sa apara sau nu, adica daca trebuie sau nu sa fie completat . Daca doriti ca un camp sa fie neaparat completat atunci stabiliti valoarea 'Required' la Yes.

Un camp care trebuie sa apara este cheia primara a oricarui tabel.


Acesta apare pe prima pozitie ( primul rand al unui tabel). Access va va atentiona cu un mesaj daca nu stabiliti un camp primar pentru un tabel.

Este foarte util la campurile 'Foreign Key' ( Cheie straina) pentru ca impune o valoare pentru acel camp, valoare necesara in relatia stabilita intre acel tabele.

Proprietatea 'Permite valoare zero'( Allow Zero Length)

Ce utilitate are ?

- Este folosita doar pentru campuri de tip text !

- Apare in Access 95 pentru compatibilitate cu alte baze de date .

In Access 95 este permisa in lucru atat valoarea zero cat si valoarea nula .

Atentie ! Faceti distinctia intre o valoare nula si o valoare zero.

Valoarea nula arata ca nu se stie nimic despre un anumit camp. Acel camp nu exista daca are valoare nula !

Valoarea zero arata ca se cunoaste ceva despre acel camp, si anume ca acel camp trebuie sa ramana necompletat. Dar el exista !

Exista o valoare implicita pentru 'Allow Zero Length' si anume 'No' .

Indexat ( Indexed)

Se refera la folosirea unor indecsi pentru numerotarea inregistrarilor unui tabel.

Puteti vedea in figura 14 cum apare aceasta proprietate de camp.

Cand este util ?

atunci cand valoarea continuta de un camp are o viteza mare de variatie ;


atunci cand campul este folosit intens in criteriile de selectie sau sortare .

Fig. 14 - Valorile posibile ale lui 'Indexed' .

Proprietatea de camp 'Indexed' are ca valori posibile pe :

Yes/No : dorim ca acel camp sa fie sau nu indexat ;

Yes( No Duplicates) : campul este indexat dar nu se poate repeta ;

Yes( Duplicates OK) : campul este indexat si se poate repeta( de exemplu numele unui autor de carte care are in biblioteca mai multe titluri) .

Pe langa indexarea separata a campurilor exista posibilitatea de a indexa si o multime de campuri, care vor fi privite apoi ca o unitate. Aceasta se face folosind fereastra Indexed din meniul 'View'.

Retineti : tot un index este si cheia primara( Primary key) !

Cautare ( Lookup)

In Access 95 orice camp accepta o eticheta 'Lookup' noua in cadrul proprietatilor sale.

Vedeti figura 15 unde este prezentata eticheta 'Lookup' din partea de jos a unui tabel deschis in mod design .


Fig. 15 - Eticheta 'Lookup' activa pentru un camp de tip text.

Observati optiunea implicita pentru tipul de control : 'combo box' .

Rezultatul este selectarea tipului de control ce va reprezenta campul respectiv in modul Datasheet de lucru cu tabelele, precum si in noile formulare ce vor fi create.

Astfel :

campurilor de tip Yes/No le corespunde implicit controlul de tip 'Check Box' ( caseta de validare) ;

campurilor de tip Text si Number le corespunde implicit controlul de tip 'Text Box'( caseta de text) .

Obs.:

puteti schimba controlalele de mai sus cu altele.

Eticheta Lookup este valabila doar pentru campuri de tipul dat mai sus .

Crearea unui tabel nou

Dupa partea teoretica din 3.2.2 deosebit de necesara trecem la partea practica referitoare la crearea de tabele. Prezentarea se face pe pasi ; la fiecare pas este data si o figura pentru ca astfel aceasta platforma sa va poata fi de un real folos ( chiar si in lucrul acasa).

Crearea unui tabel presupune parcursi pasii de creare a unei noi BD ( vezi paragraful 3.1) .

Pasul 1 :


Din fereastra unei noi BD( adica o BD necompletata) se selecteaza eticheta 'Tables' si apoi se apasa butonul 'New', dealtfel singurul activ( vezi figura 16 de mai jos, adica figura 8 pe ansamblul textului platformei).

Fig. 16 - Eticheta 'Tables' este selectata. Ramane sa apasati butonul 'New'.

Pasul 2 :


Ajungeti in fereastra urmatoare( figura 17). Aici puteti alege intre cele doua moduri de creare a unui tabel : cu si fara Table Wizard .

a) b)

Fig. 17 - a) Optiunea fara Wizard ; b) Optiunea cu Wizard .

Pasul 2.1 : Fara Table Wizard


Selectati modul 'Design View'( figura 17-a). Dupa ce confirmati cu OK ajungeti in fereastra prezentata in figura 18. Ce vedeti este un tabel in modul de proiectare( Design).

Fig. 18 - Un nou tabel la inceputul fazei de proiectare( Design).

Ce date introducem in noul tabel?

Observati ca fereastra unui tabel in faza 'Design' prezinta trei coloane( care nu sunt aceleasi cu coloanele tabelului !) : 'FieldName'( Numele campului), 'Data Type' ( Tipul de data al campului) si 'Description'( Descriere) . In procesul de creare a tabelului se parcurg aceste coloane de la stanga la dreapta si se coboara apoi la campul urmator, unde se reia parcurgerea coloanelor s.a.m.d. pana se introduc toate campurile dorite .

Primul camp al unei inregistrari este bine sa fie mereu 'cheia primara'    ( Primary Key). Aceasta identifica unic fiecare noua inregistrare ce se adauga tabelului. Dati acestui camp denumirea 'StaffID'( IdentificatorPersonal). Ca tip de data alegeti 'AutoNumber' . Se asigura astfel ca fiecare noua inregistrare primeste un numar unic. Acest camp este stabilit apoi cheie primara prin apasarea butonului 'Primary Key' din bara de instrumente ( din toolbar). Odata introdus acest tip daca va uitati in josul ferestrei, la proprietatile campului, vedeti cum tipul intern de reprezentare este cel implicit( long integer) si cum acest tip de data este indexat/fara repetare: Yes( No Duplicates) ( vezi 3.2.2.8 proprietatea Indexed) .

Urmatoarele doua campuri sunt NumeFamilie ( Surname) si Prenume( First Name) ambele de tip text. In 'Field Properties' putem alege o dimensiune acoperitoare, de exemplu 30. Deoarece sunt doua campuri cu utilizare intensa in operatii de selectie sau sortare putem stabili proprietatea Indexed la Yes. Marim astfel viteza de manipulare a lor. Daca doriti ca numele de familie sa fie afisat cu un spatiu puteti stabili Caption la Nume Familie.

Campul urmator poate fi cel de stare( Status). Semnificatia lui este aceea de angajat cu norma intreaga, cu parte dintr-o norma, sau angajat pensionar( a carei angajare a incetat). Fiecare dintre aceste situatii este simbolizata printr-o litera : F pentru angajarea full-time, P pentru angajare part-time si R pentru cel retras din munca. Daca firma face noi angajari iar cei mai multi dintre noii angajati sunt cu norma intreaga, atunci se pote stabili proprietatea 'Default Value' la F ( full-time).

Urmeaza un camp ce tine persoana care supervizeaza ( Supervisor). Supervizorul este una din persoanele acestui tabel. Aceast camp este de tip Number cu Field Length setat la Long Integer, adica de acelasi tip cu cel al identificatorului ( StaffID) . Deoarece campul acesta va fi dat ca o referinta, in loc sa se introduca intreg numele supervizorului se poate face identificarea acestuia prin numarul sau de ordine din tabel. De aceea este dat de tip numar.

Trebuie sa ne gandim ca fiecare angajat este platit functie de numarul de ore de munca. Deci un camp util este tariful orar ( HourlyRate). Tipul este Currency ( Valuta).

Apoi campurile ce compun adresa : Address, City, District ( sa spunem judetul), State( Tara) . Toate sunt de tip Text, cu Field Length pus la 80.

Codul postal va fi si el de tip Text cu Field Length de 5 caractere.

Mai alegem si un camp ce spune data nasterii ( BirthDate). Acesta are tipul evident Date/Time pe care il vom stoca sub forma scurta a anului( pe doi digiti), deci Short Date in proprietatea Format.

- Penultimul camp este cel ce ne spune data angajarii JoinDate. El este de tipul Date/Time cu formatul scurt pentru an : Format este Short Date.

Bineinteles ca putem adauga si alte campuri( ca data inceperii angajarii, data pensionarii, daca este transferat din alta institutie s.a.) dr nu o vom face.

Ultimul camp poate fi util : o scurta descriere a angajatului. Sa-l numim Note ( Note). Este evident de tip text si putem pune pentru el 100 de caractere.


Acesta este primul tabel creat de dvs. . Sau poate ca ati mai lucrat in alte baze de date. El arata ca in figura 19.

Fig. 19 - Noul tabel este gata. Proiectarea lui a luat sfarsit.

Tabelul trebuie salvat. Mergeti in meniul File -> Save As, sau folositi din toolbar iconita dischetei( fiind prima salvare va este cerut numele tabelului).

Vedeti figura 20.


a) b)

Fig. 20 - Noul tabel trebuie salvat sub un nume in cadrul BD curente:

a)      Forma de salvare prin meniu ( File->Save As) ;

b)      Forma de salvare folosind iconita dischetei din bara de instrumente.

Pasul 2.2 : cu Table Wizard


Pe langa avantajul rapiditatii si al asistentei oferite automat, aceasta metoda are dezavantajul ca tabelul creat trebuie ales dintr-o multime de modele predefinite si nu poate fi personalizat. In figurile 21.a, 21.b, 21.c, 21.d, 21.e este data succesiunea pasilor .


Fig. 21.a si 21.b - Selectam modul Table Wizard ( 21.a) si apoi un model personalizat de tabel ( prin marcarea lui 'Personal') ( 21.b). Se aleg apoi campurile ce se doresc sa apara in noul tabel( Fields in my new table) ( 21.b).

Prin marcarea lui 'Business' apar alte modele de tabel.


Fig. 21.c - Se da numele tabelului si se hotaraste daca programul wizard va crea automat o cheie primara. Aceasta poate fi setata si de catre dvs. prin intermediul iconitei cu cheie din toolbar.


Fig. 21.d - Exista vreo relatie intre noul tabel si vreun altul ? Nu, deoarece altul nu mai exista. Se continua cu Next .


Fig. 21.e - Noul tabel este gata sa fie creat.

Pentru figura 21.e :

Dupa cum vedeti, aici trebuie sa alegeti una dintre cele trei optiuni .

puteti marca optiunea 'Modify the table design' pentru a intra in modul de proiectare a tabelului; in aceasta faza se va face aceasta marcare ;

sau puteti marca optiunea 'Enter data directly into table' daca doriti sa introduceti direct date in tabel ( aceasta presupune ca l-ati proiectat deja, ceea ce nu este cazul);

in fine, puteti introduce date in tabel folosind un formular, prin marcarea celei de-a treia optiuni - de asemenea nu este cazul. Formularele vor fi prezentate in lucrarea 2 de laborator.


Tabelul nou obtinut poate fi apoi reproiectat sau deschis pentru introducerea datelor, prin apasarea, din fereastra aratata in figura 22, a butoanelor : Design si respectiv Open .

Fig. 22 - Odata creat un tabel poate fi oricand deschis( Open) sau reproiectat ( Design) .


Dupa ce un tabel a primit o structura ( un model) prin operatia de proiectare el trebuie "umplut" cu date. Acesta este scopul lui. In fereastra din figura 22 se selecteaza tabelul dorit si se apasa Open. Ajungeti in fereastra prezentata in figura 23. Aici incepeti sa completati fiecare camp pe baza structurii lor.

Fig. 23 - Campurile trebuie completate pe baza sablonului lor, stabilit la operatia de proiectare.

LUCRAREA 3

Relatii intre tabele

Scopul lucrarii :

In cadrul lucrarii se studiaza tipurile de relatii intre tabele si comenzile pentru crearea lor.

Crearea relatiilor intre tabele

Intr-o BD Access 95 bine proiectata datele sunt stocate in mai multe tabele. Deoarece Access este un SRGBD inseamna ca el permite asocierea si extragerea informatiilor inrudute care sunt memorate in tabele. Altfel o BD ar fi lipsita de sens.

Retineti : tabelele dintr-o BD relationala sunt corelate !

Ce trebuie pentru a realiza o asociere ?

Pentru ca doua sau mai multe tabele sa permita asocierea este obligatoriu ca ele sa contina unul sau mai multe campuri care prin constructie sa identifice unic fiecare inregistrare din acel tabel . Acest camp este cheia primara. Corelarea se realizeaza apoi prin introducerea unor campuri cu acelasi nume si de acelasi tip de data ( sau compatibil) in

fiecare tabel dintre cele care se doresc a fi asociate.

Campurile comune prin care se face asocierea sunt cheie primara pentru un tabel si cheie externa pentru celalalt. Se recomanda ca acest camp sa fie identic in toate tabelele corelate, iar tipul lor sa fie acelasi sau compatibil. Procedand astfel Access poate crea automat corelatiile atunci cand tabelele sunt parete a unei interogari.

In concluzie, retineti ca pentru a crea o relatie intre tabele trebuie :

sa selectati acele tabele pe care le doriti legate, functie si de anumite criterii logice si inrudiri intre ele ;

tabelele trebuie sa contina fiecare campurile comune ;

campurile pe care se va baza relatia sa contina valori cu acelasi nume si de acelasi tip de data ( sau compatibil).

Tipuri de relatii

Sunt de trei tipuri :

1-la-1 ( one to one) ;

1-la-n ( one to many) ;

n-la-n ( many to many) .

In ordinea in care ele apar cel mai des avem :

1-la-n

Este cea mai frecvent intalnita si cea mai utila.

Prin definitie intr-o relatie 1-la-n o inregistrare din tabelul din partea "unu" a relatieipoate avea mai multe inregistrari corespondente in tabelul din partea "mai multi", dar o inregistrare din tabelul din partea "mai multi" poate avea cel mult o inregistrare in tabelul din partea "unu" .

Pentru crearea acestei relatii adaugam campurile care constituie cheia primara in tabelul din partea "unu" drept chei externe in tabelul din partea "mai multi".

n-la-n

Este cea mai generala.

Prin definitie, in acest tip de relatie o inregistrare din tabelul "unu" poate avea mai multe inregistrari in tabelul "mai multi" si reciproc, o inregistrare din tabelul "mai multi" poate avea mai multe Inregistrari in tabelul "unu" Pentru a ne da seama de o astfel de relatie ea trebuie studiata din ambele directii !

Solutia pentru crearea unei astfel de relatii este un tabel intermediar care separa relatia n-la-n intr-o pereche de relatii 1-la-n . In acest tabel inermediar vom pune cheile primare din ambele tabele ale relatiei n-la-n .

De exemplu relatia intre cititor si carte. Privita dinspre cititor: un cititor poate imprumuta mai multe carti. Privita dinspre carte: o carte poate fi imprumutata mai multor cititori( exista mai multe exemplare disponibile dintr-un volum). Deci am descompus relatia mai multi cititori - mai multe carti intr-o pereche de relatii 1-la-n. Tabelul intermediar care poate fi creat este Imprumuturi, in care introducem cheile primare din tabelul Cititori si din tabelul Carti.

In exemplul concret, relatia n-la-n este posibila intre 'tblClients' si 'tblJobs'

aratata in figura 24.

Fig. 24 - Relatia n-la-n separata in doua relatii 1-la-n .

1-la-1

Aceasta este cea mai rar intalnita.

Prin definitie, in acest tip de relatie o inregistrare din tabelul "unu stanga" poate avea cel mult o inregistrare corespondenta in tabelul "unu dreapta" si reciproc, o inregistrare din tabelul "unu dreapta" poate avea cel mult o inregistrare corespondenta in tabelul "unu stanga" .

Aceasta relatie este similara cu un singur tabel in care se inroduce un camp nou. Astfel tabelul cuprinde campurile din ambele tabele ce apartin relatiei.

Pentru crearea acestui tip de relatie intalnim situatiile :

daca ambele tabele au acelasi subiect ( adica aceeasi cheie primara) stabilim relatia punand acelasi camp in ambele tabele ;

daca tabelele au subiecte diferite, cu chei primare diferite, alegem unul dintre tabele si ii punem cheia primara in celalalt tabel, pe post de cheie externa ( sau chie straina).

Cand este folosita o relatie 1-la-1 ?

in cazul structurilor foarte mari, care depasesc limita de 255 campuri intr-un tabel ;

cresterea eficientei in cazul in care numai cateva inregistrari au nevoie de campuri aditionale ;

asigurarea securitatii datelor, in cazul in care campurile din cel de-al doilea tabel sunt facute disponibile celui care supervizeaza .





Politica de confidentialitate





Copyright © 2024 - Toate drepturile rezervate