Creeaza.com - informatii profesionale despre


Simplitatea lucrurilor complicate - Referate profesionale unice
Acasa » scoala » informatica » baze de date
Transformarile logico-fizice de baza

Transformarile logico-fizice de baza


Transformarile logico-fizice de baza

Exista mai multe abordari legate de maparea relatiilor logice in relatiile fizice. Cea mai directa transformare logic-fizica este de a implementa fiecare tabela a schemei conceptuale ca o singura relatie de baza. Insa, pentru a inbunatati performanta sistemului, proiectantul bazei de date fizice trebuie sa determine daca una din urmatoarele transformari logic-an-fizic ar fi mai potrivita:

partitionarea verticala a unei tabele: spargerea tabelei in mai multe relatii de baza, fiecare cu o parte din atributele (coloanele) relatiei initiale (fig.11.1).

partitionarea orizontala a unei tabele: spargerea tabelei in mai multe relatii de baza, fiecare cu o parte din tuplele (liniile) relatiei initiale (fig.)



reuniunea tabelelor: combinarea tabelelor intr-o singura relatie de baza (fig.11.3.)

Aceste transformari vor avea ca rezultat relatii de baza care nu corespund exact cu tabelele de start.

1. Partitionarea verticala.

Partitionarea verticala proiecteaza anumite coloanele tabelei intr-o relatie si celalalte coloane in alta relatie. Coloanele cu cheia primara apar in ambele relatii de baza, astfel incat tabela logica originala poate fi reconstituita.

Partitionarea verticala poate fi potrivita daca anumite coloane ale tabelei sunt accesate mai frecvent decat celelalte. Separand coloanele accesate mai rar de cele accesate mai des se reduce volumul de date care trebuie copiate de pe memoria secundara ca raspuns la o cerere. Astfel tranzactiile care cer date numai din partitia frecvent accesata nu trebuie sa transfere si coloanele de care nu au de fapt nevoie.

Partitionarea verticala poate fi de asemenea potrivita atunci cand anumite coloane ale tabelei sunt accesate in primul rand de un alt grup. Aceasta forma de partitionare este in special utila atunci cand aceste grupuri de utilizatori sunt separate geografic. Rezultatul este o baza de date distribuita, cu anumite relatii bazate pe un calculator si altele pe altul (fig. 11.4.).

De exemplu, coloanele tabelei ANGAJAT care contin date despre compnesatii pot fi memorate pe calculatorul departamentului Salarizare iar celelalte coloane ale aceleasi tabele pe calculatorul departamentului Personal.

O baza de date distribuita eficient memoreaza datele acolo unde acestea vor fi accesate. Accesul la date memorate local evita costurile de comunicare cu alte calculatoare si alte partitii ale bazei de date distribuite.

O alta aplicatie a partitionarii verticale este de a forta restrictiile de baza. Un utilizator are acces fie la o relatie de baza in intregul ei, fie nu are acces de loc. Daca anumite coloane ale tabelei sunt necesare utilizatorilor cu un nivel  de autorizare, iar celelalte utilizatorilor cu un alt nivel de autorizare, atunci punand coloanele in relatii de baza diferite vom putea permite managerului bazei de date sa impuna restrictiile de securitate.

Cont_client

 

Balanta_cont

 


Fig. 11.1. Partitionarea verticala a relatiei CONT in doua relatii CONT_CLIENT si BALANTA_CONT.

CONT_CLIENT = SELECT CONT#, NUME_CLIENT, ZONA_CLIENT, TELEFON_CLIENT FROM CONT;

BALANTA_CONT = SELECT CONT#, BALANTA FROM CONT;

Cont_nord

 

Cont_sud

 


Fig. Partitionarea orizontala a relatiei CONT in doua relatii CONT_NORD si CONT_SUD.

CONT_NORD = SELECT ALL FROM CONT WHERE ZONA_CLIENT = 'NCA' OR 'OR';

CONT_SUD = SELECT ALL FROM CONT WHERE ZONA_CLIENT = 'SCA' OR 'NV';

Cont

 

Info_cont

 

Istorie_cont


 


Fig. 11.3. Reuniunea relatiilor CONT si ISTORIE_CONT pentru a forma relatia INFO_CONT.

INFO_CONT = SELECT ALL FROM CONT, ISTORIE_CONT WHERE CONT.CONT# = ISTORIE_CONT.CONT#;

2. Partitionarea orizontala.

Partitionarea orizontala pune mai multe linii ale unei tabele intr-o relatie de baza si celelalte linii in alta relatie. Tabela logica originala poate fi reconstruita facand reuniunea celor doua relatii de baza. (fig.11.2)

Partitionarea orizontala poate fi potrivita daca anumite linii ale tabelei sunt accesate mult mai frecvent decat celelalte linii. Separand liniile frecvent accesate de cele accesate mai rar reducem volumul de date care trebuie copiate pe/ de pe memoria secundara ca raspuns la cerere. Astfel, tranzactiile care cer date numai din partitia frecvent accesata nu trebuie sa traga dupa ele datele din cealalta partitie.

