Creeaza.com - informatii profesionale despre


Evidentiem nevoile sociale din educatie - Referate profesionale unice
Acasa » scoala » informatica » access
Crearea tabelelor in access

Crearea tabelelor in access


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.



PREZENTARE TEORETICA

INTRODUCERE

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 sau comentariu C).

Exemplu

In aceasta lucrare continuam exemplul firmei de calculatoare inceput in lucrarea 1, astfel incat la fiecare pas teoretic pe care il parcurgem, sa existe si corespondentul practic.

Se va construi unul din tabelele care fac parte din acest exemplu, urmand ca la sfarsitul lucrarii sa fie date ca exercitiu si celelalte tabele.

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.

CONVENTIE :

Dupa descrierea fiecarui nou tip de data, se arata care este campul corespunzator acelui tip de data in tabelul ales ca exemplu practic.

Pe parcursul lucrarii, cele anuntate vor fi in detaliu explicate, astfel :

- in cadrul paragrafului "Proprietatile campurilor" se arata cum sunt alese diversele game de valori pentru un anumit tip de data ;

- in cadrul paragrafului "Crearea unui tabel nou" sunt descrisi pasii necesari pentru a crea efectiv structura tabelului la care se face referire in exemplul ales.

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.

Exemplu : tabelul 'tblSoftware' ( posibil si obligatoriu In cadrul unei firme) contine urmatoarele campuri ( figura 1):

Fig. 1 - Campurile posibile ale tabelului 'tblSoftware' .

In tabelul 'tblSoftware' exista doua campuri de tip 'Text', si anume : 'numePachet' si 'versiune'. In ce priveste versiunea, nu uitati ca ea cuprinde si caractere punct ('.'), sau litere -ca in 3.0.129a- si deci putem folosi tipul 'Text' pentru aceasta.

Stabilirea unuia sau a altuia dintre capurile de date disponibile se face printr-un clic-stanga in locatia corespunzatoare fiecarui camp, in coloana 'Data Type'

( figura 2).

Aici se stabileste tipul campului 'licentaID' la 'Number'. Vom vedea ulterior ( in sectiunea "Proprietatile campurilor") cum stabilim si gama de valori dorita pentru un anume tip de data .

Fig. 2 - Alegerea tipului dorit de data.

Tipul 'memo' ( 'Memo')

Tipul memo consta numai din text .

Limita unui camp memo este de 64KB pentru fiecare inregistrare, adica aproximativ 4 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. Echivalentul C este comentariul.

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^32 . +2^32 - 1) ;

In virgula mobila :

'single' : permite 7 cifre semnificative ;

'double' : permite 14 cifre semnificative ;

Tip special :

'ReplicationID' ( IdentificatorDuplicare sau IdentificatorMultiplicare) : este stocat pe 4 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.

Exemplu : In cadrul tabelului pe care il construim, exista un camp de tip 'Number': 'licentaID'. Acesta este un camp de legatura cu un alt tabel. Deocamdata nu ne intereseaza semnificatia campului ( despre campuri de legatura se va vorbi in lucrarea 'Crearea relatiilor intre tabele'), ci tipul de data. Acesta este un numar tip 'Long Integer' ( adica 2^32 valori, in gama -2 Giga .2 Giga -1).

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 :

pentru data

Short Date : 20.04.1998, adica reprezentarea 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 .

Subtipurile acestuia sunt :

Medium Date - forma datei este 20-Apr-1998, deci anul pe patru digiti, dar numele lunii trunchiat ;

Long Date - de forma : 20 Aprilie 1998, adica anul in format pe patru digiti, luna in denumire completa ;

General Date - avand forma : 20 Aprilie 1998 18:10:25, adica : anulin format pe patru digiti, luna din an in denumire completa si timpul in format lung( Long Time) ;

pentru timp

Short Time - de forma 21:05 ;

Medium time cu forma : 21:05 PM, deci apare si indicatorul perioadei din zi ( AM/ PM) ;

Long Time - cu forma : 21:05:17, adica apar si secundele .

Exemplu : tabelul 'tblSoftware' contine un camp de tip 'Date/Time' numit 'data Achizitie', iar formatul sau este 'Long Date'( de forma : 21 aprilie 1987), deci atat luna cat si anul au forma 'lunga', sau completa .

Tipul 'valuta' ( 'Currency')

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

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

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

Pe scurt : 3 cifre inainte de virgula ( la stanga virgulei) si 4 cifre dupa virgula ( la dreapta 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).

Exemplu : tabelul 'tblSoftware' contine campul 'pretAchizitie' de tip 'Currency'. In cadrul proprietatilor acestui camp formatul este chiar 'Currency' .

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 .

