CATEGORII DOCUMENTE |
Relatiile se formeaza prin stabilirea unei legaturi intre un camp (o combinatie de campuri) dintr-un tabel si campurile corespunzatoare din alt tabel.
Legaturile intre tabele sunt de trei tipuri:
Tabela T1 |
|
Tabela T2 |
||
C1 - Primary Key |
|
C2 - Primary Key |
||
C21 - Foreign Key |
||||
Rezolvarea problemei se face prin spargerea relatiei many-to-many in doua
relatii one-to-many, cu ajutorul unei
tabele de jonctiune (legatura) - T3. Cheile primare din T1 si T2 vor constitui
(vor face parte) cheia primara compusa a tabelei T3.
Tabela T1 |
Tabela T2
C1 - Primary Key
C2 - Primary Key
Tabela T3
C31 Primary Key
C32 Primary Key
Crearea unei relatii se face astfel (fig.5):
a) Din meniul Tools->optiunea Relationships sau activand butonul Relationships se deschide fereastra Relationships;
b) Se adauga tabelele relationate din fereastra Show Tables;
c) Se selecteaza campul PK din tabela principala si se "trage" cu ajutorul mouse-ului pana la campul corespunzator din tabela asociata;
d) Se deschide fereastra de stabilire a detaliilor relatiei (Edit Relationships): campurile corespunzatoare din tabele, butonul Join Type - tipul de legatura stabilit si trei casete de validare:
Enforce Referential Integrity - impune integritatea referentiala
Cascade
Update Related Fields -
actualizarea in cascada a campurilor
implicate in relatie;
Cascade
Delete Related Records -
stergerea in cascada a campurilor
implicate in relatie;
e) Se inchide fereastra Relationships si se salveaza legaturile create.
|
Verificarea integritatii referentiale este realizata de sistemul Access la solicitarea proiectantului BD si consta in:
ð Verificarea campurilor incluse in relatie: sa fie de acelasi tip si sa aiba aceeasi dimensiune;
ð Introducerea unei valori in campul cheie straina din tabela secundara se face numai daca aceasta valoare se regaseste in campul cheie primara din tabela principala;
ð Nu se admit stergeri sau actualizari ale unei valori a cheii primare atata timp cat exista inregistrari corespunzatoare in tabela secundara;
ð Pentru realizarea stergerilor si actualizarilor in cascada s-au prevazut cele doua casete de validare Cascade Update si Cascade Delete.
Stergerea in cascada inseamna ca o solicitare de stergere a unei inregistrari din tabela primara va determina stergerea inregistrarilor corespunzatoare din tabelul asociat.
Similar se produce si actualizarea in cascada: modificarea valorii campului cheie primara din tabela principala determina modificarea tuturor inregistrarilor corespunzatoare din tabela asociata.
Relatiile dintre tabele confera consistenta si coerenta bazei de date, de aceea in cadrul proiectarii bazei de date stabilirea corecta a legaturilor dintre tabele este foarte importanta.
Asocieri in cursul definirii unei relatii Access pune la dispozitie un buton pentru definirea tipului de asociere prestabilit. Asocierea defineste modul in care inregistrarile din tabelele corelate vor fi combinate intr-o interogare:
Asocieri interne (inner join) - tipul de asociere implicit; o interogare cu asociere interna va afisa numai acele inregistrari care corespund ambelor tabele.
Asocieri externe (outer join) - precizeaza
ca o interogare va selecta toate inregistrarile dintr-o tabela si numai pe cele
care corespund din celalalt tabel.
Sunt de 2 tipuri, in functie de tabela din care se preiau toate inregistrarile:
o Asociere stanga (left join)
o Asociere dreapta (right join).
Asocierile externe nu se folosesc prea
des deoarece sunt mai putin flexibile, mai
ales cand sunt implicate mai multe
tabele.
Asociere intrinseca (self join) - este o relatie care asociaza unui camp dintr-un tabel un camp din acelasi tabel. Se creaza prin duplicarea tabelei si stabilirea legaturii intre campuri. Este o asociere foarte performanta deoarece permite cautari recursive. De exemplu: o tabela care contine date despre parinti si copii.
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 4228
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved