Ghid pentru relațiile între tabele

Ghid pentru relațiile între tabele

Important : Acest articol este tradus automat, consultați exonerarea de răspundere. Versiunea în limba engleză a acestui articol se poate găsi aici pentru referință.

Unul din scopurile unei proiectări bune a unei baze de date este de a elimina redundanța datelor (datele dublură). Pentru a atinge acest obiectiv, împărțiți datele în mai multe tabele în funcție de subiect, astfel încât fiecare aspect să fie reprezentat o singură dată. Apoi, furnizați programului Access o modalitate prin care să aducă la un loc informațiile care au fost împărțite - faceți acest lucru plasând câmpurile comune în tabele care sunt asociate. Totuși, pentru a efectua corect acest pas, trebuie să înțelegeți ce sunt relațiile dintre tabele, apoi să specificați relații în baza de date.

În acest articol

Introducere

Tipuri de relații între tabele

De ce se creează relații între tabele?

Despre integritatea referențială

Vizualizarea relațiilor între tabele

Crearea unei relații între tabele

Ștergerea unei relații între tabele

Modificarea unei relații între tabele

Impunerea integrității referențiale

Introducere

După ce ați creat un tabel în baza de date pentru fiecare subiect, trebuie să furnizați programului Access o modalitate de a aduce informațiile la un loc atunci când aveți nevoie de ele. Faceți aceasta plasând câmpuri comune în tabele care sunt asociate, apoi definind relații între tabele. Apoi se pot crea interogări, formulare și rapoarte care afișează informații din mai multe tabele odată. De exemplu, formularul afișat aici include informații extrase din mai multe tabele:

Formular de comenzi care afișează informații din cinci tabele odată

1. Informațiile din acest formular provin din tabelul Clienți...

2. …tabelul Comenzi...

3. …tabelul Produse...

4. …și tabelul Detalii comenzi.

Numele clientului din caseta Facturat către este regăsit din tabelul Clienți, valorile ID comandă și Data comenzii provin din tabelul Comenzi, Nume produs provine din tabelul Produse, iar valorile Preț unitar și Cantitate provin din tabelul Detalii comenzi. Aceste tabele sunt legate unele de altele în mai multe moduri, pentru a se aduce informațiile necesare în formular.

În exemplul precedent, câmpurile din tabele trebuie să fie coordonate astfel încât să afișeze informații despre aceeași comandă. Această coordonare este realizată prin utilizarea relațiilor între tabele. O relație între tabele 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 străină în celălalt tabel. De exemplu, angajații pot fi asociați cu comenzile pentru care sunt responsabili prin crearea unei relații între tabele între câmpurile ID angajat din tabelul Angajați și tabelul Comenzi.

ID angajat utilizat sub formă de cheie primară în tabelul Angajați și cheie străină în tabelul Comenzi.

1. ID angajat apare în ambele tabele sub formă de cheie primară... 

2. ... și cheie străină.

Începutul paginii

Tipuri de relații între tabele

Există trei tipuri de relații între tabele din Access.

  • Relația unu-la-mai-mulți

    Să utilizăm ca exemplu 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. Ca urmare, 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 o relație unu-la-mai-mulți.

    Pentru a crea o relație unu-la-mai-mulți în proiectul bazei de date, luați cheia primară din partea „unu” a relației și adăugați-o ca un câmp suplimentar sau câmpuri suplimentare la tabelul din partea „mai-mulți” a relației. În acest caz, de exemplu, adăugați un câmp nou, câmpul ID din tabelul Clienți, la tabelul Comenzi și îl denumiți ID client. Access utilizează apoi numărul ID client în tabelul Comenzi pentru a găsi clientul corect pentru fiecare comandă.

  • O relație mai-mulți-la-mai-mulți

    Acum haideți să vedem relația dintre tabelul Produse și tabelul Comenzi. O singură comandă poate include mai mult de un produs. Pe de altă 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. Această relație este denumită relație mai-mulți-la-mai-mulți. Rețineți că, pentru a detecta existența relațiilor mai-mulți-la-mai-mulți între tabelele dvs., este important să luați în considerare ambele părți ale relației.

    Pentru a crea o relație mai-mulți-la-mai-mulți, trebuie să creați mai întâi un al treilea tabel, denumit deseori tabel de joncțiune, care împarte relația mai-mulți-la-mai-mulți în două relații unu-la-mai-mulți. Inserați câmpul cheie primară din fiecare dintre cele două tabele în al treilea tabel. Ca rezultat, al treilea tabel înregistrează fiecare apariție, sau instanță, din relație. De exemplu, tabelul Comenzi și tabelul Produse au o relație mai-mulți-la-mai-mulți care este definită prin crearea a două relații unu-la-mai-mulți în tabelul Detalii comenzi. O comandă poate avea mai multe produse și fiecare produs poate apărea în mai multe comenzi.

  • O relație 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. Această 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. Când identificați o astfel de relație, ambele tabele trebuie să partajeze un câmp comun.

