RELAŢII ÎNTRE TABELE - Microsoft Ofice Acces 2007

3

Click here to load reader

description

RELAŢII ÎNTRE TABELE - Microsoft Ofice Acces 2007 suport de curs

Transcript of RELAŢII ÎNTRE TABELE - Microsoft Ofice Acces 2007

Page 1: RELAŢII ÎNTRE TABELE - Microsoft Ofice Acces 2007

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 tabele1. Î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

Page 2: RELAŢII ÎNTRE TABELE - Microsoft Ofice Acces 2007

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.

2