Concepte de bază
Într-o bază de date relaţională datele sunt organizate în tabele şi programe (care prelucrează aceste date). Bazele de date relaţionale permit folosirea simultană a datelor din mai multe tabele. Prin folosirea relaţiilor se pot evita duplicarea datelor, se poate salva din spaţiul folosit pe disc şi se ajunge la o viteză ridicată de manipulare şi prelucrare a datelor din tabele.
În cazul relaţiilor există două tipuri de tabele: tabelul principal (părinte) şi tabelul secundar (copil).
O relaţie este o asociere între două câmpuri a două tabele diferite. Î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.
Crearea primei relaţii
Pentru a crea prima relaţie trebuie să ne poziţionăm în fereastra Relationships. Vom putea ajunge la această ferestră prin două moduri:
- în fereastra Database apelăm meniul Tools şi selectăm opţiunea Relationships... ;
- click pe butonul din bara de instrumente.
În acest va apărea cutia de dialog Show table, asupra căreia vom face următoarele operaţiuni:
- click pe un tabel necesar într-o relaţie, după care click Add pe butonul, sau dublu-click pe tabel ;
- facem aceleaşi operaţiuni pentru a adăuga şi următorul tabel necesar relaţiei;
- la final click pe butonul Close .
După aceşti primi paşi vom avea în fereastra Relationships cele două tabele introduse.
Pentru a crea o relaţie nu avem decât să selectăm un câmp din tabelul principal şi să-l tragem deasupra câmpului de referinţă din tabelul secundar. De obicei câmpul referit este o cheie primară.
Dacă avem mai multe câmpuri în tabelul principal, pe care vrem să la referim, selectăm primul câmp, iar cu ajutorul tastei CTRL avem posibilitatea selectării şi celorlalte câmpuri.
După ce selectăm câmpurile ce vor forma o legătură va apărea o nouă fereastră Edit relationships.
În partea de sus a acestei ferestre apar numele celor două tabele care intră legătură, iar mai jos căşpurile din aceste tabele care formează această legătură. De reţinut faptul că aceste două câmpuri trebuie să aibă acelaşi tip de dată.
În partea de jos la secţiunea Relationship type se observă şi tipul legăturii(în acest caz unu la unu).
Dacă dorim căsuţele Cascade Update Related Fields şi Cascade Delete Related Records pot fi activate.
Pentru a termina dăm click pe butonul Create.
Legătura astfel creată va apărea în fereastra 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.