Începutul paginii

De ce se creează relații între tabele?

Aveți posibilitatea să creați relații între tabele în mod explicit utilizând fereastra Relații sau glisând un câmp din panoul Listă de câmpuri. Access utilizează relațiile între tabele pentru a decide cum se asociază tabelele când trebuie utilizate într-un obiect de bază de date. Există mai multe motive pentru a crea mai întâi relații între tabele, apoi alte obiecte de bază de date, cum ar fi formulare, interogări și rapoarte.

  • Relațiile între tabele oferă informații proiectelor de interogare

    Pentru a lucra cu înregistrări din mai mult de un tabel, este necesar deseori să creați o interogare care asociază tabelele. Interogarea funcționează prin potrivirea valorilor din câmpul cheie primară al primului tabel cu un câmp cheie străină din alt doilea tabel. De exemplu, pentru a returna rânduri care listează toate comenzile pentru fiecare client, generați o interogare care asociază tabelul Clienți cu tabelul Comenzi pe baza câmpului ID client. În fereastra Relații, aveți posibilitatea să specificați manual câmpurile de asociat. Dar, dacă aveți deja o relație definită între tabele, Access oferă asocierea implicită, pe baza relației existente între tabele. În plus, dacă utilizați unul din experții de interogări, Access utilizează informațiile colectate din relațiile dintre tabele pe care le-ați definit deja pentru a vă prezenta opțiuni informate și a prepopula setările proprietăților cu valorile implicite potrivite.

  • Relațiile între tabele oferă informații proiectelor de formular și raport

    Când proiectați un formular sau raport, Access utilizează informațiile colectate din relațiile între tabele pe care le-ați definit deja pentru a vă prezenta opțiuni informate și a prepopula setările proprietăților cu valorile implicite potrivite.

  • Relațiile între tabele sunt fundația pe care se poate impune integritatea referențială pentru a împiedica apariția înregistrărilor solitare în baza dvs. de date. O înregistrare solitară este o înregistrare cu referință către altă înregistrare care nu există, de exemplu, o înregistrare de comandă care se referă la o înregistrare de client care nu există.

    Când proiectați o bază de date, divizați informațiile în tabele, fiecare având o cheie primară. Apoi, adăugați chei străine la tabelele asociate care au referințe la acele chei primare. Aceste perechi de chei de forma cheie străină - cheie primară formează baza pentru relațiile între tabele și interogările multi-tabel. Este important ca aceste referințe cheie străină - cheie primară să fie sincronizate. Integritatea referențială, care este dependentă de relațiile de tabel, asigură că referințele sunt sincronizate.

Începutul paginii

Despre integritatea referențială

Când proiectați o bază de date, împărțiți informațiile din aceasta în mai multe tabele în funcție de subiect, pentru a minimiza redundanța datelor. Apoi, furnizați programului Access o modalitate de a aduce datele la un loc plasând câmpuri comune în tabele asociate. De exemplu, pentru a crea o relație unu-la-mai-mulți, luați cheia primară din tabelul „unu” și o adăugați ca un câmp suplimentar la tabelul „mai-mulți”. Pentru a aduce datele la un loc, Access ia valoarea din tabelul „mai-mulți” și caută valoarea corespondentă în tabelul „unu”. În acest mod, valorile din tabelului „mai-mulți” fac referire la valorile corespondente din tabelul „unu”.