Exemplu : cheia primara a tabelului 'tblSoftware' este de tip 'AutoNumber'( stabilirea numarului fiecarei inregistrari este facuta automat de Access95). Se poate alege si de tip 'Number - Long Integer', dar in acest caz trebuie sa stabilim noi numarul fiecarei inregistrari.

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.

Exemplu : campul corespunzator acestui tip de data in tabelul 'tblSoftware' este 'licenta'. Se poate alege si un mod de afisare( din trei posibile - Yes/No, On/Off si True/False), folosindu-ne de proprietatile campului.

Tipul 'obiect OLE' ( 'OLE object')

La specificarea acestui 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.

Exemplu : in tabelul 'tblSoftware' se poate crea un camp cu tipul 'Lookup Wizard' care va stoca valoarea cheii primare ( identificatorului) a unora sau a tuturor licentelor din tabelul de licente ( aceasta problema se va discuta in cadrul relatiilor intre tabele). Tabelul 'tblSoftware' contine un astfel de camp, si anume campul 'licentaID' care se va completa cu valori ale cheii primare a tabelului 'tblLicenta' .

Proprietatile campurilor ( 'Field Properties')

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

Fig. 3 - 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.

Exemplu : ati vazut pana acum ca tabelul la care lucram are stabilit pentru fiecare camp - functie de tipul acestuia - un anumit format. Astfel:

campurile 'Text' nu au nevoie de format ;

campul cheie primara de tip 'AutoNumber' poate opta intre : 'AutoNumber' si 'ReplicationID' ;

pentru campurile 'Number' trebuie sa alegem acea gama de valori care rezolva cel mai bine problema in cauza(Byte, Short Integer, Long Integer, Single, Double, ReplicationID) ;

campurile 'Date/Time' contin obligatoriu un anume format : data scurta, data medie, data lunga, data generala, timp scurt, mediu sau lung ;

campurile 'Yes/No' pot avea trei forme de afisare : Yes/No, On/Off si True/False ;

campurile tip 'Currency' pot avea un singur format : 'Currency' .

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'.

Exemplu : se poate opta pentru o alta denumire pentru oricare dintre campurile tabelului 'tblSoftware'. In acest caz se completeaza randul 'Caption' cu acea combinatie de caractere pe care o doriti drept un nou nume al campului. Asa de exemplu putem numi campul 'numePachet' drept 'Numele Aplicatiei', prin completarea randului 'Caption' cu textul : Numele Aplicatiei .

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.

Exemplu : daca pretul in cazul mai multor pachete este acelasi, sau are o valoare preferentiala, atunci il putem stabili ca valoare implicita. Interpretarea este aceea ca atunci cand ajungem sa completam acel camp, putem sa lasam valoarea implicita care va aparea ( din moment ce am stabilit o asemenea valoare) sau sa introducem o alta. Un alt exemplu este acela in care multi angajati ai firmei poarta numele de Ionescu sau Popescu.

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.

Exemplu : pentru campul 'dataAchizitie' putem impune o astfel de pereche : regula de validare-text de validare. O regula viabila ar fi aceea ca orice achizitie sa nu fie mai veche de 01/01/1990. Atunci, in randul 'Validation Rule' scriem : >= #01/01./1990# . Access interpreteaza datele doar daca sunt incadrate de ghilimele. Ca text de validare putem pune :

"Nu mai veche de 1 Ianuarie 1990 !". (figura 4). Odata regulile de validare stabilite, cand vom completa tabelul, daca vom introduce o data mai indepartata decat 01/01/1990, vom fi atentionati chiar cu mesajul pe care l-am impus figura 5) :

Fig. 4 - Perechea 'Validation rule'-'Validation Text'

Fig. 5 - Atentionarea cu mesajul pe care l-am stabilit drept 'Validation Text' .

Necesar-obligatoriu ( '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 urmatorul 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 acele tabele.

Exemplu : in cazul nostru putem sa ne gandim care dintre campuri nu poate lipsi . Unul dintre acestea( in afara de cheia primara si de cheile secundare - vom vedea ce inseamna fiecare in lucrarea care trateaza relatiile dintre tabele) poate fi 'numePachet'. De aceea, in randul 'Required' din 'Field Properties' ( in partea de jos a figurii 3) punem 'Yes'.

Cand vom completa campurile tabelului si vom incerca sa trecem peste campul 'numePachet' fara sa-l completam, vom primi un mesaj ca urmatorul ( figura 6):

Fig. 6 - Este interzis ca un camp cu proprietatea 'Reqiured' sa ramana necompletat

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'.

ATENTIE ! Un camp lasat necompletat avand proprietatea aceasta stabilita la 'No' devine camp 'Null', adica un camp despre care Access 95 nu stie nimic.

Exemplu : ce camp de tip text dorim sa ramana necompletat ? Daca avem un asemenea camp

-sa presupunem de exemplu ca avem un pachet software pentru care nu cunoastem versiunea- atunci pentru campul 'versiune' stabilim proprietatea 'Allow zero Length' pe 'Yes'. Spre deosebire de cazul anterior, acum nu vom mai fi atentionati in cazul in care lasam campul necompletat.

Indexat ( 'Indexed')

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

Puteti vedea in figura 7 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 .

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 pachet de programe care se gaseste in mai multe versiuni) .

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) !

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

