laborator access 2007 exemplu partea 2

2
Laborator Access 2007. Baza de date VanzareCarti. Partea a 2-a. Crearea relaţiilor (relationships) dintre tabele. Cheie primară (primary key). Cheie străină (foreign key). Integritate referenţială (referential integrity). Pentru a stabili o relaţie (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 relaţii. Dacă tabelul Comenzi a fost creat, folosind pentru câmpurile Client ID, respectiv Carte ID opţiunea Lookup Wizard şi s-a indicat numele câmpului Client ID din tabelul Clienti , respectiv numele Carte ID din tabelul Carti, atunci relaţiile s-au stabilit automat între tabele şi ele arată ca în Fig. 1: Fig. 1. Relation map Observaţie importantă. O cheie străină (foreign key) este un câmp care este cheie primară (primary key) în tabelul său, dar apare şi în alt tabel. În cazul de faţă, în tabelul Comenzi există două astfel de câmpuri, Client ID şi Carte ID, care reprezintă chei străine în acest tabel, dar sunt, fircare, cheie primare în tabelul Clienţi, respectiv Carti. Acest lucru e ilustrat în Fig. 1, în care relaţia dintre tabelul Comenzi şi tabelul Carti s-a făcut pe baza câmpului Carte ID, iar relaţia dintre tabelul Comenzişi tabelul Clienti prin intermediul câmpului Client ID. Sunt mai multe feluri de a stabili relaţii între tabele: Folosind comanda Edit Relationships din tab-ul Design al Ribbon-ului Folosind metoda Drag and Drop, care e mai uşoară şi mai rapidă. Dacă vreţi să creaţi o relaţie prin metoda Drag and Drop, presupunând că nu aveaţi deja relaţiile ca în Fig. 1, daţi de exemplu clic pe câmpul Carte ID din tabelul Carti şi trageţi cu butoanul stâng apăsat până peste câmpul Carte ID al tabelului Comenzi. Se va deschide fereastra Edit Relationships, ca în Fig. 2: Fig. 2. Fereastra Edit Relationships

Upload: mitrica-constanta

Post on 21-Jul-2016

44 views

Category:

Documents


12 download

TRANSCRIPT

Page 1: Laborator Access 2007 Exemplu Partea 2

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

Crearea relaţiilor (relationships) dintre tabele. Cheie primară (primary key). Cheie străină

(foreign key). Integritate referenţială (referential integrity).

Pentru a stabili o relaţie (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 relaţii.

Dacă tabelul Comenzi a fost creat, folosind pentru câmpurile Client ID, respectiv Carte ID

opţiunea Lookup Wizard şi s-a indicat numele câmpului Client ID din tabelul Clienti, respectiv numele

Carte ID din tabelul Carti, atunci relaţiile s-au stabilit automat între tabele şi ele arată ca în Fig. 1:

Fig. 1. Relation map

Observaţie importantă. O cheie străină (foreign key) este un câmp care este cheie primară

(primary key) în tabelul său, dar apare şi în alt tabel. În cazul de faţă, în tabelul Comenzi există

două astfel de câmpuri, Client ID şi Carte ID, care reprezintă chei străine în acest tabel, dar sunt,

fircare, cheie primare în tabelul Clienţi, respectiv Carti. Acest lucru e ilustrat în Fig. 1, în care

relaţia dintre tabelul Comenzi şi tabelul Carti s-a făcut pe baza câmpului Carte ID, iar relaţia dintre

tabelul Comenzişi tabelul Clienti prin intermediul câmpului Client ID.

Sunt mai multe feluri de a stabili relaţii între tabele:

Folosind comanda Edit Relationships din tab-ul Design al Ribbon-ului

Folosind metoda Drag and Drop, care e mai uşoară şi mai rapidă.

Dacă vreţi să creaţi o relaţie prin metoda Drag and Drop, presupunând că nu aveaţi deja

relaţiile ca în Fig. 1, daţi de exemplu clic pe câmpul Carte ID din tabelul Carti şi trageţi cu

butoanul stâng apăsat până peste câmpul Carte ID al tabelului Comenzi. Se va deschide fereastra

Edit Relationships, ca în Fig. 2:

Fig. 2. Fereastra Edit Relationships

Page 2: Laborator Access 2007 Exemplu Partea 2

Se observă tabelel selectate (Carti, respectiv Comenzi, în zona de sub Table/Query,

respectiv Related Table/Query) şi câmpurile selectate (Carte ID în dreptul fiecărui tabel). Selectaţi

caseta Enforce Referential Integrity (va fi explicată mai târziu). Observaţi că tipul relaţiei (în

partea de jos a ferestrei din Fig. 2) este One-To-Many (ne referim mai târziu şi la acest aspect).

Apăsaţi butonul Create. În Relation Map va apărea ceva similar cu ceea ce e ilustrat în Fig. 3:

Fig. 3. Relaţia Carti-Comenzi

Procedând similar cu câmpul Client ID al tabelului Clienti, pe care-l tragem peste câmpul

Client ID al tabelului Comenzi, va apărea şi relaţia dintre tabelele Clienti şi Comenzi, ca în :

Fig. 4. Relaţiile dintre tabelele bazei de date

La ce se referă relaţia One-To-Many?

Relaţia One-To-Many (Unul-la-Mulţi) înseamnă că acel câmp va apărea o singură dată

într-un tabel, dar de mai multe ori în tabelul relaţionat. De exemplu, câmpul Carte ID va apărea o

singură dată în tabelul Carti, deoarece acel tabel listează fiecare titlu de carte stocată. Dar va apărea

de mai multe ori în tabelul Comenzi, deoarece sperăm că acea carte va fi comandată de mai mulţi

clienţi de mai multe ori. Simbolul e 1 în dreptul capătului One al relaţiei şi în dreptul capătului

Many al relaţiei.

Mai există două tipuri de relaţii: One-To-One şi Many-To-Many.

La ce se referă Enforce Referential Integrity?

Trebuie selectată această opţiune pentru a fi siguri că NICIODATĂ nu vom avea o comandă

pentru o carte care nu apare în tabelul Carti.

Pentru e edita o relaţiefie daţi clic pe comanda Edit Relationships din Ribbon, fie daţi

dublu clic pe o relaţie în Relation Map.