Sunteți pe pagina 1din 9

Cursul 3 Iniţiere în Access 1

Relaţiile dintre tabele


Unul din dezideratele proiectări unei baze de date este eliminarea redundanţei datelor (datele
dublură). Pentru a obţine acest obiectiv, datele se împart în mai multe tabele în funcţie de subiect,
astfel încât fiecare aspect să fie reprezentat o singură dată. După ce s-a creat în baza de date câte un
tabel pentru fiecare subiect, trebuie furnizat aplicaţiei Access mijloacele prin care să aducă la un loc
(la nevoie) informaţiile care au fost împărţite. Aceasta se face plasând câmpuri comune în tabelele
care sunt asociate şi apoi definind relaţii între tabele. Pe baza lor se pot crea formulare, interogări şi
rapoarte care afişează informaţii extrase din mai multe tabele deodată.
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 secundară în celălalt tabel.

Tipuri de relaţii între tabele


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

 Relaţia unu-la-mai-mulţi
De exemplu, se consideră o bază de date pentru gestionarea proiectelor care are tabelele
Coordonatori şi Proiecte. Un coordonator poate coordona mai multe proiecte. În consecinţă, pentru
orice coordonator din tabelul Coordonatori pot exista mai multe proiecte în tabelul Proiecte. Astfel,
relaţia dintre tabelul Coordonatori şi tabelul Proiecte este o relaţie de tipul unul-la-mai-mulţi.

Pentru a crea o relaţie de tipul unul-la-mai-mulţi în proiectul bazei de date, se ia cheia


primară din partea "unu" a relaţiei şi se adaugă sub formă de câmp suplimentar sau câmpuri
suplimentare la tabelul din partea "mai-mulţi" a relaţiei. Pentru a corela datele, Access ia valoarea
din tabelul "mai-mulţi" şi caută valoarea corespondentă în tabelul "unu". În acest mod, valorile din
tabelul "mai-mulţi" fac referire la valorile corespondente din tabelul "unu". În cazul considerat, se
adaugă câmpul ID Coordonator, din tabelul Coordonatori, la tabelul Proiecte. Access poate utiliza
numărul de ID al coordonatorului din tabelul Proiecte pentru a referi coordonatorul corespunzător
pentru fiecare proiect.
Câmpul ID Coordonator din tabelul Coordonatori este cheie primară. În tabelul Proiecte
câmpul ID Coordonator nu este cheie primară, deoarece nu identifică în mod unic înregistrările. El
se numeşte cheie secundară. O cheie secundară este cheia primară a unui alt tabel.

 Relaţia mai-mulţi-la-mai-mulţi
De exemplu, se consideră relaţia dintre tabelul Studenţi şi tabelul Proiecte din baza de date
pentru gestionarea proiectelor. Un student se poate ocupa de mai multe proiecte. Pe de altă parte, un
proiect poate fi abordat de mai mulţi studenţi. De aceea, pentru fiecare înregistrare din tabelul
Studenţi pot exista mai multe înregistrări în tabelul Proiecte. În acelaşi timp, pentru fiecare
înregistrare din tabelul Proiecte pot exista mai multe înregistrări în tabelul Studenţi. Acest tip de