Partitionarea orizontala poate fi de asemenea utila atunci cand anumite linii ale tabelei sunt accesate de un anumit grup de utilizatori iar celelalte de catre un alt grup. Ca si in cazul partitionarii verticale, daca cele doua grupuri  sunt separate geografic, rezultatul va fi o baza de date distribuita. De exemplu, liniile din tabela CONT ar putea fi memorate in Timisora pentru Banatul de Sud si in Arad pentru Banatul de Nord.

3. Reuniunea.

Liniile mai multor tabele pot fi combinate intr-o relatie de baza, o transformare care cere ca tabelele constituente sa aiba un atribut comun. (fig.11.3). Uzual, acest atribut este atributul de cheie primara al unei tabele si atributul de cheie straina a celeilalte tabele.

Reuniunea este potrivita atunci cand cele doua tabele sunt aproape intotdeauna accesate impreuna, cu o operatie de JOIN pe atributul comun.

De exemplu, sa consideram modelul de date din fig.11.5. Si relatiile sale corespunzatoare din fig.11.6. Daca liniile JOB si APTITUDINI_JOB asociate sunt aproape intotdeauna accesate impreuna, atunci relatia din fig.11.7. ar fi potrivita. Sa notam ca datele din JOB se repeta pentru fiecare linie APTITUDINI_JOB. Reuniunea fizica poate conduce atat la inbunatatirea performantei cat si la dificultati de mentinere a consistentei, deoarece ea reduce nivelul de normalizare.



Fig. 11.4. O baza de date distribuita cu relatii memorate pe mai multe calculatoare conectate printr-o retea de comunicatii.

Job

 



Fig. 11.5. Un model de date.

JOB

COD_JOB

TITLU_JOB

Secretar

Programator

Manager

APTITUDINI_JOB

COD_JOB

APTITUDINE#

DESC_APTITUDINE

Tehnoredactare

Editare

Editare

C

Procesare date

Fig. 11.6. Relatiile corespunzatoare modelului de date din fig.11.5.

APTITUDINI_JOB_DE_BAZA

COD_JOB

TITLU_JOB

APTITUDINE#

DESC_APTITUDINE

Secretar

Tehnoredactare

Secretar

Procesare date

Secretar

Editare

Programator

Editare

Programator

C

Manager

Fig.11.7. Relatia de baza formata prin reuniunea relatiilor din fig.11.6.

4. Aplicabilitatea transformarilor.

Faptul ca o transformare particulara este potrivita pentru o tabela data depinde de mai multi factori, incluzand:

latimea tabelei (i.e. numarul de bytes dintr-o linie).

lungimea tabelei (i.e. numarul de linii).

patternurile de acces la tabela:

T  unele linii sunt mai frecvent accesate decat altele.

T  unele coloane sunt mai frecvent accesate decat altele.

T  unele tabele sunt accesate frecvent impreuna.

Putem face anumite generalizari ale efectelor factorilor de mai sus, daca consideram fiecare factor in mod independent, pe fondul nemodificarii celorlalti.

Cu cat o tabela e mai larga, probabilitatea ca ea sa poata fi partajata vertical este mai mare.

Cu cat o tabela e mai lunga, probabilitatea ca ea sa poata fi partajata orizontal este mai mare.

Cu cat accesul este indreptat mai mult spre o submultime a liniilor unei tabele cu atat mai mare va fi probabilitatea ca ea sa poata fi partitionata orizontal.

Cu cat accesul este indreptat mai mult spre o submultime a coloanelor unei tabele cu atat mai mare va fi probabilitatea ca ea sa poata fi partitionata vertical.

Cu cat doua tabele sunt accesate mai frecvent impreuna cu atat va fi mai mare probabilitatea ca ele sa poata fi reunite intr-o singura relatie de baza.

5. Vederi utilizator.

Intr-un mediu cu trei scheme, vederile utilizator (i.e. schemele externe) sunt construite prin operatii relationale asupra tabelelor schemei conceptuale: selectarea de linii care satisfac anumite criterii de calificare, proiectia anumitor coloane, reuniunea tabelelor dupa valori de atribute care se potrivesc. Maparea intre tabelele schemei conceptuale si relatiile de baza ale schemei interne este folosita apoi pentru a localiza datele pentru o vedere utilizator particulara.

Intr-un mediu cu doua scheme, vederile utilizator sunt mapate direct pe relatiile de baza, neexistand schema conceptuala. Fiecare vedere utilizator poate lua date din mai multe relatii si fiecare relatie de baza suporta mai multe vederi utilizator. Definitia vederilor permite ca accesul utilizatorilor sa fie restrictionat la submultimi ale bazei de date si combinatii diferite de date pot fi folosite pentru a suporta diferite aplicatii.





Politica de confidentialitate


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