Sunteți pe pagina 1din 2

MICROSOFT ACCESS suport de

curs

RELAŢII ÎNTRE TABELE


O relaţie tabel funcţionează prin potrivirea datelor din câmpurile cheie — un câmp care
are deseori acelaşi nume în ambele tabele. În majoritatea cazurilor, aceste câmpuri de potrivire
sunt cheia primară dintr-un tabel, care furnizează un identificator unic pentru fiecare
înregistrare şi o cheie externă în celălalt tabel.
De exemplu: CodProdus din tabela Produs (cheie primară) – CodProdus din tabela
Clienţi (cheie externă)

Există trei tipuri de relaţii între tabele.


 Relaţia unu-la-mai-mulţi - Să ne gândim la o bază de date care urmăreşte comenzi
şi are un tabel Clienţi şi un tabel Comenzi. Un client poate plasa oricâte comenzi. Este
logic că, pentru fiecare client din tabelul Clienţi, pot exista una sau mai multe comenzi
în tabelul Comenzi. Relaţia dintre tabelul Clienţi şi tabelul Comenzi este, în consecinţă,
o relaţie unu-la-mai-mulţi.
 Relaţia mai-mulţi-la-mai-mulţi - Să presupunem existenţa unei relaţii între tabelul
Produse şi tabelul Comenzi. O singură comandă poate include mai mult de un produs.
Pe de cealaltă parte, un singur produs poate apărea în mai multe comenzi. De aceea,
pentru fiecare înregistrare din tabelul Comenzi pot exista mai multe înregistrări în tabelul
Produse. În plus, pentru fiecare înregistrare din tabelul Produse, pot exista mai multe
înregistrări în tabelul Comenzi. Acest tip de relaţie este denumit o relaţie mai-mulţi-la-
mai-mulţi deoarece, pentru orice produs pot exista mai multe comenzi şi pentru fiecare
comandă pot exista mai multe produse.
 Relaţia unu-la-unu - Într-o relaţie unu-la-unu, fiecare înregistrare din primul tabel
poate avea o singură înregistrare potrivită în al doilea tabel şi fiecare înregistrare din al
doilea tabel poate avea o singură înregistrare potrivită în primul tabel. Acest tip de
relaţie nu este comun, deoarece, de cele mai multe ori, informaţiile asociate în acest
mod se stochează în acelaşi tabel. O relaţie unu-la-unu poate fi utilizată pentru a diviza
un tabel cu multe câmpuri, pentru a izola o parte dintr-un tabel din motive de securitate
sau pentru a stoca informaţii care se aplică numai pentru un subset al tabelului principal.

Crearea unei relaţii între tabele


1. În fila Instrumente bază de date, în grupul
Afişare/Ascundere, faceţi clic pe Relaţii.
2. Dacă nu aţi definit încă nici o relaţie, caseta de dialog
Afişare tabel se afişează automat. (Dacă nu apare, în fila
Proiectare - Relaţii - Afişare tabel) Caseta de dialog
Afişare tabel afişează toate tabelele şi interogările din baza de date. Pentru a vedea
numai tabele, faceţi clic pe Tabele.
3. Selectaţi una sau mai multe tabele şi interogări, apoi faceţi clic pe Adăugare. După
ce aţi terminat de adăugat tabele şi interogări în fereastra Relaţii, faceţi clic pe
Închidere.
4. Glisaţi un câmp (cheia primară) dintr-un tabel în câmpul comun (cheia externă) din
celălalt tabel. Se afişează caseta de dialog Editare relaţii.

1
MICROSOFT ACCESS suport de
curs

5. Verificaţi că numele afişate ale câmpurilor sunt cele ale câmpurilor comune pentru
relaţie. Dacă un nume de câmp este incorect, faceţi clic pe numele câmpului şi selectaţi
câmpul potrivit din listă.
Pentru a impune integritatea referenţială pentru această relaţie, bifaţi caseta de selectare
Impunere integritate referenţială.
6. Faceţi clic pe Creare. Se trasează o linie de relaţie între cele două tabele. Dacă aţi
bifat caseta de selectare Impunere integritate referenţială, linia apare îngroşată la
capete. De asemenea, dacă aţi bifat caseta de selectare Impunere integritate
referenţială, se afişează numărul 1 deasupra porţiunii îngroşate într-o parte a liniei de
relaţie şi simbolul infinit (∞) deasupra porţiunii îngroşate în cealaltă parte a liniei, după
cum se arată în următoarea ilustraţie.

OBSERVAŢIE
Pentru a crea o relaţie unu-la-mai-mulţi Câmpul de pe partea "unu" a relaţiei (de
obicei cheia primară) trebuie să aibă index unic. Acest lucru înseamnă că proprietatea
Indexat pentru acest câmp trebuie setată la Da (fără dubluri). Câmpul din partea "mai
mulţi" nu trebuie să aibă index unic. Poate avea index, dar trebuie să permită dubluri. Acest
lucru înseamnă că proprietatea Indexat pentru acest câmp trebuie să fie setată la Nu sau la
Da (se permit dubluri). Când un câmp are index unic şi celălalt nu are, Access creează o
relaţie unu-la-mai-mulţi.

Scopul integrității referențiale este de a împiedica apariția înregistrărilor solitare și de a


păstra sincronizate referințele, astfel încât să nu aveți înregistrări care se referă la alte înregistrări
care nu mai există. Integritatea referențială se impune prin activarea sa pentru o relație tabel.
Odată impusă, Access respinge orice operațiune care încalcă integritatea referențială pentru acea
relație tabel. Access va respinge atât actualizările care modifică ținta unei referințe cât și
ștergerile care elimină ținta unei referințe.