Să presupunem că aveți o relație unu-la-mai-mulți între Expeditori și Comenzi și doriți să ștergeți un expeditor. Dacă expeditorul pe care doriți să-l ștergeți are comenzi în tabelul Comenzi, acele comenzi vor deveni „solitare” atunci când ștergeți înregistrarea expeditorului. Înregistrările vor conține în continuare un ID de expeditor, dar ID-ul nu va mai fi valid, deoarece înregistrarea la care face referire nu mai există.

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

Impuneți integritatea referențială activând-o pentru o relație între tabele (consultați Impunerea integrității referențiale pentru instrucțiuni pas cu pas). După impunere, Access respinge orice operațiune care ar încălca integritatea referențială pentru acea relație între tabele. Aceasta înseamnă că Access va respinge actualizările care modifică ținta unei referințe și ștergerea care elimină ținta unei referințe. Este posibil să aveți nevoie, perfect corect, de modificarea cheii primare pentru un expeditor care are comenzi în tabelul Comenzi. Pentru astfel de cazuri, ceea ce vă trebuie, de fapt, este ca Access să actualizeze automat toate rândurile afectate ca parte a unei singure operațiuni. Astfel, Access asigură că actualizarea este efectuată complet, pentru ca baza de date să nu rămână inconsistentă, cu unele rânduri actualizate și altele nu. Din acest motiv Access acceptă opțiunea Actualizare în cascadă câmpuri corelate. Când impuneți integritatea referențială și selectați opțiunea Actualizare în cascadă câmpuri corelate, apoi actualizați apoi o cheie primară, Access actualizează automat toate câmpurile care fac referire la cheia primară.

De asemenea, este posibil să aveți nevoie, în mod corect, să ștergeți un rând și toate înregistrările asociate, de exemplu, o înregistrare Expeditor și toate comenzile asociate pentru expeditorul respectiv. Din acest motiv, Access acceptă opțiunea Ștergere în cascadă câmpuri corelate. Când impuneți integritatea referențială și selectați opțiunea Ștergere în cascadă câmpuri corelate, apoi ștergeți o înregistrare din partea cu cheia primară a relației, Access șterge automat toate înregistrările care fac referire la cheia primară.

Începutul paginii

Vizualizarea relațiilor între tabele

Pentru a vizualiza relațiile între tabele, faceți clic pe Relații în fila Instrumente bază de date. Se deschide fereastra Relații și afișează relațiile existente. Dacă nu au fost definite încă relații între tabele și deschideți fereastra Relații pentru prima oară, Access vă solicită să adăugați un tabel sau o interogare la fereastră.

Deschiderea ferestrei Relații

  1. Faceți clic pe Fișier, apoi faceți clic pe Deschidere.

  2. Selectați și deschideți baza de date.

  3. În fila Instrumente bază de date, în grupul Relații, faceți clic pe Relații.

    Dacă baza de date conține relații, apare fereastra Relații. Dacă baza de date nu conține relații și deschideți fereastra Relații pentru prima oară, apare caseta de dialog Afișare tabel. Faceți clic pe Închidere pentru a închide caseta de dialog.

  4. În fila Proiectare, în grupul Relații, faceți clic pe Toate relațiile.

    Acest lucru afișează toate relațiile definite în baza dvs. de date. Rețineți că tabelele ascunse (tabelele pentru care este bifată caseta de selectare Ascuns din caseta de dialog Proprietăți a tabelului) și relațiile lor nu vor fi afișate decât dacă este bifată caseta de selectare Afișare obiecte ascunse în caseta de dialog Opțiuni de navigare.

O relație între tabele este reprezentată printr-o linie de relație trasată între tabelele 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 selectați relația făcând clic pe linia sa, linia se îngroașă pentru a indica faptul că este selectată. Dacă impuneți integritatea referențială pentru această relație, linia apare îngroșată la ambele capete. Î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 cealaltă parte.

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

