Creeaza.com - informatii profesionale despre


Simplitatea lucrurilor complicate - Referate profesionale unice
Acasa » scoala » informatica » access
Relatii intre tabele si itegritatea datelor

Relatii intre tabele si itegritatea datelor


Relatii intre tabele si itegritatea datelor

Relatiile dintre doua tabele se stabilesc, de regula, prin intermediul unor cimpuri identice (cu aceeasi denumire, de aceeasi lungime, cu aceleasi proprietati) prezente in ambele tabele.

In cazul relatiei de tipul unu la multi in tabelul primar (din partea caruia se realizeaza relatia 'unu') trebuie sa existe un cimp, numit cheie primara, in care nu se admit valori care se repeta, iar in tabelul secundar (din partea caruia se realizeaza relatia 'multi') trebuie sa existe un cimp analogic cu cel din tabelul primar, numit cheie straina, care poate admite valori care se repeta.

Relatia multi la multi poate fi transformata in doua relatii de tipul unu la multi prin definirea unui tabel intermediar, in care se introduc, in calitate de chei straine, cheile primare ale primelor douг tabele. Astfel, pentru a evita relatia multi la multi dintre tabelele CARTI si CITITORI, a fost definit tabelul COMENZI in care au fost incluse cimpurile IdCarte si IDCit din tabelele respective.



Relatia de tipul unu la unu presupune existenta in ambele tabele a unei chei primare cu aceleasi caracteristici, in fond, doua tabele intre care exista o relatie de tipul unu la unu pot fi oricind unite intr-un singur tabel; la fel, orice tabel poate fi divizat in doua sau mai multe tabele intre care se stabileste o relatie de tipul unu la unu. Divizarea unui tabel in modul mentionat mai sus poate fi utila in cazul unui tabel cu un numar foarte mare de cimpuri (un tabel Access, de exemplu, nu poate contine mai mult de 255 de cimpuri), dar si in situatia cind o parte din informatia care se refera la o entitate are un caracter confidential, sau se utilizeaza foarte rar. In concluzie, desi relatiile de tipul unu la unu nu sunt caracteristice unei baze de date de tip relational, totusi in unele situatii acest tip de relatii este preferabil sau chiar necesar.

Putem stabili relatii intre tabelele bazei de date in mod explicit, utilizind comanda Relationships din meniul Tools. In acest caz apare  o  fereastra in care indicam tabelele intre care se stabilesc relatii,apoi,     cu   ajutorul mouse-ului, trasam legaturile intre cimpurile respective.

Daca unul din cimpurile de legatura este de tip cheie primara (el are o culoare mai pronuntata), trasarea se face pornind de la acest cimp. Tabelul de  la  care se  traseaza  legatura  se  numeste  tabel  primar (principal),  iar celalalt - secundar (subordonat). Ca rezultat, apare o caseta de dialog in care putem specifica proprietatile relatiei (legaturii).

Pentru relatia dintre doua tabele pot fi stabilite urmatoarele proprietati:

  1. Tipul relatiei (Relationship Type) poate fi stabilit ca unu la unu (one to one) sau unul la multi (one to many);
  2. Impune   integritatea   referentiala   (Enforce  Referential  Integrity}. Includerea   acestui   parametru   asigura   integritatea   datelor   in   procesul introducerii, modificarii sau stergerii inregistrarilor din tabelele legate. Acest lucru este posibil doar in cazul cind cimpul din tabelul principal este de tip
    cheie primara, iar cimpul de legatura din tabelul subordonat are acelasi tip de date.  Atunci  cind  introducem  date  in  cimpul  de  legatura  al  tabelului subordonat,  sunt  acceptate  doar acele  valori  care  se  contin  in  cimpul respectiv al tabelului principal. De exemplu, daca nu exista un cititor cu identificatorul 0472 in tabelul CITITORI, sistemul nu va admite aparitia acestui cod in cimpul respectiv al tabelului COMENZI. In acest caz este necesar sa introducem mai intii datele despre cititorul in cauza in tabelul CITITORI, apoi sa utilizam identificatorul cititorului in tabelul COMENZI. La fel, nu putem exclude o inregistrare din tabelul principal, daca valoarea cimpului de legatura a acestei inregistrari se contine in una sau mai multe inregistrari ale tabelului subordonat.
  3. Modificarea  in  cascada  a  inregistrarilor (Cascade  Update Related Fields). Daca acest parametru este inclus, sistemul va modifica toate valorile cimpului de legatura ale tabelului subordonat in cazul cind valoarea cimpului respectiv al tabelului principal se modifica. De exemplu, daca un cititor a pierdut
    carnetul de cititor cu numarul 0519 (identificatorul cititorului) si i se remite un nou carnet cu numarul  1465,  aceasta  valoare trebuie  sa  se modifice  in  toate inregistrarile tabelului COMENZI in care figureaza valoarea veche. In caz contrar, imprumuturile de carti facute de cititorul cu identificatorul 0519 nu sunt valide, deoarece nu se cunoaste nici o informatie despre cititorul in cauza.
  4. Excluderea in cascada a inregistrarilor (Cascade Delete Related Records). Daca acest parametru este activ, atunci excluderea unei inregistrari din tabelul principal implica excluderea tuturor inregistrarilor din tabelul subordonat, in care valoarea cimpului de legatura coincide cu cea a cimpului respectiv din tabelul principal. De cele mai multe ori asemenea excluderi sunt firesti, deoarece existenta unor inregistrari in tabelul subordonat, pentru care valoarea cimpului de legatura nu se contine si in tabelul principal, duce la pierderea integritatii datelor.

Toate rationamentele de mai sus tin de integritatea datelor, asigurarea careia reprezinta unul din principiile fundamentale ale proiectarii bazelor de date.







Politica de confidentialitate


creeaza logo.com Copyright © 2024 - Toate drepturile rezervate.
Toate documentele au caracter informativ cu scop educational.