1
Cursul 3 Iniţiere în Access 2
relaţie este denumit mai-mulţi-la-mai-mulţi. Pentru a detecta relaţii mai-mulţi-la-mai-mulţi între
tabele este important să se ia în considerare ambele părţi ale relaţiei.
Subiectele celor două tabele - Studenţi şi Proiecte - se află într-o relaţie mai-mulţi-la-mai-
mulţi. Acest lucru prezintă o problemă. Dacă s-ar crea o relaţie între cele două tabele prin adăugarea
câmpului ID Proiect la tabelul Studenţi, pentru a avea mai mult de un proiect pentru fiecare student
este nevoie de mai mult de o înregistrare pentru fiecare student în tabelul Studenţi. Astfel, s-ar
repeta informaţiile despre student pentru fiecare rând asociat cu un student - rezultând o proiectare
ineficientă. Aceeaşi problemă apare dacă se adaugă câmpul ID Student la tabelul Proiecte - rezultă
mai multe înregistrări în tabelul Proiecte pentru fiecare proiect. Pentru a rezolva această problemă
se crează un al treilea tabel, numit adesea tabel de joncţiune, care împarte relaţia mai-mulţi-la-mai-
mulţi în două relaţii unu-la-mai-mulţi. În acest scop se inserează câmpul cheie primară din fiecare
dintre cele două tabele în al treilea tabel. Ca rezultat, al treilea tabel înregistrează fiecare apariţie,
denumită şi instanţă.
Fiecare înregistrare din tabelul Rezultate proiecte reprezintă un element linie al unui proiect
tratat de un student. Cheia primară a tabelului Rezultate proiecte constă din două câmpuri - cheile
secundare ale tabelelor Studenţi şi Proiecte. Utilizarea câmpului ID Student singur nu funcţionează
ca o cheie primară pentru acest tabel, deoarece un student poate avea mai multe elemente linie.
ID Student se repetă pentru mai multe elemente linie, astfel încât câmpul nu conţine valori unice.
Nici utilizarea câmpului ID Proiect singur nu funcţionează, deoarece un proiect poate apărea la mai
mulţi studenţi. Dar împreună cele două câmpuri produc întotdeauna o valoare unică pentru fiecare
înregistrare.

În baza de date pentru gestionarea proiectelor, tabelele Studenţi şi Proiecte nu sunt asociate
direct. În schimb, ele sunt asociate indirect prin tabelul Rezultate proiecte. Relaţia mai-mulţi-la-
mai-mulţi între tabelele Studenţi şi Proiecte se reprezintă utilizând două relaţii unu-la-mai-mulţi:
 Între tabelele Studenţi şi Rezultate proiecte există o relaţie unu-la-mai-mulţi. Fiecare student are
mai mult de un element line, dar fiecare element linie este conectat cu un singur student.
 Între tabelele Proiecte şi Rezultate proiecte există o relaţie unu-la-mai-mulţi. Fiecare proiect
poate avea mai multe elemente linie asociate, dar fiecare element linie face referire la un singur
proiect.
Din tabelul Rezultate proiecte, se pot determina toate proiectele abordate de un anumit
student. De asemenea, se pot determina toţi studenţii care se ocupă de un anumit proiect.

 Relaţia unu-la-unu
De exemplu, să presupunem că trebuie înregistrate câteva informaţii suplimentare despre
studenţi, de care este nevoie rar sau care se aplică numai câtorva studenţi. Deoarece este nevoie rar
de aceste informaţii şi stocarea informaţiilor în tabelul Studenţi ar produce spaţii libere pentru
fiecare student la care acestea nu se aplică, ele se amplasează într-un tabel separat. Ca şi în tabelul

2
Cursul 3 Iniţiere în Access 3
Studenţi, câmpul ID Student se utilizează cu rolul de cheie primară şi în tabelul suplimentar. Relaţia
dintre acest tabel suplimentar şi tabelul Studenţi este o relaţie de tipul 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 la un subset al tabelului principal.
În proiectare, o relaţie de tipul unu-la-unu se reprezintă astfel:
 Dacă cele două tabele au acelaşi subiect, probabil se poate configura relaţia utilizând aceeaşi
cheie primară în ambele tabele.
 Dacă cele două tabele au subiecte diferite, cu chei primare diferite, se alege unul dintre tabele
(oricare) şi se inserează cheia sa primară în celălalt tabel pe post de cheie secundară.

