luni, 27 aprilie 2015

27.04-30.04.2015 Relatii dintre tabele

Suport de curs: Microsoft Access2007.pdf
Multimedia - Exemple aplicatii: Access
Model de proiect cu baze de date<<descarca>> 
Film <<descarca>>
SARCINA DE LUCRU:
  1. Deschideti baza de date FIRMA creata in orele anterioare. Aceasta  contine tabelele:
  • ANGAJATI, 
  • PRODUSE, 
  • CLIENTI 
2. Creati tabela TRANZACTII dupa modelul oferit si introduceti inregistrari.
3. Definiti relatiile intre tabelele create:
4. Urmareste demonstratia profesorului. Noteaza in caiete observatiile. 
5. Realizeaza si tu, apoi, aplicatia propusa.


Relaţii între tabele

O relaţie este o asociere între două câmpuri a două tabele diferite.
 
În cazul relaţiilor există două tipuri de tabele: 
  • tabelul principal (părinte) şi 
  • tabelul secundar (copil). 
Într-o bază de date putem avea trei tipuri de relaţii:
- relaţie unu la unu - când o înregistrare dintr-un tabel poate avea ca referinţă o înregistrare din tabelul secundar (şi viceversa). 
De exemplu avem un tabel cu elevi, unde putem avea informaţii despre adresa, nume, etc. şi un alt tabel unde vom stoca numărul total de ore de practică. Acest tip de relaţie nu este folosit prea des.
- relaţie unu la N - când o înregistrare dintr-un tabel primar poate avea mai mulţi corespondenţi în tabelul în tabelul secundar.  
De exemplu  un tabel cu judeţele, iar altul cu clienţi. Astfel, într-un judeţ pot fi mai mulţi clienţi, dar clienţii aparţin unui singur judeţ. Acest tip de relaţii sunt folosite mult mai des. Acest tip de relaţii sunt folosite mult mai des.
- relaţie N la M - când unei înregistrări din tabelul primar îi corespund mai multe înregistrări din tabelul secundar, iar unei înregistrări din tabelul secundar îi corespund mai multe înregistrări în tabelul primar. Acest tip de relaţie este posibil doar atunci când apare un al treilea tabel, care face legătura între alte două tabele.

Pentru exemplificare vom utiliza tabelele din lectiile anterioare.

Stabilirea cheii principale 
Fiecare tabel ar trebui să aibă cel puțin un câmp a cărui valoare este unică pentru fiecare înregistrare (câmp cheie principală). Acest câmp este util pentru a identifica în mod unic fiecare înregistrare. 
Pentru a stabili o cheie principală trebuie să parcurgi următorii pași:
  • Deschide tabelul afișând structura acestuia.
  • Selectează câmpul care vrei să fie cheie principală.
  • Alege din meniul DESIGN opțiunea PRIMARY KEY.


Relația între două tabele nu este obligatorie, dar este necesară, în general, pentru construirea interogărilor care acționează asupra acestor table (deși relația s-ar putea construi și când se construiește interogarea).
Alege din meniul DATABASES TOOLS opțiunea RELATIONSHIPS.

Integritatea referenţială
Integritatea referenţială este un sistem de reguli pe care bazele de date relaţionale folosesc pentru a asigura coerenţa datelor.
Putem activa aceste reguli printr-un click pe opţiunea Enforce Referential integrity din fereastra apărută în cazul creării legăturilor
Dacă aceste reguli sunt activate, Access nu ne va permite să introducem o înregistrare în tabelul secundar dacă valoarea din câmpul de referinţă nu există în câmpul referit din tabelul principal.

Integritatea referenţială are asociate două acţiuni:
- Cascade update the related fields: selectarea acesteia determină ca la o modificare a valorii referite din tabelul de bază să se modifice toate înregistrările aferente din tabelul secundar; 
- Cascade delete related records: selectarea acesteia determină ca la o ştergere a valorii referite din tabelul de bază să se şteargă toate înregistrările aferente din tabelul secundar