Home - qdidactic.com
Didactica si proiecte didacticeBani si dezvoltarea cariereiStiinta  si proiecte tehniceIstorie si biografiiSanatate si medicinaDezvoltare personala
referate stiintaSa fii al doilea inseamna sa fii primul care pierde - Ayrton Senna





Aeronautica Comunicatii Drept Informatica Nutritie Sociologie
Tehnica mecanica

Access


Qdidactic » stiinta & tehnica » informatica » access
Relatii



Relatii


Relatii



1 Generalitati


Pe langa exemplele anterioare, vom utiliza un exemplu mai complet pentru a ilustra modalitatile de definire a relatiilor intre tabele. Asa cum s-a aratat in capitolele anterioare, intre tabele se pot defini relatii care pot fi exploatate de catre utilizator in propriul beneficiu. Relatiile au fost definite si reamintim ca ele se fac prin campuri care apartin diferitelor tabele si care au acelasi continut.


Este important de precizat ca aceste relatii trebuiesc definite ori de cate ori este nevoie in aplicatii, pentru a putea fi utilizate in mod eficient. Necesitatea lor nu o vom scoate in evidenta, dar se impune totusi sa mentionam ca intr-o baza de date complexa, avem mai multe tabele care carcaterizeaza obiectele si intre acestea se impune sa se stabileasca anumite relatii pentru a putea obtine informatiile relativ la aceste obiecte intr-o forma accesibila si eficienta pentru pelucrare.


Trebuie insa sa remarcam faptul ca definirea relatiilor intre tabele constituie la un moment dat un impediment in efectuarea unei serii de operatii asupra bazei de date. Mentionam faptul ca o definire in exces a relatiilor conduce la situatii de blocaj cum ar fi imposibilitatea efectuarii unor actualizari datorita definirii incorecte a relatiilor. In aceste cazuri programatorul ajunge in situatia de a elimina (sterge) relatiile care il impiedica sa opereze actualizarile. Recomandam pentru aceasta ca atunci cand se definesc relatii sa se tina cont de toate implicatiile.



2 Definirea tabelelor utilizate


Vom utiliza cateva tabele pentru a evidentia posibilitatile de definire a relatiilor precum si pentru a crea in cele ce urmeaza forme adecvate pentru introducerea si intretinerea tabelelor. In ele vom utiliza lungimi reduse pentru eficienta prezentarii. Vom defini tabelele intr-o modalitate care ne va permite in capitolele urmatoare sa evidentiem elemente specifice Access-ului. Pentru simplificare nu am mai specificat lungimea unor campuri.







Parteneri



Nume camp

Tip camp

CodPartener

Auto Number

NumePartener

Text

Adresa

Memo

BancaFil

Text

ContBanca

Text


NomMarfa



Nume camp

Tip camp

CodMarfa

Auto Number

DenMarfa

Text

UnitMas

Text

CategMarfa

Text

Merceolog

Text

Gestiune

Text



CategMarfuri



Nume camp

Tip camp

CategMarfa


Text



Merceologi



Nume camp

Tip camp

Merceolog

Text



Factura care este un document unitar, o vom descompune in doua tabele, pentru a scoate in evidenta facilitatea oferita de Access; astfel, vom avea un tabel AntetFactura si un tabel DetaliuFactura, in care vom defini numai acele campuri care pezinta interes pentru evidentierea relatiilor si utilizarea formelor.





AntetFactura



Nume camp

Tip camp

NrFactura

Auto Number

DataFacturii

Data

CodPartener

Intreg


DetaliuFactura



Nume camp

Tip camp

NrFactura

Long Integer

CodMarfa

Intreg

UnitMas

Text

Cantitate

Intreg

Pret

Intreg



3 Relatii uzuale


Am definit chei primare in tabele, astfel: in tabelul Parteneri cheia primara este CodPartener iar in tabelul NomMarfa cheia primara este CodMarfa. In tabelele Merceologi si CategMarfuri am definit campurile Merceolog  si CategMarfa ca fiind indexate fara duplicate. In aceste conditii putem defini relatii firesti intre tabelele create.


Din multitudinea de relatii prezentate in capitolele anterioare, am prezentat cateva care sunt mai sugestive intre inregistrarile din tabelele definite anterior. In marea lor majoritate, sunt relatii de unu la mai multi, care sunt firesti in descrierea relatiilor posibile intre obiectele descrise de tabele si anume: parteneri, marfuri, categorii de marfa, merceologi. Trebuie de asemenea accentuate modalitatile de definire a relatiilor folosind modul in care au fost definite campurile utilizate pentru definirea legaturilor si anume:


in primul rand in tabelele de Parteneri NomMarfa au fost utilizate campurile care au fost definite ca si chei primare, sau in tabelele CategMarfuri Merceologi au fost utilizate campurile care au fost indexate fara duplicate, toate acestea fiind in relatii de unu;

in al doilea rand in tabelele celelalte, campurile de legatura au acelasi tip ca si cele din tabelele de mai sus, numai ca aici acestea sunt chei secundare, toate acestea fiind in relatii de mai multi.





Un exemplu de definire a relatiei referitoare la parteneri este urmatorul.











Observam ca relatia este definita intre cele doua tabele pe baza identitatii numelui campului, CodPartener. Tipul relatiei este de unu la mai multi, adica un partener se poate regasi intr-unul sau mai multe antete de factura (unui partener ii facem pentru marfurile vandute una sau mai multe facturi dupa cum cumpara odata sau de mai multe ori).


Observam de asemenea, ca s-a fortat integritatea referentiala a datelor si actualizarea si stergerea in cascada. Acestea din urma au in esenta urmatoarea semnificatie. Cand se face o actualizare sau o stergere a partenerului, aceasta este facuta in mod automat si in antetul facturii. In privinta stergerii aceasta are semnificatia urmatoare: ca atunci cand se sterge un partener, se sterg in mod automat toate antetele de factura care-l contin.


In ceea ce priveste celelalte relatii de unu la mai multi acestea au fost definite in mod similar. Am fi putut crea un tabel de unitati de masura pe care l-am fi putut relationa cu tabelul DetaliuFactura, prin campul UnitMas (tot in relatia unu la mai multi).




4 Alte relatii


Este important sa precizam ca relatia unu la unu permite relationarea tabelelor care leaga intre ele inregistrarile din doua tabele care caracretizeaza acelasi obiect (s-a facut o mentiune in acest sens in capitolele anterioare).


Pentru un tip mai particular de relatii, sa consideram ca avem o baza de date ce contine cai de rasa. Fiecare cal va avea precizati parintii: tata si mama care se regasesc in mod normal in acelasi tabel. Pentru simplificare vom completa doar cateva dintre campurile tabelului.


CaiDeRasa


Nume camp

Tip camp

IdCal

Auto Number

NumeCal

Text

Rasa

Text

Tata

Intreg

Mama

Intreg


Relatia care trebuie sa fie stabilita este intre inregistrarile aceluasi tabel. Pentru un cal, parintii sai se regasesc in alte inregistrari din tabel.


Tabelul proiectat, arata ca in imaginea urmatoare. Observam ca am indexat dupa campul Rasa, pentru a putea cauta rapid in tabel pentru o aceeasi rasa.









Pentru a putea realiza legaturile conform relatiilor, vom avea nevoie de trei copii ale tabelului CaiDeRasa lucru pe care in facem, adaugand de trei ori tabelul in grila de relatii, dupa care vom stabili legaturile asa cum se vede in imaginile urmatoare.



















Am incarcat in tabel urmatoarele date








Trebuie sa facem cateva observatii. Fiecare cal are parintii din acelasi tabel, dar cativa dintre ei (cei care sunt parintii initiali ai cailor din ferma noastra) vor avea datele completate incorect (in sensul ca ei insisi sunt proprii lor parinti). Acest lucru poate fi rezolvat intr-o modalitate corecta, pe care o lasam in seama cititorului.


Am construit o interogare prezentata in imagine, al carui rezultat este dat in cea de a doua imagine. Prin interogare cerem pentru fiecare rasa sa stim cati fii are fiecare tata si cerem sa facem un total al fiilor pe fiecare rasa. In prima imagine avem definita interogarea iar in cea de a doua, avem rezultatul interogarii.


















Observam ca in definirea interogarii sunt precizate care vor fi coloanele, care vor fi liniile din rezultatul interogarii si celulele care vor lua valori.





















Contact |- ia legatura cu noi -| contact
Adauga document |- pune-ti documente online -| adauga-document
Termeni & conditii de utilizare |- politica de cookies si de confidentialitate -| termeni
Copyright © |- 2024 - Toate drepturile rezervate -| copyright