Integritatea referenţială
De exemplu, se consideră o relaţie unu-la-mai-mulţi între tabelele Coordonatori şi Proiecte
şi se şterge o înregistrare din tabelul Coordonatori. Dacă coordonatorul şters are proiecte în tabelul
Proiecte, acele proiecte vor deveni "solitare". Înregistrările din tabela Proiecte vor conţine în
continuare un ID de coordonator, dar ID-ul nu va mai fi valid, deoarece înregistrarea la care face
referire nu mai există. O înregistrare cu referinţă către altă înregistrare care nu există se numeşte
înregistrare solitară.
Scopul integrităţii referenţiale este de a împiedica apariţia înregistrărilor solitare şi de a ţine
sincronizate referinţele, astfel încât această situaţie ipotetică să nu apară niciodată.
Integritatea referenţială se impune prin activarea sa pentru o relaţie între tabele. Odată
impusă, Access respinge orice operaţiuni care încalcă integritatea referenţială pentru acea relaţie
tabel. Acest lucru înseamnă că Access va respinge atât actualizările care modifică ţinta referinţei,
cât şi ştergerile care elimină ţinta unei referinţe.
Cu toate acestea, este posibil să fie nevoie în mod justificat să se modifice cheia primară
pentru un coordonator care are proiecte în tabelul Proiecte. Pentru astfel de cazuri, este nevoie ca
Access să actualizeze automat, într-o singură operaţiune, toate înregistrările afectate. Astfel, Access
asigură că actualizarea este completă, astfel încât baza de date nu este lăsată într-o stare
inconsistentă, cu unele înregistrări actualizate şi altele nu. Din acest motiv, Access acceptă opţiunea
"Actualizare în cascadă câmpuri corelate". Dacă este impusă integritatea referenţială şi este
selectată opţiunea "Actualizare în cascadă câmpuri corelate", în urma actualizării unei chei primare,
Access actualizează automat toate câmpurile care fac referire la cheia primară.
De asemenea, este posibil să fie nevoie să se ştergă o înregistrare şi înregistrările asociate -
de exemplu, o înregistrare din tabelul Coordonatori şi toate proiectele asociate pentru coordonatorul
respectiv. Din acest motiv, Access are opţiunea "Ştergere în cascadă câmpuri corelate". Dacă se
impune integritatea referenţială şi se alege opţiunea "Ştergere în cascadă câmpuri corelate", la
ştergerea unei înregistrări din partea cu cheia primară a unei relaţii, Access şterge automat toate
înregistrările care fac referire la cheia primară.

Vizualizarea relaţiilor între tabele


Pentru a vizualiza relaţiile între tabele se deschide fereastra Relaţii care afişează relaţiile
existente. Dacă nu au fost definite încă relaţii între tabele şi se deschide fereastra Relaţii pentru
prima oară, Access solicită adăugarea unui tabel sau a unei interogări la fereastră.

3
Cursul 3 Iniţiere în Access 4
Deschiderea ferestrei Relaţii

În fila Instrumente bază de date, în grupul Afişare/Ascundere, se face clic pe Relaţii.

Dacă baza de date conţine relaţii, acestea se afişează în fereastra Relaţii. Dacă baza de date
nu conţine relaţii şi se deschide fereastra Relaţii pentru prima oară, se afişează fereastra de
dialog Afişare tabel.

O relaţie între tabele este reprezentată printr-o linie de relaţie trasată între aceste tabele din
fereastra Relaţii. O relaţie care nu are impusă integritatea referenţială apare ca o linie subţire între
câmpurile comune care acceptă relaţia. Când se selectează relaţia făcând clic pe linia sa, linia se
îngroaşă pentru a indica faptul că este selectată. Dacă este impusă integritatea referenţială pentru o
relaţie, linia apare îngroşată la fiecare capăt. În plus, numărul 1 apare deasupra porţiunii îngroşate a
liniei în partea unu a relaţiei, iar simbolul infinit (∞) apare deasupra liniei în partea mai-mulţi.

Cheia primară
Această linie reprezintă relaţia
Cheia secundară

Când fereastra Relaţii este activă, se pot selecta următoarele comenzi:


În fila Proiectare, în grupul Instrumente:
 Editare relaţii Deschide fereastra de dialog Editare relaţii care permite modificarea relaţie
selectate în prealabil din fereastra Relaţii. De asemenea, se poate deschide fereastra de dialog
Editare relaţii făcând dublu clic pe linia relaţiei în fereastra Relaţii.
 Ştergere aspect Elimină toate tabelele şi relaţiile din afişare în fereastra Relaţii. Această
comandă doar ascunde tabelele şi relaţiile - nu le şterge.
 Raport relaţie Creează un raport care afişează tabelele şi relaţiile din baza de date. Raportul
afişează în fereastra Relaţii numai tabelele şi relaţiile care nu sunt ascunse.
În fila Proiectare, în grupul Relaţii:
 Afişare tabel Se deschide fereastra de dialog Afişare tabel şi se pot selecta tabele şi
interogări pentru a fi adăugate în fereastra Relaţii.
 Ascundere tabel Ascunde tabelul selectat în fereastra Relaţii.
 Relaţii directe Afişează toate relaţiile şi tabelele asociate pentru tabelul selectat în fereastra
Relaţii, dacă nu sunt afişate deja.
 Toate relaţiile Afişează în fereastra Relaţii toate relaţiile şi tabelele asociate. Tabelele ascunse
(tabelele pentru care este bifată caseta de validare Ascuns din fereastra de dialog Proprietăţi -
deschisă din meniul local de comenzi) şi relaţiile lor nu se vor afişa decât dacă este bifată caseta
de validare Afişare obiecte ascunse în fereastra de dialog Opţiuni de navigare - deschisă din
meniul local de comenzi.
 Închidere Închide fereastra Relaţii. Dacă se fac modificări în aspectul ferestrei Relaţii, se
solicită salvarea modificărilor.

4
Cursul 3 Iniţiere în Access 5
Crearea unei relaţii tabel
O relaţie tabel se poate crea utilizând fereastra Relaţii sau prin glisarea unui câmp din
panoul Listă de câmpuri într-o foaie de date. Când se crează o relaţie între tabele, câmpurile
comune nu trebuie să aibă neapărat acelaşi nume, deşi acest lucru se întâmplă deseori. Mai degrabă
câmpurile trebuie să aibă acelaşi tip de date. În cazul în care câmpul cheie primară este un câmp de
tip AutoNumerotare, câmpul cheie secundară poate fi de tip Număr dacă proprietatea Dimensiune
câmp a ambelor câmpuri este aceeaşi. De exemplu, se poate potrivi un câmp de tip
AutoNumerotare cu un câmp de tip Număr dacă proprietatea Dimensiune câmp a ambelor câmpuri
este Întreg lung. Când ambele câmpuri sunt de tip Număr, acestea trebuie să aibă aceeaşi setare a
proprietăţii Dimensiune câmp.

Crearea unei relaţii tabel utilizând fereastra Relaţii

În acest scop se urmează pașii:


1. În fila Instrumente bază de date, în grupul Afişare/Ascundere, se face clic pe Relaţii.