Exemplu : dupa cum arata figura 7 am considerat ca se poate face o cautare dupa campul 'dataAchizitiei'. De aceea proprietatea 'Indexed' a acesteia am stabilit-o la 'Yes (Duplicates OK)', aceasta insemnand ca o data oarecare se poate repeta( adica poate avea duplicate).

Cautare ( 'Lookup')

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

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

Aceasta proprietate are utilitate mai ales pentru campurile cheie secundara.

Rezultatul stabilirii acestei proprietati este selectarea tipului de control ('Text Box', 'List Box' sau 'Combo Box') ce va reprezenta campul respectiv in modul 'Datasheet' ( numit si mod 'Open') 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 .

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

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

3. DESFASURAREA LUCRARII

Crearea unui tabel nou

Dupa partea teoretica din 2.1 - 2.3 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 lucrarea 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 9 de mai jos) .

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

Pasul 2 :

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

a) b)

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

Pasul 2.1 : Fara Table Wizard

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

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

Datele noului 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 'swID'( IdentificatorSoftware). 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 implicit de reprezentare este 'Long Integer' si cum acest

tip de data este indexat/fara repetare: Yes( No Duplicates) ( vezi proprietatea 'Indexed' - 2.3.8) .

Urmatoarele doua campuri sunt 'numePachet' si 'versiune', ambele de tip text. In 'Field Properties' putem alege o dimensiune acoperitoare, de exemplu 50 pentru numele pachetului si 5 pentru versiune. 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 pachetului sa fie afisat drept 'Nume Pachet' puteti stabili pentru proprietatea 'Caption' textul : 'Nume Pachet'. In timpul partii teoretice pentru 'numePachet' am set-at si proprietatea 'Required' la 'Yes', iar pentru 'versiune' am optat pentru proprietatea 'Allow Zero Length' .

Campul urmator poate fi 'dataAchizitie'. Acesta are tipul evident Date/Time pe care il vom stoca sub forma lunga a anului ( pe patru digiti), deci 'Long Date' in proprietatea Format.

Pentru el am stabilit - pe parcursul partii teoretice - perechea 'Validation Rule'-'Validation Text' precum si proprietatea 'Indexed' la 'Yes(Duplicates OK)' .

Campul urmator este 'licenta' si l-am stabilit de tip 'Yes/No'. Pentru el putem considera o valoare implicita 'Yes'.

Urmeaza un camp ce tine numarul licentei : 'licentaID'. In acest camp tinem valori furnizate de cheia primara a tabelului 'tblLicenta'. Acest camp este deci de tip Number cu Field Length setat la Long Integer, adica de acelasi tip cu cel al identificatorului licentei din tabelul 'tblLicenta'. 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 pachet nou achizitionat este platit ( evident). Deci un camp util este pretul produsului : 'pretAchizitie'. Tipul este Currency ( Valuta).

Bineinteles ca putem adauga si alte campuri ( fiecare este liber sa completeze cele prezentate). O sugestie ar fi pentru un camp 'info', de tip 'Memo', in caz ca se impune o descriere amanuntita a fiecarui program.

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

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

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

a) b)

Fig. 13 - 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 14.a, 14.b, 14.c, 14.d, 14.e este data succesiunea pasilor .

Fig. 14.a- Selectia modului 'Table Wizard'.

Fig. 14-b).

Selectam modul Table Wizard ( 14.a) si apoi un model personalizat de tabel ( prin marcarea lui 'Personal') ( 14.b). Prin marcarea optiunii 'Business' ( in partea stanga-jos a ferestrei din figura 14.b) apar alte modele de tabel.

Se aleg apoi campurile ce se doresc sa apara in noul tabel ( 'Fields in my new table') tot in fereastra din figura 14.b).

Fig. 14.c - Se da un nume 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. 14.d - Exista vreo relatie intre noul tabel si vreun altul ? Nu, deoarece altul nu mai exista. Se continua cu Next .

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

Pentru figura 14.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

( 'Design') 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 intr-o lucrare ulterioara de laborator.

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

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