În fila Proiect, în grupul Instrumente:

  • Editare relații    Deschide caseta de dialog Editare relații. Când selectați o linie de relație, aveți posibilitatea să faceți clic pe Editare relații pentru a modifica relația tabelului. De asemenea, aveți posibilitatea să faceți dublu clic pe linia relației.

  • Ștergere aspect    Elimină toate tabelele și relațiile din afișare în fereastra Relații. Rețineți că această comandă ascunde numai 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 Proiect, în grupul Relații:

  • Afișare tabel    Deschide caseta de dialog Afișare tabel pentru a fi posibilă selectarea de tabele și interogări pentru a fi vizualizate î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ă toate relațiile și tabelele asociate în fereastra Relații. Rețineți că tabelele ascunse (tabelele pentru care este bifată caseta de selectare Ascuns din caseta de dialog Proprietăți) și relațiile lor nu se vor afișa decât dacă este bifată caseta de selectare Afișare obiecte ascunse în caseta de dialog Opțiuni de navigare.

  • Închidere    Închide fereastra Relații. Dacă faceți modificări în aspectul ferestrei Relații, sunteți întrebat dacă doriți să salvați modificările.

Începutul paginii

Crearea unei relații între tabele

Aveți posibilitatea să creați o relație între tabele utilizând fereastra Relații sau prin glisarea unui câmp într-o foaie de date din panoul Listă de câmpuri. Când creați 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ă, aceste câmpurile trebuie să aibă același tip de date. Însă, dacă un câmp cheie primară este un câmp Numerotare automată, câmpul cheie străină poate fi un câmp Număr, dacă proprietatea Dimensiune câmp a ambelor câmpuri este aceeași. De exemplu, se poate potrivi un câmp Numerotare automată cu un câmp Număr dacă proprietatea Dimensiune câmp a ambelor câmpuri este Întreg lung. Când ambele câmpuri sunt câmpuri Număr, trebuie să aibă aceeași setare a proprietății Dimensiune câmp.

