Transcript

SGBD-ul MICROSOFT ACCESS

Definirea relaţiilor dintre tabele

Pentru a avea acces simultan la datele din mai multe tabele ale aceleiaşi baze de date este

necesar să se definească relaţiile standard dintre aceste tabele. Relaţiile între tabele se definesc pe

baza valorilor unui câmp dintr-o tabelă utilizat drept cheie primară şi valorilor aceluiaşi câmp

dintr-o altă tabelă, unde este utilizat drept cheie externă. Access impune existenţa aceluiaşi tip

de date pentru câmpurile care participă la o relaţie, în cazul câmpului de tip Number

proprietatea Field Size a celor două câmpuri trebuie să fie identică. Relaţia dintre câmpurile de

tip Text trebuie, în principiu, să folosească câmpuri de aceeaşi lungime. Se recomandă ca

stabilirea relaţiilor între tabele să se facă înainte de înregistrarea datelor, în S.G.B.D. Access

există următoarele posibilităţi de realizare a relaţiilor dintre tabele:

• Relaţia 1-1 (one-to-one sau unu la unu) este cea mai simplă relaţie între două

tabele, în această relaţie, unei valori a câmpului cheie principală dintr-o tabelă îi corespunde o

singură valoare din câmpul folosit drept cheie externă din cealaltă tabelă. Altfel spus, unei

înregistrări din tabela aflată în partea stângă a relaţiei îi corespunde o singură înregistrare din

tabela aflată în partea dreaptă a relaţiei. Tabelele aflate într-o relaţie one-to-one se pot combina

într-o singură tabelă, în care apar toate câmpurile celor două tabele. Relaţiile de acest tip nu sunt

uzuale.

• Relaţia 1-n (one-to-many sau unul la mai mulţi) constituie tipul cel mai răspândit

de relaţii. Conform acestei relaţii unei înregistrări din tabela aflată în partea stângă a relaţiei îi

corespund două sau mai multe înregistrări din tabela aflată în partea dreaptă a relaţiei. Asocierea

se bazează pe un câmp cheie principală unic într-o tabelă şi un câmp cheie externă din cealaltă

tabelă care admite valori duplicate.

• Relaţia n-1 (many-to-one sau mai mulţi la unul) este opusă relaţiei 1-n. Pentru a

crea relaţia many-to-one este suficient să se inverseze relaţia one-to-many. De aceea, se spune

că relaţia many-to-one este reflexivă, adică relaţia many-to-om este reflexia relaţiei

corespondente one-to-many. Dacă se selectează o înregistrare din tabela din partea many a

relaţiei se poate afla înregistrarea care corespunde cheii sale externe din tabela din partea one a

relaţiei. Relaţiile n-1 nu sunt bazate pe câmpuri cheie primară din nici una dintre cele două

tabele.

1

• Relaţia m-n (many-to-many sau mulţi la mai mulţi) nu poate fi exprimată ca o

simplă relaţie între două tabele. Relaţia many-to-many se poate exprima prin intermediul unei a

treia tabele care are relaţii one-to-many şi many-to-one cu cele două tabele.

Pe lângă stabilirea relaţiilor între tabelele unei baze de date, Access permite şi specificarea unor

reguli care forţează integritatea datelor. Aceste reguli se numesc restricţii de integritate

referenţială; ele permit să se conserve intacte relaţiile între tabele într-un sistem de gestiune a

unei baze de date relaţionale.

Integritatea referenţială funcţionează după câmpul cheie. Acest sistem verifică în mod

continuu câmpul cheie, primară şi străină, la fiecare operaţie de adăugare, ştergere sau

modificare a unei înregistrări. Dacă o schimbare a unei chei afectează legătura între

tabele, sistemul avertizează că se violează regulile de integritate referenţială.

Atunci când două tabele sunt legate printr-o relaţie, o tabelă se numeşte părinte şi

cealaltă se numeşte copil. Acest sistem este cunoscut sub numele de relaţie părinte-copil

Integritatea referenţială garantează că nu vor exista înregistrări orfane, adică,înregistrare

copil fără o înregistrare părinte.

Capacitatea de a asigura în mod automat integritatea referenţială este o caracteristică

importantă a programului Access.

Definirea legăturilor dintre tabele se realizează din meniul Tools-Relationships, acesta

activând un panou de editare vizuală a acestora. Prima activare a acestei opţiuni are ca efect ŞI