2. Dacă nu s-a definit încă nici o relaţie, se afişează automat fereastra de dialog Afişare tabel.
Dacă nu apare, în fila Proiectare, în grupul Relaţii, se face clic pe Afişare tabel.
Fereastra de dialog Afişare tabel afişează toate tabelele şi interogările din baza de date.
Pentru a vedea numai tabele sau numai interogări se face clic pe Tabele, respectiv pe
Interogări. Pentru a le vedea pe amândouă se face clic pe Ambele.
3. Se selectează unu sau mai multe tabele şi interogări, apoi se face clic pe Adăugare. După ce
au fost adăugate tabelele şi interogările în fereastra Relaţii se face clic pe Închidere.
4. Se glisează un câmp (de obicei cheia primară) dintr-un tabel peste câmpul comun (cheia
secundară) din celălalt tabel. Pentru a glisa mai multe câmpuri, acestea se selectează ținând
apăsată tasta CTRL și apoi se glisează.
Access afişează fereastra de dialog Editare relaţii.
5. Se verifică dacă numele câmpurilor afişate sunt cele ale câmpurilor comune pentru relaţie.
Dacă un nume de câmp este incorect, se face clic pe numele câmpului şi se selectează
câmpul potrivit din listă.
Pentru a impune integritatea referenţială pentru această relaţie, se bifează caseta de validare
Impunere integritate referenţială.
6. Se faceţi clic pe Creare.
Access trasează o linie de relaţie între cele două tabele. Dacă s-a bifat caseta de validare
Impunere integritate referenţială, linia apare îngroşată la capete, iar deasupra porţiunii
îngroşate într-o parte a liniei de relaţie se afişează numărul 1 şi în cealaltă parte se afişează
simbolul infinit (∞).

NOTE
 Pentru a crea o relaţie unu-la-unu Ambele câmpuri comune (de obicei cheia primară şi
cheia secundară) trebuie să aibă un index unic. Acest lucru înseamnă că proprietatea Indexat
pentru aceste câmpuri trebuie să fie setată la Da (fără dubluri). Dacă ambele câmpuri au un
index unic, Access creează o relaţie unu-la-unu.
 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. El poate avea index care să permită dubluri. Acest lucru înseamnă că
proprietatea Indexat pentru acest câmp trebuie să fie setată la Nu sau la Da (se permit

5
Cursul 3 Iniţiere în Access 6
dubluri). Când un câmp are index unic şi celălalt nu are, Access creează o relaţie unu-la-mai-
mulţi.

Crearea unei relaţii tabel prin utilizarea panoului Listă de câmpuri

În Access se poate adăuga un câmp dintr-un tabel existent, la un tabel care este deschis în
vizualizarea Foaie de date, glisându-l din panoul Listă de câmpuri. Panoul Listă de câmpuri
afişează câmpurile disponibile în tabelele înrudite (cu care există relații) şi cele disponibile în
celelalte tabele din baza de date (cu care nu este corelat).
O relaţie tabel poate fi creată prin adăugarea unui câmp din panoul Listă de câmpuri urmând
paşii:
1. Se deschide tabelul în modul de vizualizare Foaie de date.
2. În fila Foaie de date, în grupul Câmpuri şi coloane, se face clic pe Adăugare câmpuri
existente.

Access afişează panoul Listă de câmpuri.


3. Sub Câmpuri disponibile în alte tabele se faceţi clic pe semnul plus (+) de lângă numele
unui tabel pentru a afişa lista de câmpuri din acel tabel.
4. Se glisează câmpul dorit din panoul Listă de câmpuri în tabelul deschis în vizualizarea
Foaie de date.
5. Se fixează câmpul în poziţia dorită folosind linia de inserare.
Access porneşte Expertul Căutare.
6. Se parcurg instrucţiunile Expertului Căutare, în final Access afişând câmpul în tabel în
vizualizarea Foaie de date.
La glisarea unui câmp dintr-un tabel neînrudit şi parcurgerea Expertului Căutare, se creează
automat o relaţie nouă de tipul unu-la-mai-mulţi între tabelul din Lista de câmpuri şi
tabelul în care s-a glisat câmpul. Această relaţie, creată de Access, nu impune în mod
implicit integritatea referenţială. Pentru a impune integritatea referenţială, trebuie editată
relaţia.

Ştergerea unei relaţii tabel