Crearea unei relații între tabele utilizând fereastra Relații

  1. Faceți clic pe Fișier, apoi faceți clic pe Deschidere.

  2. Selectați și deschideți baza de date.

  3. În fila Instrumente bază de date, în grupul Relații, faceți clic pe Relații.

  4. Dacă nu ați definit încă nicio relație, caseta de dialog Afișare tabel apare automat. Dacă nu apare, în fila Proiect, în grupul Relații, faceți clic pe 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. Pentru a vedea numai interogări, faceți clic pe Interogări. Pentru a le vedea pe amândouă, faceți clic pe Ambele.

  5. Selectați unul 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.

  6. Glisați un câmp (de obicei, cheia primară) dintr-un tabel în câmpul comun (cheia străină) din celălalt tabel. Pentru a glisa mai multe câmpuri, apăsați tasta CTRL, faceți clic pe fiecare câmp, apoi glisați-le.

    Apare caseta de dialog Editare relații.

  7. 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 un câmp nou din listă.

    Pentru a impune integritatea referențială pentru această relație, bifați caseta de selectare Impunere integritate referențială. Pentru mai multe informații despre integritatea referențială, consultați secțiunile Despre integritatea referențialăImpunerea integrității referențiale

  8. 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 ambele capete. De asemenea, numai dacă ați bifat caseta de selectare Impunere integritate referențială, apare numărul 1 deasupra porțiunii îngroșate într-o parte a liniei de relație și simbolul infinit () apare deasupra porțiunii îngroșate a liniei în cealaltă parte.

    Note : 

    • Pentru a crea o relație unu-la-unu    Ambele câmpuri comune (de obicei cheia primară și cheia străină) 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 să fie setată la Da (fără dubluri). Câmpul din partea „mai mulți” nu trebuie să aibă index unic. Câmpul din partea „mai mulți” poate avea un 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 (cu 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 între tabele utilizând panoul Listă de câmpuri

Aveți posibilitatea să adăugați un câmp la un tabel existent 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 asociate și cele disponibile în celelalte tabele. Când glisați un câmp dintr-un „alt” tabel (neasociat) și parcurgeți Expertul Căutare, se creează automat o relație nouă unu-la-mai-mulți între tabelul din Listă de câmpuri și tabelul în care ați glisat câmpul. Această relație, creată de Access, nu impune în mod implicit integritatea referențială. Pentru a impune integritatea referențială, trebuie să editați relația. Consultați secțiunea Modificarea unei relații între tabele pentru mai multe informații.

Deschiderea unui tabel în Vizualizarea foaie de date

  1. În fila Fișier, faceți clic pe Deschidere.

  2. În caseta de dialog Deschidere, selectați și deschideți baza de date.

  3. În Panoul de navigare, faceți clic cu butonul din dreapta pe tabelul căruia doriți să-i adăugați câmpul și creați relația, apoi faceți clic pe Deschidere.

Deschiderea panoului Listă de câmpuri

  • Apăsați ALT+F8.

    Apare panoul Listă de câmpuri.

Panoul Listă de câmpuri afișează toate celelalte tabele din baza de date, grupate pe categorii. Când lucrați într-un tabel în vizualizarea Foaie de date, Access afișează câmpurile într-una dintre cele două categorii din panoul Listă de câmpuri: Câmpuri disponibile în tabelele corelate și Câmpuri disponibile în alte tabele. Prima categorie listează toate tabelele care au o relație cu tabelul în care lucrați în prezent. A doua categorie listează toate tabelele cu care tabelul dvs. nu are o relație.

În panoul Listă de câmpuri, când faceți clic pe semnul plus (+) de lângă numele unui tabel, vedeți o listă a tuturor câmpurilor disponibile în tabelul respectiv. Pentru a adăuga un câmp la tabelul dvs., glisați câmpul dorit din panoul Listă de câmpuri în tabel în Vizualizarea foaie de date.

Adăugarea unui câmp și crearea unei relații din panoul Listă de câmpuri

  1. În panoul Listă de câmpuri, sub Câmpuri disponibile în alte tabele, faceți clic pe semnul plus (+) de lângă numele unui tabel pentru a afișa lista de câmpuri din acel tabel.

  2. Glisați câmpul dorit din panoul Listă de câmpuri în tabelul deschis în Vizualizarea foaie de date.

  3. Când apare linia de inserare, fixați câmpul în poziție.

    Porniți Expertul Căutare.

  4. Urmați instrucțiunile pentru a parcurge Expertul Căutare.

    Câmpul apare în tabel în Vizualizarea foaie de date.

Când glisați un câmp dintr-un „alt” tabel (neasociat) și parcurgeți Expertul Căutare, se creează automat o relație nouă unu-la-mai-mulți între tabelul din Listă de câmpuri și tabelul în care ați glisat câmpul. Această relație, creată de Access, nu impune în mod implicit integritatea referențială. Pentru a impune integritatea referențială, trebuie să editați relația. Consultați secțiunea Modificarea unei relații între tabele pentru mai multe informații.

Începutul paginii

Ștergerea unei relații între tabele

Pentru a elimina o relație între tabele, trebuie mai întâi să ștergeți linia de relație din fereastra Relații. Poziționați cu grijă cursorul astfel încât să indice spre linia de relație, apoi faceți clic pe ea. Linia de relație apare îngroșată atunci când este selectată. Având linia de relație selectată, apăsați DELETE. Rețineți că, atunci când eliminați o relație, se elimină și suportul de integritate referențială pentru acea relație, dacă este activat. Prin urmare, Access nu va mai împiedica automat crearea de înregistrări solitare în partea „mai mulți” a relației.

  1. În fila Instrumente bază de date, în grupul Relații, faceți clic pe Relații.

    Apare fereastra Relații. Dacă nu ați definit încă nicio relație și este prima oară când deschideți fereastra Relații, apare caseta de dialog Afișare tabel. Dacă apare, faceți clic pe Închidere.

  2. În fila Proiectare, în grupul Relații, faceți clic pe Toate relațiile.

    Toate tabelele cu relații sunt afișate, arătând liniile relației.

  3. Faceți clic pe linia de relație pentru relația pe care doriți să o ștergeți. Linia de relație apare îngroșată atunci când este selectată.

  4. Apăsați tasta DELETE.

    - sau -

Faceți clic pe butonul din dreapta, apoi faceți clic pe Ștergere.

  • Este posibil ca Access să afișeze mesajul Ștergeți permanent relațiile selectate din baza de date?. Dacă apare acest mesaj de confirmare, faceți clic pe 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 șterge. Înainte de eliminarea unei relații, trebuie închise toate obiectele deschise care utilizează tabelele.

Începutul paginii

Modificarea unei relații între tabele

O relație între tabele se modifică selectând-o în fereastra Relații, apoi editând-o. Poziționați cu grijă cursorul astfel încât să indice spre linia relației, apoi faceți clic pe ea pentru a o selecta. Linia de relație apare îngroșată atunci când este selectată. Cu linia relației selectată, faceți dublu clic pe ea sau faceți clic pe Editare relații în grupul Instrumente în fila Proiect. Apare caseta de dialog Editare relații.

Efectuarea modificărilor în caseta de dialog Editare relații

  1. În fila Instrumente bază de date, în grupul Relații, faceți clic pe Relații.

    Apare fereastra Relații. Dacă nu ați definit încă nicio relație și este prima oară când deschideți fereastra Relații, apare caseta de dialog Afișare tabel. Dacă apare, faceți clic pe Închidere.

  2. În fila Proiectare, în grupul Relații, faceți clic pe Toate relațiile.

    Toate tabelele cu relații sunt afișate, arătând liniile relației.

  3. Faceți clic pe linia de relație pentru relația pe care doriți să o modificați. Linia de relație apare îngroșată atunci când este selectată.

  4. Faceți dublu clic pe linia de relație.

  5. Efectuați modificările, apoi faceți clic pe OK.

    Caseta de dialog Editare relații permite modificarea unei relații între tabele. Mai exact, aveți posibilitatea să modificați tabelele sau interogările din ambele părți ale relației sau câmpurile din ambele părți. De asemenea, aveți posibilitatea să setați tipul de asociere sau să impuneți integritatea referențială și să alegeți o opțiune în cascadă. Pentru mai multe informații despre tipul de asociere și cum se setează, consultați secțiunea Setarea tipului de asociere. Pentru mai multe informații despre cum se impune integritatea referențială și cum se selectează o opțiune în cascadă, consultați secțiunea Impunerea integrității referențiale.

Setarea tipului de asociere

Când definiți o relație între tabele, datele relației vă informează în legătură cu proiectarea interogărilor. De exemplu, dacă definiți o relație între două tabele, apoi creați o interogare ce utilizează aceste tabele, atunci Access selectează automat câmpurile care potrivesc implicit pe baza câmpurilor specificate în relație. Aveți posibilitatea să înlocuiți aceste valori implicite inițiale din interogarea dvs., dar valorile furnizate de relație se vor dovedi deseori cele corecte. Deoarece potrivirea și alăturarea datelor din mai mult de un tabel este un lucru pe care îl veți efectua frecvent în majoritatea bazelor de date simple, stabilirea setărilor implicite prin crearea relațiilor poate economisi timp și poate fi benefică.

O interogare pentru mai multe tabele combină informațiile din mai multe tabele prin potrivirea valorilor din câmpurile comune. Operațiunea care efectuează potrivirea și combinarea este denumită asociere. De exemplu, să presupunem că doriți să afișați comenzile clienților. Creați o interogare care asociază tabelul Clienți și tabelul Comenzi după câmpul ID client. Rezultatul interogării conține informațiile despre client și cele de comandă numai pentru acele rânduri unde s-a găsit o potrivire.

Una dintre valorile care se pot specifica pentru fiecare tip de relație este tipul de asociere. Tipul de asociere informează Access despre înregistrările care vor fi incluse în rezultatul interogării. De exemplu, să presupunem din nou că se creează o interogare care asociază tabelul Clienți și tabelul Comenzi după câmpul comun care reprezintă ID-ul clientului. Utilizând tipul de asociere implicită (denumită asociere internă), interogarea returnează numai rândurile Client și Comandă acolo unde câmpurile comune (denumite și câmpuri asociate) sunt egale.

Cu toate acestea, să presupunem că doriți să includeți toți clienții, chiar și pe cei care nu au plasat comenzi. Pentru a realiza aceasta, trebuie să modificați 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 rândurile din tabelul din stânga relației și numai acelea care se potrivesc în tabelul din dreapta. O asociere externă la dreapta returnează toate rândurile din partea dreaptă a relației și numai pe cele care se potrivesc din partea stângă.

Notă : În acest caz, „stânga” și „dreapta” se referă la poziția tabelelor în caseta de dialog Editare relații, nu în fereastra Relații.

Gândiți-vă la rezultatul pe care îl doriți cel mai des de la o interogare care asociază tabele în această relație, apoi setați tipul de asociere în consecință.

Setarea tipului de asociere

  1. În caseta de dialog Editare relații, faceți clic pe Tip asociere.

    Apare caseta de dialog Proprietăți asociere.

  2. Faceți clic pe selecția dorită, apoi pe OK.

Următorul tabel (utilizând tabelele Clienți și Comenzi) afișează cele trei opțiuni care sunt afișate în caseta Proprietăți asociere, asocierea utilizată și dacă se returnează toate rândurile sau numai cele care se potrivesc pentru fiecare tabel.

Opțiune

Asociere relațională

Tabel stânga

Tabel dreapta

1. Se includ numai rândurile unde câmpurile asociate din ambele tabele sunt egale.

Asociere internă

Rânduri potrivite

Rânduri potrivite

2. Se includ TOATE înregistrările din „Clienți” și numai acele înregistrări din „Comenzi” unde câmpurile asociate sunt egale.

Asociere externă la stânga

Toate rândurile

Rânduri potrivite

3. Se includ TOATE înregistrările din „Comenzi” și numai acele înregistrări din „Clienți” unde câmpurile asociate sunt egale.

Asociere externă la dreapta

Rânduri potrivite

Toate rândurile

Când alegeți opțiunea 2 sau 3, se afișează o săgeată în linia relației. Această săgeată indică spre partea relației care afișează numai rândurile care se potrivesc.

Efectuarea modificărilor în caseta de dialog Proprietăți asociere

  1. În fila Instrumente bază de date, în grupul Relații, faceți clic pe Relații.

    Apare fereastra Relații. Dacă nu ați definit încă nicio relație și este prima oară când deschideți fereastra Relații, apare caseta de dialog Afișare tabel. Dacă apare, faceți clic pe Închidere.

  2. În fila Proiectare, în grupul Relații, faceți clic pe Toate relațiile.

    Se afișează toate tabelele cu relații, afișând liniile de relație

  3. Faceți clic pe linia de relație pentru relația pe care doriți să o modificați. Linia de relație apare îngroșată atunci când este selectată.

  4. Faceți dublu clic pe linia de relație.

    Apare caseta de dialog Editare relații.

  5. Faceți clic pe Tip asociere.

  6. În caseta de dialog Proprietăți asociere, faceți clic pe o opțiune, apoi pe OK.

  7. Efectuați modificările suplimentare pentru relație, apoi faceți clic pe OK.

Începutul paginii

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 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 între tabele. După impunere, Access respinge orice operațiune care ar încălca integritatea referențială pentru acea relație între tabele. Access respinge actualizările care modifică ținta unei referințe și ștergerea care elimină ținta unei referințe. Pentru ca Access să propage actualizările și ștergerile referențiale astfel încât toate rândurile înrudite să se modifice în concordanță, consultați secțiunea Setarea opțiunilor de tip cascadă.

Activarea sau dezactivarea integrității referențiale

  1. În fereastra Relații, faceți clic pe linia de relație pentru relația pe care doriți să o modificați. Linia de relație apare îngroșată atunci când este selectată.

  2. Faceți dublu clic pe linia de relație.

Apare caseta de dialog Editare relații.

  1. Bifați caseta de selectare Impunere integritate referențială.

  2. Efectuați modificările suplimentare pentru relație, apoi faceți clic pe OK.

După ce ați impus integritatea referențială, se aplică următoarele reguli:

  • Nu se poate introduce o valoare în câmpul cheie străină a unui tabel asociat dacă acea valoare nu există în câmpul cheie primară din tabelul primar; o astfel de operațiune ar crea înregistrări solitare.

  • Nu se poate șterge o înregistrare dintr-un tabel primar dacă există înregistrări care se potrivesc în tabelul asociat. De exemplu, nu se poate șterge înregistrarea unui angajat din tabelul Angajați dacă există comenzi atribuite acestuia în tabelul Comenzi. Se poate alege ștergerea unei înregistrări primare și a tuturor înregistrărilor asociate într-o singură operațiune, prin bifarea casetei de selectare Ștergere în cascadă câmpuri corelate.

  • Nu se poate modifica o valoare de cheie primară în tabelul primar dacă acest lucru creează înregistrări solitare. De exemplu, nu se poate modifica numărul unei comenzi în tabelul Comenzi dacă există elemente de linie atribuite acelei comenzi în tabelul Detalii comenzi. Se poate alege actualizarea unei înregistrări primare și a tuturor înregistrărilor asociate într-o singură operațiune, prin bifarea casetei de selectare Actualizare în cascadă câmpuri corelate.

    Note : Dacă întâmpinați dificultăți în activarea integrității referențiale, rețineți că sunt necesare următoarele condiții pentru a impune integritatea referențială:

    • Câmpul comun din tabelul primar trebuie să fie cheie primară sau să aibă un index unic.

    • Câmpurile comune trebuie să aibă același tip de date. Singura excepție este în cazul unui câmp Numerotare automată, care poate fi asociat unui câmp Număr care are proprietatea Dimensiune câmp setată la Întreg lung.

    • Ambele tabele trebuie să existe în aceeași bază de date Access. Integritatea referențială nu poate fi impusă pentru tabelele legate. Cu toate acestea, dacă tabelele sursă sunt în format Access, aveți posibilitatea să deschideți baza de date în care sunt stocate și să activați integritatea referențială în acea bază de date.

Setarea opțiunilor de tip cascadă

Este posibil să întâlniți o situație în care există nevoia justificată de a modifica valoarea în partea „unu” a relației. În astfel de cazuri, aveți nevoie ca Access să actualizeze automat toate rândurile afectate ca parte a unei singure operațiuni. Astfel, actualizarea este efectuată complet, pentru ca baza de date să nu rămână inconsistentă, cu unele rânduri actualizate și altele nu. Access previne apariția acestei probleme prin opțiunea Actualizare în cascadă câmpuri corelate. Când impuneți integritatea referențială și selectați opțiunea Actualizare în cascadă câmpuri corelate, apoi actualizați apoi o cheie primară, Access actualizează automat toate câmpurile care fac referire la cheia primară.

De asemenea, poate să fie necesară ștergerea unui rând și a tuturor înregistrărilor corelate, de exemplu, o înregistrare a unui expeditor și toate comenzile asociate acelui expeditor. Din acest motiv, Access acceptă opțiunea Ștergere în cascadă câmpuri corelate. Când impuneți integritatea referențială și bifați caseta de selectare Ștergere în cascadă câmpuri corelate, Access șterge automat toate înregistrările cu referință la cheia primară atunci când ștergeți înregistrarea care conține cheia primară.

Activarea sau dezactivarea actualizării și/sau ștergerii în cascadă

  1. În fereastra Relații, faceți clic pe linia de relație pentru relația pe care doriți să o modificați. Linia de relație apare îngroșată atunci când este selectată.

  2. Faceți dublu clic pe linia de relație.

Apare caseta de dialog Editare relații.

  1. Bifați caseta de selectare Impunere integritate referențială.

  2. Bifați caseta de selectare Actualizare în cascadă câmpuri corelate, caseta de selectare Ștergere în cascadă câmpuri corelate sau ambele.

  3. Efectuați modificările suplimentare pentru relație, apoi faceți clic pe OK.

Notă : În cazul în care cheia primară este un câmp Numerotare automată, bifarea casetei de selectare Actualizare în cascadă câmpuri corelate nu va avea efect, deoarece valoarea dintr-un câmp Numerotare automată nu se poate modifica.

Începutul paginii

Notă : Exonerare de răspundere pentru traducere automată: Acest articol a fost tradus de un sistem computerizat, fără intervenție umană. Microsoft oferă aceste traduceri automate pentru a ajuta utilizatorii vorbitori de alte limbi decât engleza să beneficieze de conținutul despre produsele, serviciile și tehnologiile Microsoft. Pentru că articolul a fost tradus de un computer, poate conține erori de vocabular, sintaxă sau gramatică.

Extindeți-vă competențele
Explorați instruirea
Fiți primul care obține noile caracteristici
Alăturați-vă utilizatorilor Office Insider

Au fost utile aceste informații?

Vă mulțumim pentru feedback!

Vă mulțumim pentru feedback! Se pare că ar fi util să luați legătura cu unul dintre agenții noștri de asistență Office.

×