Sunteți pe pagina 1din 2

RELAŢII ÎNTRE TABELELE DINTR-O BAZĂ DE DATE

Foarte frecvent, stocarea într-un singur tabel a tuturor datelor implicate în problema de
rezolvat este fie anevoioasă, fie impune, ulterior, prelucrări suplimentare şi greoaie. De aceea,
a apărut posibilitatea de a „împrăştia“ datele în mai multe tabele, în ideea de a se economisi
spaţiu şi de a se evita repetarea aceloraşi valori.
De exemplu, putem crea o relaţie între tabelul PERSONAL şi tabelul FUNCŢII, prin
intermediul câmpului Funcţie, relaţie prin care, ulterior, putem avea la dispoziţie valori din
ambele tabele.
Relaţia între două tabele e o relaţie de subordonare şi, de aceea, la crearea unei relaţii trebuie
să decidem care dintre tabele este tată (tabelul conducător) şi care tabel fiu (tabelul condus).
Odată relaţia creată, la mutarea pointerului de articol de pe un articol pe altul în tabelul tată,
se va muta, automat, şi pointerul de articol din tabelul fiu pe articolul corespunzător.
OBSERVAŢII
1. Un tabel considerat ca tabel-tată poate avea mai multe tabele-fiu care, la rândul
lor, pot avea tabele-fiu.
2. Un tabel aflat mai jos în structură (fiu, nepot etc.) nu poate fi tabel-tată pentru
tabelul-tată iniţial.
Din punct de vedere al Microsoft Access 2007, pot exista trei tipuri de relaţii:
 unul-la-mai-multe (One-to-Many) – unei înregistrări din tabelul-tată îi pot
corespunde mai multe înregistrări în tabelul-fiu (nu este obligatoriu);
 unul-la-unul (One-to-One) – unei înregistrări din tabelul-tată îi poate
corespunde o singură înregistrare din tabelul-fiu; este un tip de relaţie rar folosit;
 mai-multe-la-mai-multe (Many-to-Many) – o înregistrare din tabelul-tată poate
avea mai multe înregistrări corespondente în tabelul-fiu şi viceversa.
Pentru crearea unei relaţii între două tabele trebuie ca în fiecare tabel care participă la relaţie
să existe un index pentru câmpul de legătură, câmp ce trebuie să fie de acelaşi tip de dată şi
de aceeaşi lungime în ambele tabele.
Tipul de relaţie care poate fi stabilit depinde de tipul indexului pe câmpul de legătură din
fiecare tabel în parte:
 unul-la-mai-multe – indexul din tabelul tată trebuie să fie de tip cheie primară sau
normal fără dubluri iar cel din tabelul-fiu de tip normal, cu Da (cu dubluri);
 unul-la-unul – ambii indecşi (din tabelul tată şi din tabelul fiu) trebuie să fie cheie
primară sau de tip normal, cu Da (fără dubluri);
 mai-multe-la-mai-multe – indecşii pe câmpurile de legătură din tabelul tată şi
tabelul fiu trebuie să fie de tip normal, cu Da (cu dubluri).

1.1. Crearea, modificarea şi ştergerea unei relaţii între tabele


Vom lucra pe un exemplu: având tabelele PERSONAL şi FUNCŢII, unei înregistrări
din tabelul FUNCŢII îi pot corespunde mai multe înregistrări din tabelul PERSONAL (pot
exista mai multe persoane cu aceeaşi funcţie). Ne propunem să creăm o relaţie tip
unul-la-mai-multe între cele două tabele.
1. Deschidem baza de date şi alegem tabelul PERSONAL. Vom crea pentru el un index
normal pe câmpul Funcţia, cu Da (cu dubluri) (deoarece pot exista mai multe
persoane cu aceeaşi funcţie).
2. Alegem apoi tabelul FUNCŢII şi creăm pentru el un index cheie primară sau un index
normal cu Da (fără dubluri) pe câmpul Funcţia (deoarece nu pot exista mai
multe denumiri de funcţii cu acelaşi cod de funcţie).
3. Folosim ToolsRelationships sau butonul Relationships din bara
de instrumente. Se va deschide un dialog în care apar tabelele bazei de date.
4. Selectăm pe rând fiecare tabel ce va participa la
relaţie şi folosim, pentru fiecare, butonul
Adăugare (Add) după care închidem dialogul.
5. Se va afişa fereastra Relaţii
(Relationships) în care apar mici
subferestre pentru fiecare tabel din baza de
date.1
6. Vom trage cu mouse-ul dinspre câmpul de relaţie din tabelul-tată (Funcţia din tabelul
PERSONAL) spre câmpul din tabelul-fiu prin care se stabileşte relaţia (Funcţia din
FUNCŢII). Se va afişa un dialog prin care ni se cere, eventual, alegerea câmpurilor
prin care se face legătura dintre tabele. Vom confirma cu butonul Creare (Create)
deoarece câmpurile au fost, deja, alese.
7. În fereastra Relaţii (Relationships) afişată, între cele două tabele va apărea
o linie prin
care se
sugerează noua
relaţie.
Modificarea
ulterioară a tipului de
relaţie şi/sau a
câmpurilor prin care se
face asocierea se
realizează dând un clic
dreapta pe linia de relaţie şi folosind Edit Relationships din meniul contextual al liniei
de relaţie. Se va afişa acelaşi dialog, în care putem alege tabelele din relaţie şi câmpurile de
legătură din fiecare.
Ştergerea relaţiei se face printr-un clic pe linia de relaţie şi folosirea tastei Delete.

Aplicație
Să se creeze doua tabele PERSONAL si FUNCTII iar campul de legatura este functia. Să se
adauge cate 5 inregistrari in fiecare tabela

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