Pentru a elimina o relaţie tabel trebuie ştearsă linia de relaţie din fereastra Relaţii. În acest
scop se selectează linia de relaţie, care devine îngroşată, şi se dă comanda DELETE. La eliminarea
unei relaţii, se elimină şi suportul de integritate referenţială pentru acea relaţie, în cazul în care este
activat. În consecinţă, Access nu va mai împiedica automat crearea de înregistrări solitare în partea
"mai mulţi" a relaţiei.
Ştergerea unei relaţii tabel se face urmând paşii:
1. Se deschide ferestra Relaţii.
2. În fila Proiect, în grupul Relaţii, se face clic pe Toate relaţiile.
Access afişează toate tabelele cu relaţii, afişând liniile de relaţie.
3. Se selectează linia de relaţie pentru relaţia care se şterge.
4. Se apasă tasta DELETE, sau se alege comanda Ştergere din meniul local de comenzi.
5. Access afişează mesajul Alegeţi să ştergeţi permanent relaţiile selectate din baza de
date?. La acest mesaj se răspunde cu Da.

NOTĂ Dacă unul dintre tabelele utilizate în relaţie este în uz, poate de către altă persoană sau
proces, ori într-un obiect deschis din baza de date (cum ar fi un formular), atunci relaţia nu se va

6
Cursul 3 Iniţiere în Access 7
şterge. Înainte de eliminarea unei relaţii, trebuie închise toate obiectele deschise care folosesc
tabelele.

Modificarea unei relaţii tabel


O relaţie între tabele se modifică selectând-o în fereastra Relaţii şi apoi editând-o în
fereastra de dialog Editare relaţii.

Efectuarea modificărilor în fereastra de dialog Editare relaţii

Pentru a modifica o relaţie tabel se urmează paşii:


1. Se deschide ferestra Relaţii.
2. În fila Proiectare, în grupul Relaţii, se face clic pe Toate relaţiile.
Access afişează toate tabelele cu relaţii, afişând liniile de relaţie.
3. Se selectează linia de relaţie pentru relaţia care se modifică.
4. În fila Proiectare, în grupul Instrumente, se face clic pe Editare relaţii, sau se face dublu
clic pe linia de relaţie.
Access afişează fereastra de dialog Editare relaţii.

5. Se efectuează modificările, apoi se face clic pe OK.


Fereastra de dialog Editare relaţii permite modificarea unei relaţii tabel. În acest sens, se
pot modifica tabelele sau interogările din ambele părţi ale relaţiei sau câmpurile din ambele
părţi. De asemenea, se poate seta tipul de asociere sau impunerea integrității referenţiale şi
alege o opţiune de cascadă.

Setarea tipului de asociere

În urma unei relaţii tabel, datele relaţiei determină proiectarea interogărilor. De exemplu, la
crearea unei interogări ce utilizează două tabele conectate printr-o relaţie, aplicația Access
selectează automat câmpurile care se potrivesc implicit pe baza câmpurilor specificate în relaţie.
O interogare pentru mai multe tabele combină informaţiile din aceste tabele prin potrivirea
valorilor din câmpurile comune. Operaţiunea care efectuează potrivirea şi combinarea este denumită
asociere. Pentru fiecare relaţie se poate specifica tipul de asociere. Tipul de asociere informează
Access despre înregistrările care vor fi incluse în rezultatul interogării.
De exemplu, pentru afişarea proiectelor coordonatorilor din baza de date pentru gestiunea
proiectelor se crează o interogare care asociază tabelul Coordonatori şi tabelul Proiecte după
câmpul comun ID Coordonator. Rezultatul interogării conţine informaţiile coordonatorului şi cele
ale proiectului numai pentru acele înregistrări unde s-a găsit o potrivire. Utilizând tipul de asociere
implicită, denumită asociere internă, interogarea a returnat numai informaţiile din înregistrările
tabelelor Coordonatori şi Proiecte unde câmpurile comune (denumite şi câmpuri asociate) sunt
egale.

