O baza de date se numeste relationala, deoarece tabelele sun corelate unele cu altele. O relatie leaga doua tabele prin specificarea unui camp comun care apare in ambele tabele.
Exista trei 848i86i tipuri de relatii:
Relatie ‘unu-la-unu’ (1->1), numita si relatie biunivoca. Fiecarei inregistrari din Tabelul A ii va corespunde cel mult o inregistrare din Tabelul B.
Acest tip de corelatie se poate realiza in doua moduri:
daca tabelele au acelasi subiect, se poate stabili corelatia punand acelasi camp in ambele tabele;
daca tabelele au subiecte diferite si chei primare diferite, atunci o cheie primara dintr-un tabel va fi preluata drept cheie externa in celalalt tabel.
Relatie ‘unu-la-mai-multi’ (1->n). In acest caz, unei inregistrari din Tabelul A ii vor corespunde mai multe inregistrari din Tabelul B. De exemplu, un elev poate face parte dintr-o singura clasa, iar acea clasa poate avea mai multi elevi.
Relatia ‘mai-multi-la-mai-multi’ se caracterizeaza prin aceea ca unei inregistrari din Tabelul A i se poate asocia mai multe inregistrari din Tabelul B, iar o inregistrare din Tabelul B poate fi simultan in relatie cu mai multe inregistrari din Tabelul A. De exemplu, un elev poate avea mai multi profesori, iar un profesor poate avea mai multi elevi.
Bazele de date relationale nu va permit sa creati direct relatii ‘mai-multi-la-mai-multi’. Posibilitatea de a rezolva aceasta problema consta in crearea unor tabele de legatura care desfac relatia ‘mai-multi-la-mai-multi’ in cel putin doua relatii ‘unu-la-mai-multi’.
Pentru stabilirea relatiilor intre tabele, alegeti din meniul Tools optiunea Relationship.
Pe ecran va aparea caseta de dialog Show Table, care ofera posibilitatea alegerii tabelelor intre care urmeaza sa stabilim legaturile.
Pentru a stabili o legatura intre doua tabele:
Apasati tasta CTRL
Alegeti campul de legatura dintr-o tabela si deplasati-va cu cursorul pe campul de legatura din cea de-a doua tabela
Eliberati butonul mouse-ului. Se va deschide caseta de dialog Relationship
Selectati optiunea Enforce Referential Integrity. Pentru a impune respectarea unor restrictii la adaugarea sau eliminarea inregistrarilor in tabelele corelate, trebuie respectata o proprietate importanta, numita integritate referentiala.
Integritatea referentiala asigura faptul ca inregistrarile dintr-un tabel corelat au valori corelate in primul tabel. Integritatea referentiala previne stergerea sau modificarea accidentala a inregistrarilor dintr-un tabel primar (atunci cand exista date in tabelul corelat care depinde de acesta), dar si aparitia de inregistrari fara continut in tabelul corelat.
Selectati optiunile posibile pentru actualizarea / eliminarea datelor din tabelele corelate, astfel:
Cascade Update Related Field (actualizarea in cascada a campurilor asociate). Efectul este ca, ori de cate ori se modifica valoarea cheii primare a unei inregistrari din tabelul principal, Access va modifica automat valorile din campurile asociate ale inregistrarilor corespunzatoare din tabelul corelat, fara sa transmita mesaj de violare a integritatii;
Cascade Delete Related Field (eliminarea in cascada a inregistrarilor). Efectul este ca, ori de cate ori vom elimina inregistrarile din primul tabel, se vor elimina automat inregistrarile din tabelul corelat.
Pentru a preciza tipul de legatura, selectasi optiunea Join Type. Se va deschide caseta de dialog Join Properties, de unde puteti alege:
Legatura care include inregistrarile din cele doua tabele pentru care campurile de legatura au valori egale;
Legatura care include toate liniile din Tabelul A si numai pe cele din Tabelul B pentru care campurile sunt egale;
Legatura care include liniile din Tabelul B si numai pe cele din Tabelul A pentru care exista egalitatea campurilor.
|