afişarea unei ferestre cu obiectele bazei de date ce se pot plasa în panou prin dublu-chc sau

selectarea obiectului şi butonul Add (figurile de mai jos ).

2

3

Pentru a putea defini o legătură între două tabele, trebuie să existe compatibilitate între

tipul de date al cheu primare şi cel al cheii externe corespunzătoare. După plasarea tuturor

tabelelor în panoul de editare, definirea propriu-zisă a unei relaţii se realizează prin drag-and-

drop (selectare şi glisare) dinspre cheia primară a unei tabele spre o cheia externă

corespunzătoare sau invers. După realizarea acestei operaţii finalizarea definirii unei legături se

realizează în fereastra din figura următoare unde este prezentată definirea unei relaţii între

tabelul Operaţii (cheie primarăCodOperatie) şi tabelul OperatiiEfectuate (cheie externă

CodOperatie).

4

Crearea legaturilor

Dacă o cheie este formată din mai multe câmpuri, acestea se editează corespunzător în panoul

Edil Relationship (Figura 4. 9.).

Opţiunile din fereastra Edit Relationships au următoarea semnificaţie:

• Enforce Referenţial Integri ty - defineşte o restricţie de integritate referenţială. Nu se

permite actualizarea valorii unei chei externe, dacă această valoare nu există deja în tabelul unde

aceasta este cheie primară.

• Cascade Update Related Fields - actualizarea valorii unei chei primare dintr-un tabel se

propagă şi în înregistrările din tabelele unde aceasta este cheie externă.

• Cascade Delete Related Fields - ştergerea valorii unei chei primare, are ca efect şi ştergerea

înregistrărilor din tabelele unde aceasta este cheie externă.

In caseta Relationship Type sunt prezentate tipurile de legături care pot exista între două tabele:

One to One- 1-1; One to Many - l -n

5

Dacă în această casetă este afişat mesajul Indeterminate, înseamnă că tipul de relaţie nu poate fi

definit, cea mai probabilă eroare fiind incompatibilitatea între tipul de date al cheii primare şi cel

al cheii externe, sau inexistenţa unei chei primare în relaţia respectivă.

Butonul de comandă Join Type permite şi definirea unor tipuri de relaţii particulare între tabele,

aşa cum se observă din figura 4.10.

Figura 4. 10

Variantele 2 şi 3 permit utilizarea implicită în interogări a join-urilor externe de tip LEFT şi

RIGHT, care presupun într-o interogare luarea în considerare a tuturor înregistrărilor dintr-un

tabel, indiferent dacă au sau nu înregistrări corespondente după câmpul (câmpurile) de legătură

în celalalt tabel, în exemplul de legătură prezentat în Figura 4. 10, este posibilă o interogare între

cele două tabele, în care vor fi luate în considerare toate înregistrările din tabelul Operaţii,

indiferent dacă au sau nu corespondent în tabelul OperatiiEfectuate.

EXPLOATAREA DATELOR DIN TABELE. Operaţii

asupra înregistrărilor dintr-o tabelă

Într-o tabelă Access se pot realiza următoarele operaţii:

• Adăugarea înregistrărilor;

• Ştergerea de înregistrări;

• Căutarea de înregistrări;

• Modificarea înregistrărilor;

• Ordonarea înregistrărilor;

6

• Filtrarea înregistrărilor;

Pentru a efectua aceste operaţii este necesar ca tabela să fie deschisă în modul DataSheet View

(meniul View comanda DataSheet).

Adăugarea înregistrărilor. Dacă tabela este deschisă imediat după creare,

Access va afişa o foaie de date vidă, iar pointerul de înregistrare va fi plasat pe prima şi unica

linie, pe butonul ei de selecţie (butonul gri din prima coloană din tabela afişată în modul

DataSheet View).

Pentru a introduce date se plasează pur şi simplu cursorul pe câmp şi se introduce o

valoare, în timp ce se efectuează această operaţie, pointerul de înregistrare se transformă într-un

creion, ilustrând faptul că se editează o înregistrare. O nouă linie vidă apare dedesubtul primei

linii, în locul pointerului de înregistrare figurează un asterisc (*) indicând o nouă înregistrare.

Dacă tabela care se deschide în modul DataSheet conţine date, pentru a adăuga o nouă

înregistrare trebuie plasat cursorul pe ultima linie (al cărei pointer este un asterisc) şi se

introduce noua înregistrare. Pentru plasarea cursorului pe ultima linie se execută clic pe

butonul New Record de pe bara cu instrumente sau se alege Insert, Record sau se utilizează

tasta cu săgeata în jos.

Ştergerea de înregistrări. Pentru a şterge una sau mai multe înregistrări se selectează

înregistrarea sau înregistrările şi se acţionează tasta Delete sau butonul Delete Record de pe bara

cu instrumente sau se alege din meniul Edit opţiunea Delete. Oricare ar fi metoda aleasă, Access

deschide o casetă de mesaj care cere confirmarea ştergerii. Dacă se execută clic pe butonul Yes,

înregistrările sunt şterse. Se recomandă o atenţie deosebită la ştergerea înregistrărilor deoarece

Access nu permite anularea ştergerii înregistrării.

Căutarea unei înregistrări se realizează în acces secvenţial sau în acces direct.

Căutarea secvenţială a unei înregistrări se face utilizând setul de butoane din partea stângă a

barei aflate în partea de jos a ferestrei DataSheet: butonul Next Record, First Record, Last

Record, Previous Record sau bara de derulare verticală dacă sunt prezente mai multe

înregistrări decât pot încăpea în dimensiunea verticală a ferestrei DataSheet.

7

Pentru consultarea în acces direct se selectează câmpul în care se face căutarea şi se

utilizează buton ul Find de pe bara cu instrumente sau se alege Edit, Find. Access deschide

caseta de dialog Find in Field. în caseta de text Find What se specifică criteriul de căutare.

Butoanele de comandă Find First (găsirea primei apariţii) şi Find Next (găsirea următoarei

apariţii) sunt activate când se introduc date în caseta de text. Căutarea se poate realiza în întreaga

tabelă (AH), începând cu înregistrarea curentă până la sfârşitul tabelei (Down), de la

înregistrarea curentă spre prima înregistrare (Top) sau de la ultima înregistrare spre începutul

tabelei (Up), opţiuni care se pot preciza în zona Search. Din lista derulantă Match (potrivire) se

poate selecta Whole Field (întregul câmp), Start of Field (începutul câmpului) şi Any Part of

Field (orice parte a câmpului). Pentru a indica o căutare care să ţină seama de literele mari şi

mici, se marchează caseta de validare Match Case.

Modificarea înregistrărilor. În timp, apare necesitatea actualizării datelor conţinute în baza de

date.

Modificarea conţinutului unei înregistrări se realizează plasând cursorul în câmpul

respectiv şi modificând datele. Pentru înlocuirea automată a valorilor dintr-un câmp din mai

multe înregistrări se utilizează caseta de dialog Replace in Field (o variaţiune a casetei Find in

Field). Caseta Replace in Field se afişează prin comanda Edit, Replace sau a combinaţiei de

taste Ctrl + H .

Comanda va înlocui valorile din câmpurile care se potrivesc cu valorile introduse în

caseta de text Find What. înlocuirea se face cu valorile specificate în caseta de text Replace

With. înlocuirea se poate face selectiv prin căutarea fiecărei valori de înlocuit şi confirmarea

înlocuirii (butoanele Field Next şi Replace) sau pentru toate înregistrările care corespund

criteriul de înlocuire (butonul Replace AH).

Obs. Datele pot fi modificate şi folosind interogări speciale.

Ordonarea înregistrărilor. Ordonarea şi filtrarea înregistrărilor sunt operaţii deosebit de

importante pentru utilizatori, dar ele vizează îndeosebi cererile informaţionale ale utilizatorilor,

motiv pentru care ele sunt realizate pentru obiectele tip Query (cereri de interogare).

8

Îngheţarea afişării câmpurilor. Dacă o tabelă conţine prea multe câmpuri, ele nu pot fi afişate

toate în modul DataSheet View. Pentru a vizualiza toate câmpurile se foloseşte bara de derulare

orizontală sau îngheţarea afişării câmpurilor. Pentru îngheţarea afişării câmpurilor:

• se deschide tabela în modul DataSheet View;

• se selectează coloana sau coloanele a căror afişare se va îngheţa executând clic pe butoanele

antetelor acestor coloane;

• din meniul Format se alege opţiunea Freeze Columns (îngheţarea coloanelor).

Pentru "dezgheţarea" coloanelor "îngheţate" se alege Format, Unfreeze AH Columns.

Exemple:

Promovabilitatea studentilor.

9

Policlinica

10

Agentie

11


Top Related