7
Cursul 3 Iniţiere în Access 8
Dacă se dorește includerea tuturor coordonatorilor, chiar şi a celor care nu au proiecte,
trebuie modificat tipul de asociere dintr-o asociere internă într-o asociere cunoscută sub numele de
asociere externă la stânga. O asociere externă la stânga returnează toate înregistrările din tabelul
din stânga relaţiei şi numai înregistrările care se potrivesc din tabelul din dreapta. O asociere
externă la dreapta returnează toate înregistrările din tabelul din dreapta relaţiei şi numai
înregistrările care se potrivesc din tabelul din stânga.
NOTĂ În acest caz, "stânga" şi "dreapta" se referă la poziţia tabelelor în fereastra de dialog
Editare relaţii, nu a ferestrei Relaţii.
Tipul de asociere se setează astfel:
1. În fereastra de dialog Editare relaţii , se face clic pe Tip asociere.
Access afişează fereastra de dialog Proprietăţi asociere.

2. Se selectează pe opţiunea dorită, și apoi se face clic pe OK.


NOTĂ Când se alege o asociere externă, se afişează o săgeată în linia relaţiei. Această
săgeată indică partea relaţiei care afişează numai înregistrările care se potrivesc.

Impunerea integrităţii referenţiale


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 apară î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.

Activarea sau dezactivarea integrităţii referenţiale

Pentru a activa/dezactiva integritatea referenţială se urmează paşii:


1. În fereastra de dialog Editare relaţii se bifează/debifează caseta de validare Impunere
integritate referenţială.
2. Se face clic pe OK.
După impunea numai a integrității referenţiale, se aplică următoarele reguli:
 Nu se poate introduce o valoare în câmpul cheii secundare a unui tabel asociat dacă acea valoare
nu există în câmpul cheii primare din tabelul primar - o astfel de operaţiune ar crea o
înregistrare solitară.
 Nu se poate modifica o valoare de cheie primară în tabelul primar dacă acest lucru creează
înregistrări solitare.
 Nu se poate şterge o înregistrare dintr-un tabel primar dacă există înregistrări care se potrivesc
în tabelul asociat.

Setarea opţiunilor de tip cascadă

Este posibil să fie justificată nevoia de a modifica cheia primară în partea "unu" a relaţiei. În
acest caz, este nevoie ca Access să actualizeze automat, într-o singură operaţiune, toate câmpurile

8
Cursul 3 Iniţiere în Access 9
asociate. Actualizarea este efectuată complet, astfel că baza de date nu rămâne inconsistentă - cu
unele câmpuri actualizate şi altele nu. După impunerea integrității referenţiale şi selectarea opţiunii
Actualizare în cascadă câmpuri corelate, la actualizarea unei cheie primare, Access actualizează
automat toate câmpurile cu referinţă la cheia primară.
Este posibil să fie necesară ştergerea unei înregistrări în partea "unu" a relaţiei şi a tuturor
înregistrărilor corelate. Din acest motiv, Access deţine opţiunea Ştergere în cascadă câmpuri
corelate. După impunerea integrității referenţiale şi selectarea opţiunii Ştergere în cascadă
câmpuri corelate, Access şterge automat toate înregistrările cu referinţă la cheia primară când se
şterge înregistrarea care conţine cheia primară.
Activarea sau dezactivarea actualizării şi/sau ştergerii în cascadă se face urmând paşii:
1. În fereastra de dialog Editare relaţii se bifează caseta de validare Impunere integritate
referenţială.
2. Se bifează/debifează caseta de validare Actualizare în cascadă câmpuri corelate şi/sau
caseta de validare Ştergere în cascadă câmpuri corelate.
3. Se face clic pe OK.

NOTĂ Dacă cheia primară este un câmp de tip AutoNumerotare, bifarea casetei de validare
Actualizare în cascadă a câmpurilor corelate nu va avea efect, deoarece valoarea dintr-un câmp
de tip AutoNumerotare nu se poate modifica.

S-ar putea să vă placă și