Sunteți pe pagina 1din 2

Laborator Access 2007. Baza de date VanzareCarti. Partea a 2-a.

Crearea relaiilor (relationships) dintre tabele. Cheie primar (primary key). Cheie strin
(foreign key). Integritate referenial (referential integrity).

Pentru a stabili o relaie (relationship) ntre tabele: Clic pe comanda Relationships din
grupul Show/Hide al tab-ului Database Tools din Ribbon.
Obs. Tabelele trebuie s fie nchise pentru a stabili relaii.

Dac tabelul Comenzi a fost creat, folosind pentru cmpurile Client ID, respectiv Carte ID
opiunea Lookup Wizard i s-a indicat numele cmpului Client ID din tabelul Clienti, respectiv numele
Carte ID din tabelul Carti, atunci relaiile s-au stabilit automat ntre tabele i ele arat ca n Fig. 1:

Fig. 1. Relation map

Observaie important. O cheie strin (foreign key) este un cmp care este cheie primar
(primary key) n tabelul su, dar apare i n alt tabel. n cazul de fa, n tabelul Comenzi exist
dou astfel de cmpuri, Client ID i Carte ID, care reprezint chei strine n acest tabel, dar sunt,
fircare, cheie primare n tabelul Clieni, respectiv Carti. Acest lucru e ilustrat n Fig. 1, n care
relaia dintre tabelul Comenzi i tabelul Carti s-a fcut pe baza cmpului Carte ID, iar relaia dintre
tabelul Comenzii tabelul Clienti prin intermediul cmpului Client ID.

Sunt mai multe feluri de a stabili relaii ntre tabele:
Folosind comanda Edit Relationships din tab-ul Design al Ribbon-ului
Folosind metoda Drag and Drop, care e mai uoar i mai rapid.

Dac vrei s creai o relaie prin metoda Drag and Drop, presupunnd c nu aveai deja
relaiile ca n Fig. 1, dai de exemplu clic pe cmpul Carte ID din tabelul Carti i tragei cu
butoanul stng apsat pn peste cmpul Carte ID al tabelului Comenzi. Se va deschide fereastra
Edit Relationships, ca n Fig. 2:

Fig. 2. Fereastra Edit Relationships
Se observ tabelel selectate (Carti, respectiv Comenzi, n zona de sub Table/Query,
respectiv Related Table/Query) i cmpurile selectate (Carte ID n dreptul fiecrui tabel). Selectai
caseta Enforce Referential Integrity (va fi explicat mai trziu). Observai c tipul relaiei (n
partea de jos a ferestrei din Fig. 2) este One-To-Many (ne referim mai trziu i la acest aspect).
Apsai butonul Create. n Relation Map va aprea ceva similar cu ceea ce e ilustrat n Fig. 3:


Fig. 3. Relaia Carti-Comenzi

Procednd similar cu cmpul Client ID al tabelului Clienti, pe care-l tragem peste cmpul
Client ID al tabelului Comenzi, va aprea i relaia dintre tabelele Clienti i Comenzi, ca n :

Fig. 4. Relaiile dintre tabelele bazei de date

La ce se refer relaia One-To-Many?
Relaia One-To-Many (Unul-la-Muli) nseamn c acel cmp va aprea o singur dat
ntr-un tabel, dar de mai multe ori n tabelul relaionat. De exemplu, cmpul Carte ID va aprea o
singur dat n tabelul Carti, deoarece acel tabel listeaz fiecare titlu de carte stocat. Dar va aprea
de mai multe ori n tabelul Comenzi, deoarece sperm c acea carte va fi comandat de mai muli
clieni de mai multe ori. Simbolul e 1 n dreptul captului One al relaiei i n dreptul captului
Many al relaiei.

Mai exist dou tipuri de relaii: One-To-One i Many-To-Many.

La ce se refer Enforce Referential Integrity?
Trebuie selectat aceast opiune pentru a fi siguri c NICIODAT nu vom avea o comand
pentru o carte care nu apare n tabelul Carti.

Pentru e edita o relaiefie dai clic pe comanda Edit Relationships din Ribbon, fie dai
dublu clic pe o relaie n Relation Map.

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