Dupa ce un tabel a primit o structura ( un model, un sablon) prin operatia de proiectare, el trebuie "umplut" cu date. Acesta este scopul lui. In fereastra din figura 15 se selecteaza tabelul dorit ( clic-stanga pe numele tabelului) si se apasa Open. Ajungeti in fereastra prezentata in figura 16. Aici incepeti sa completati fiecare camp pe baza tipului sau.

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

Puteti oricand trece ( comuta) din fereastra modului 'Design' in cea a modului 'Open'

daca va aflati in mod curent intr-una dintre ele, astfel :

- daca va aflati in mod Design, atunci apasati pe iconita din toolbar ;

- daca va aflati in mod Open, atunci apasati pe iconita din toolbar .

EXERCITII SI INTREBARI

Tabelul dezvoltat pe parcursul laboratorului face parte dintr-o BD mai ampla, care contine si urmatoarele tabele :

tblCalculator - cu campurile : nume ( de tip Text), harddisk ( pentru care se da capacitatea

in MegaBytes, deci un camp de tip Number- Integer), RAM ( se da capacitatea in MB - analog cu campul'harddisk'), CD-ROM ( un camp de tip Yes/No, care spun daca acel calculator are instalat un suport multimedia), monitor ( de tip text, unde se da o descriere a monitorului - ex.: 15", SVGA, digital, 1280*1024) ;

tblDepartament -cu campurile: departement( de tip Text, se tine numele departamentului),

numarPersonal ( un camp de tip Number - Integer, daca presupunem -rezonabil - ca nu putem avea un departament cu mai mult de 65535 de angajati) si vechime ( de tip Number-Byte, ce da perioada de timp de cand acel departament face parte din firma) ;

tblFunctie - cu campurile : nume ( evident de tip Text), salariu/Ora ( un camp de tip Currency ), vechimea ( de tip Number-Byte) si restructurare ( de tip Yes/No, care anunta daca acea functie va fi afectata de o eventuala reducere de personal) ;

tblLicenta - contine : serie( de tip Text, in care tineti seria si numarul facturii - puteti sparge in doua acest camp - unul de tip Text pentru serie si altul de tip Number-Long Integer pentru numar), nrUtilizatori( de tip Number-Long Integer), deCand ( un camp de tip Date/Time in formatul dorit de dvs. care arata data achizitionarii unui anume pachet soft) si catTimp ( de tip Number-Integer ce arata numarul de ani de valabilitate a unei licente) ;

tblOperator - cu : nume( de tip Text), prenume( tot de tip Text), adresa ( de tip text cu un numar suficient de mare de caractere) si dataNasterii ( de tip Date/Time intr-un format pe care ramane sa-l alegeti dvs.) ;

tblSoftware - tocmai tabelul pe care l-am proiectat in timpul partii teoretice a acestei lucrari .

Proiectati si completati aceste tabele folosind descrierea data a campurilor. BD ce cuprinde toate aceste tabele va fi continuata si dezvoltata ca exemplu pe parcursul celorlalte lucrari de laborator.

Creati tabelele pentru BD a urmatoarelor entitati:

CALCULATORUL 1.

O BD avand ca subiect un magazin de CD-uri muzicale ( diferite genuri si artisti, case de discuri, servicii de inchiriere de CD-uri sau discuri vinil, de audieri etc).

CALCULATORUL 2.

O BD avand ca subiect un concurs international ( pe mai multe probe : matematica- informatica, limbi straine, istorie, tara - de desfasurare sau a candidatilor-, concurentii, tipul probei, durata etc.).

CALCULATORUL 3.

O BD avand ca subiect o firma de turism ( sejururi pe diverse perioade, circuite turistice in grup sau individual, concedii, facilitati pentru studenti - rate, contracte cu diverse agentii din strainatate etc.) .

CALCULATORUL 4.

O BD avand ca subiect un anticariat ( domenii diferite - tehnic, stiintific, social -genuri de publicatii - carti, reviste, brosuri, gravuri, editii rare -, autori etc.) .

Va puteti gandi fiecare la o baza de date proprie pe care sa o dezvoltati pe parcursul lucrarilor de laborator, sau puteti alege una dintre cele sugerate. Fiecare statie de lucru va dezvolta unul dintre exemplele propuse.

INTREBARI

  1. Din ce elemente este constituit un tabel ?
  2. Care este rolul cheii primare si modul de creare a ei?
  3. Se pot utiliza cifre in cazul datelor de tip text ?
  4. La ce date se utilizeaza tipul 'Yes/No'?
  5. Se pot folosi pentru campuri de tip Number alte controale ( in 'Field Properties'-> 'Lookup') in afara de cel implicit , 'Text Box' ?
  6. Care sunt tipurile de camp care nu au asociat nici un fel de control Lookup ?




Politica de confidentialitate


creeaza logo.com Copyright © 2024 - Toate drepturile rezervate.
Toate documentele au caracter informativ cu scop educational.