F I ş A Nr. 2
Crearea relaţiilor între tabele.


Pentru explicaţii detaliate:
1. Crearea relaţiilor între tabele
2. Crearea relaţiilor între tabele

Creăm o nouă bază de date goală :

pe care o denumim Firma

Baza de date va conţine un tabel Angajati cu următoarele câmpuri:

Câmpul ID_Angajat este cheie primară
şi câteva înregistrări:

Să presupunem că avem un tabel unde ţinem datele despre copii angajaţilor. Din ribbon-ul Create creăm un nou tabel (Table).

Mergem în modul de vizualizare Design View, pentru a realiza structura tabelului. În acest moment introducem numele noului tabel: COPII. Apăsăm OK

    Structura tabelului va fi următoarea:
  • ID_Copil, de tip Autonumber, este cheie primară;
  • ID_Angajat, de tip Number;
  • Prenume, de tip Short Text;
  • DataN, de tip Date/Time.

Salvăm modificările şi mergem în modul DatasheetView. Introduceţi o serie de date ca în imaginea de mai jos.

Acum avem două tabele:
ANGAJAŢI şi COPII. Aşa cum în viaţa reală există o legătură între angajaţi şi copii lor, aşa şi în Access trebuie să avem acea relaţionare între cele două tabele, între cele două entităţi separate.

Observăm că deocamdată cele două tabele sunt complet independente şi nu există nimic comun acestora.

Pentru a stabili exact relaţia, adică pentru a specifica faptul că datele din câmpul ID_Angajat din ANGAJATI este replicată în ID_Angajat din COPII, mergem în DatabaseTools --> Relationships.

Selectăm ambele tabele şi apăsăm Add, apoi Close.

Cele două tabele nu sunt încă relaţionate.

Tragem (Drag&Drop) coloana ID_Angajat din ANGAJATI peste coloana ID_Angajat din COPII.
În fereastra deschisă bifăm checkbox-ul Enforce Referential Integrity.
Apăsăm Create.

Atenţie ! Este obligatoriu să închidem tabelele înainte de a face această operaţie de relaţionare.

Observăm că apare relaţia '1 la n' ('1 la ∞').

Câmpul ID_Angajat din tabelul Copii este cheie externă

Deschidem tabelul COPII. Coloana ID_Angajat stochează ID-ul corespunzător părintelui. De exemplu, dacă în prima linie scriem 1, stabilim că părintele lui Dorel este Ionescu, care are ID_Angajat 1 în tabelul ANGAJATI.