Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


BAZE DE DATE RELATIONALE - Modelul relational al datelor

baze de date



+ Font mai mare | - Font mai mic



BAZE DE DATE RELATIONALE

Ideea bazelor de date relationale a fost lansata pentru prima data de catre D. F. Childs care a subliniat faptul ca orice structura de date poate fi reprezentata printr-una sau mai multe tabele de date, in cadrul carora este necesar sa existe si informatii de legatura, pentru a se asigura legaturile intre tabele. Bazele modelului de date relational au fost puse de catre Codd E.F., in 1970 care are meritul de a fi articulat si dezvoltat ideile cu privire la utilizarea teoriei apartenentei la ansambluri sub forma unui model coerent de structurare a datelor - modelul relational.



1. Modelul relational al datelor

Componentele modelului relational sunt:

Structura relationala a datelor. Aceasta inseamna ca, in bazele de date relationale, datele sunt organizate sub forma unor tablouri bidimensionale (tabele) de date, numite relatii. Asocierile dintre relatii se reprezinta explicit prin atribute de legatura. Aceste atribute figureaza intr-una din relatiile implicate in asociere (de regula, in cazul legaturilor de tip "unu la multi") sau sunt plasate intr-o relatie distincta, construita special pentru exprimarea legaturilor intre relatii (in cazul legaturilor de tip "multi la multi"). O baza de date relationala (BDR) reprezinta un ansamblu de relatii, prin care se reprezinta atat datele cat si legaturile dintre date.

Operatorii modelului relational. Acestia definesc operatiile care se pot executa asupra relatiilor, in scopul realizarii functiilor de prelucrare asupra bazei de date, respectiv consultarea, inserarea, modificarea si stergerea datelor.

Restrictiile de integritate ale modelului relational. Permit definirea starilor coerente ale bazei de date.

In comparatie cu modelele ierarhice si in retea, modelul relational prezinta o serie de avantaje, precum:

Asigurarea unui grad sporit de independenta a programelor de aplicatie fata de modul de reprezentare interna a datelor si metodele de acces la date. In precizarea prelucrarilor asupra datelor, programele de aplicatie nu fac apel la pointeri, fisiere inverse sau alte elemente ale schemei interne a bazei de date. In ceea ce priveste independenta logica, aceasta nu este complet rezolvata nici cu ajutorul modelului relational. O deficienta a modelului relational este aceea ca nu permite modelarea comportamentului dinamic al datelor, ceea ce face ca o mare parte din semantica aplicatiilor sa fie codificata in programe si nu in schema conceptuala a bazei de date.

Furnizarea unor metode si tehnici eficiente de control a coerentei redundantei datelor, cu o buna fundamentare teoretica. Modificarile pe care le sufera in timp datele ridica probleme serioase la intretinerea bazei de date, in ceea ce priveste controlul actualizarilor, reflectarea modificarilor din structura mediului economic real in structura datelor etc. Modelul relational, prin tehnica normalizarii relatiilor permite definirea unei structuri conceptuale optime a datelor, prin care se minimizeaza riscurile de eroare la actualizare, reducandu-se redundanta datelor.

Oferirea unor facilitati multiple de definire si manipulare a datelor. In primul rand, modelul relational ofera posibilitatea utilizarii unor limbaje procedurale, bazate pe algebra relationala, precum si a unor limbaje neprocedurale avand la baza calculul relational. Limbajele neprocedurale (declarative) contribuie la imbunatatirea semnificativa a comunicarii dintre sistem si utilizatorii neinformaticieni. In al doilea rand, manipularea datelor se realizeaza la nivel de ansamblu (relatie), fiind posibila utilizarea paralelismului in prelucrarea datelor.

Ameliorarea integritatii si confidentialitatii datelor. Modelul relational realizeaza acest lucru prin mecanisme flexibile si eficace de specificare si utilizare a restrictiilor de integritate si a relatiilor virtuale.

2. Structura relationala a datelor

Pentru a defini structura relationala a datelor trebuie sa definim notiunile de: domeniu, relatie, atribut si schema a unei relatii.

2.1. Domeniu

Domeniul reprezinta un ansamblu de valori, caracterizat printr-un nume. Un domeniu se poate defini explicit, prin enumerarea tuturor valorilor apartinand acestuia sau implicit, prin precizarea proprietatilor pe care le au valorile domeniului respectiv.

Spre exemplu sa considera urmatoarele domenii D1, D2, D3, definite astfel:

D1 :

D2 :

D3 :

Domeniul D1 este definit explicit in timp ce domeniile D2     si D3 sunt definite implicit.

Pentru un ansamblu de domenii D1, D2, , Dn produsul cartezian al acestora reprezinta ansamblul tuplurilor <v1, v2, , vn>, unde vi este o valoare apartinand domeniului Di. De exemplu, tuplurile <"Maria", "F", 45>, <"Vasile", "M", 24> apartin produsului cartezian: D3xD1xD2.

2.2. Relatie

Relatia reprezinta un subansamblu al produsului cartezian al mai multor domenii, subansamblu caracterizat printr-un nume si care contine doar tupluri cu semnificatie. Considerand, de exemplu ca pentru produsul cartezian definit mai sus se cunosc doar doua persoane, definim relatia R prin tuplurile care descriu aceste persoane:

R :

Intr-o relatie, tuplurile trebuie sa fie distincte ( nu se admit duplicari ale tuplurilor ).

O reprezentare comoda a relatiei este tabelul bidimensional (tabela de date), in care liniile reprezinta tuplurile, iar coloanele corespund domeniilor (vezi figura).

R:

D3

D1

D2

"Maria"

"F"

20

"Vasile"

"M"

22

In prezentarea conceptului de relatie se poate recurge la analogii cu alte concepte, extrem de bine cunoscute in domeniul prelucrarii automate a datelor, precum este conceptul de fisier. Relatia poate avea semnificatia unui fisier, tuplul poate fi considerat drept o inregistrare, iar valorile din cadrul tuplului pot fi interpretate drept valori ale campurilor inregistrarii.

In cadrul modelului relational nu intereseaza decat relatiile finite, chiar daca la construirea relatiilor se admit domenii infinite. Numarul tuplurilor dintr-o relatie reprezinta cardinalul relatiei, in timp ce numarul valorilor dintr-un tuplu defineste gradul relatiei.

2. Atribut

Atributul reprezinta coloana unei tabele de date, caracterizata printr-un nume. Numele coloanei (atributului) exprima de obicei semnificatia valorilor din cadrul coloanei respective.

Atributele se folosesc pentru a conferi flexibilitate datelor. Pentru a intelege aceasta problema vom considera urmatorul exemplu. Sa presupunem ca pentru o persoana dispunem de urmatoarele date: nume, sex, varsta si numele sotului/sotiei.

O posibilitate de organizare a acestor date este reprezentata de relatia din figura urmatoare.

PERS: D3

D1

D2

D3

"Maria"

"F"

30

"Vasile"

"Vasile"

"M"

32

"Maria"

Relatia PERS reprezinta un subansamblu al produsului cartezian:

D x D x D x D

Semnificatia valorilor din cadrul unui tuplu se stabileste in acest caz nu numai pe baza domeniului de care apartin valorile, ci si in functie de pozitia ocupata in cadrul tuplului.

Dependenta fata de ordine a datelor inseamna o reducere a flexibilitatii organizarii datelor. Intr-o organizare eficienta, flexibila, ordinea liniilor si a coloanelor din cadrul tabelei de date nu trebuie sa prezinte nici o importanta.

Pentru a diferentia coloanele care contin valori ale aceluiasi domeniu si a elimina astfel dependenta de pozitie in cadrul tabelei se asociaza fiecarei coloane un nume distinct, lucru care a dus la aparitia notiunii de atribut.

Prin folosirea atributelor, relatia PERS poate fi prezentata intr-unul din modurile mentionate mai jos.

PERS:

PERS:

Nume

(D3)

Sex

(D1)

Varsta (D2)

Sot(D3)

Nume(D3)

Sot(D3)

Sex

(D1)

Varsta (D2)

"Maria"

"F"

30

"Vasile"

"Maria"

"Vasile"

"F"

30

"Vasile"

"M"

32

"Maria"

"Vasile"

"Maria"

"M"

32

2.4. Schema unei relatii

Prin schema unei relatii se intelege numele relatiei, urmat de lista atributelor, pentru fiecare atribut precizandu-se domeniul asociat. Astfel, pentru o relatie R, cu atributele A , A , , An si domeniile D , D , , Dm, schema relatiei R poate fi reprezentata intr-una din formele prezentate in figura de mai jos.

R (A1:D1, A2:D2 An:Dm

sau

R:

A1:D1

A2:D2

An:Dm

Schema unei relatii se mai numeste si intensia relatiei, ca expresie a proprietatilor comune si invariante ale tuplurilor care compun relatia.

Spre deosebire de intensie, extensia unei relatii reprezinta ansamblul tuplurilor care compun la un moment dat relatia, ansamblu care este variabil in timp.

De obicei, extensia unei relatii este stocata fizic in spatiul asociat bazei de date, caz in care relatia poarta numele de relatie de baza. Exista insa si situatii in care extensia nu este memorata in baza de date. Este cazul asa-numitelor relatii virtuale, cunoscute si sub numele de relatii derivate sau viziuni. Relatia virtuala nu este definita explicit ca relatie de baza, prin ansamblul tuplurilor componente, ci implicit, pe baza altor relatii, prin intermediul unei expresii relationale. Stabilirea efectiva a tuplurilor care compun relatia virtuala se realizeaza prin evaluarea expresiei, ori de cate ori utilizatorul invoca aceasta relatie.

Operatorii modelului relational

Modelul de date relational ofera doua colectii de operatori pentru operatii cu relatii si anume:

- algebra relationala;

- calculul relational.

1. Algebra relationala si extensiile sale

Algebra relationala (AR) se poate defini ca o colectie de operatii pe relatii, fiecare operatie avand drept operanzi una sau mai multe relatii si producand ca rezultat o alta relatie.

Operatiile algebrei relationale se pot imparti in:

operatii de baza, precum: reuniunea, diferenta, produsul cartezian etc.

operatii derivate, ca: intersectia, diviziunea etc.

Algebra relationala standard, definita de Codd, este constituita din 6 operatii de baza: reuniunea, diferenta, produsul cartezian, proiectia, selectia si jonctiunea precum si din doua operatii derivate: intersectia si diviziunea.

Ulterior, la operatiile AR standard au fost adaugate si alte operatii, asa numitele operatii "aditionale" sau extensii ale AR standard, precum: complementarea unei relatii, splitarea (spargerea) unei relatii, inchiderea tranzitiva etc.

In general, operatiile AR pot fi grupate in:

operatii traditionale pe multimi (reuniunea, intersectia, diferenta, produsul cartezian);

operatii relationale speciale (selectia, proiectia, jonctiunea etc.).

In continuare sunt prezentate principalele operatii ale algebrei relationale, precum si modul lor de utilizare.

1. Reuniunea. Reprezinta o operatie a algebrei relationale definita pe doua relatii: R1 si R2, ambele cu aceeasi schema, operatie care consta din construirea unei noi relatii R3, cu o schema identica cu R1 si R2 si avand drept extensie tuplurile din R1 si R2, luate impreuna o singura data.

Reuniunea se noteaza uzual cu:

OR (R1,R2)

APPEND (R1,R2)

UNION (R1,R2)

In figura urmatoare este prezentat un exemplu de reuniune a doua relatii ORASE si MUNICIPII, formand astfel o a treia relatie, LOCALITATI.


2. Diferenta. Reprezinta o operatie a algebrei relatuionale construita pe doua relatii: R1 si R2, ambele cu o aceeasi schema, operatie care consta din construirea unei noi relatii R3, cu schema identica cu a operanzilor si cu extensia formata din acele tupluri ale relatiei R1 care nu se regasesc si in relatia R2.

Notatiile uzuale pentru operatia de diferenta a doua relatii sunt:

R1-R2

REMOVE (R1,R2)

MINUS (R1,R2)

Un exemplu de diferenta a doua relatii este dat in continuare.


Produs cartezian. Reprezinta o operatie a algebrei relationale definita pe doua relatii: R1 si R2, operatie care consta din construirea unei noi relatii R3, a carei schema se obtine prin concatenarea schemelor relatiilor R1 si R2 si a carei extensie cuprinde toate combinatiile tuplurilor din R1 cu cele din R

Notatiile uzuale pentru desemnarea operatiei sunt:

R1 x R2

PRODUCT (R1,R2)

TIMES (R1,R2)

In continuare este prezentat un exemplu de produs cartezian a doua relatii.


4. Proiectia. Reprezinta o operatie din algebra relationala definita asupra unei relatii R, operatie care consta din construirea unei noi relatii P, in care se regasesc numai acele atribute din R specificate explicit in cadrul operatiei. Suprimarea unor atribute din R inseamna efectuarea unor taieturi verticale asupra lui R, care pot avea ca efect aparitia unor tupluri duplicate ce se cer a fi eliminate.

Prin proiectie se trece de la o relatie de grad n la o relatie de grad p, mai mic decat cel initial, adica de la un spatiu cu n dimensiuni la un spatiu cu mai putine dimensiuni, ceea ce explica si numele de proiectie atribuit operatiei.

Notatiile uzuale pentru operatia de proiectie:

R [ Ai, Aj, , Am ]

PROJECT(R, Aj, Aj Am)


In figura de mai sus este prezentata proiectia relatiei ORASE pe atributul JUDET.

5. Selectia reprezinta o operatie din algebra relationala definita asupra unei relatii R, operatie care consta din construirea unei relatii S, a carei schema este identica cu cea a relatiei R si a carei extensie este constituita din acele tupluri din R care satisfac o conditie mentionata explicit in cadrul operatiei. Intrucat cel mai adesea, nu toate tuplurile din R satisfac aceasta conditie, selectia inseamna efectuarea unor taieturi orizontale asupra relatiei R, adica eliminarea de tupluri.

Conditia precizata in cadrul operatiei de selectie este in general de forma:

atribut operator de comparatie valoare

unde: <operator de comparatie> poate fi: <, <=, >=, > sau #.

Notatiile folosite pentru desemnarea operatiei de selectie sunt urmatoarele:

R [conditie]

RESTRICT(R, conditie).

6. Jonctiunea (Joinul) reprezinta o operatie din algebra relationala definita pe doua relatii: R1 si R2, operatie care consta din construirea unei noi relatii R3, prin concatenarea unor tupluri din R1 cu tupluri din R2. Se concateneaza acele tupluri din R1 si R2 care satisfac o anumita conditie, specificata explicit in cadrul operatiei. Extensia relatiei R3 va contine deci combinatiile acelor tupluri care satisfac conditia de concatenare.

Notatiile uzuale pentru desemnarea operatiei de jonctiune sunt:

R R

conditie

JOIN (R , R , conditie)

7. Intersectia reprezinta o operatie din AR definita pe doua relatii: R si R , ambele cu aceeasi schema, operatie care consta din construirea unei noi relatii R , cu schema identica cu a relatiilor R si R si cu extensia formata din tuplurile comune lui R si R

Notatiile uzuale pentru operatia de intersectie sunt:

INTERSECT (R1, R2)

AND (R1, R2).

8. Diviziunea reprezinta o operatie din AR definita asupra unei relatii R din care se obtine, cu ajutorul altei relatii P, relatia Q a carei extensie este formata din atributele din R care raman dupa eliminarea atributelor relatiei P.

Notatiile folosite pentru operatia de diviziune sunt:

DIVISION(R,r).

4. Restrictiile de integritate ale modelului relational

Restrictiile de integritate, denumite si reguli de integritate, definesc cerintele pe care trebuie sa le satisfaca datele din cadrul bazei de date pentru a putea fi considerate corecte, coerente in raport cu lumea reala pe care o reflecta.

Restrictiile de integritate reprezinta principalul mod de integrare a semanticii datelor in cadrul modelului relational al datelor, mecanismele de definire si verificare a acestor restrictii reprezentand principalele instrumente pentru controlul semantic al datelor. Avantajele incorporarii semanticii datelor in cadrul bazelor de date constau din posibilitatea intretinerii mai usoare a aplicatiilor si posibilitatea implementarii unor mecanisme fizice mai eficiente.

In teoria sistemelor relationale, restrictiile de integritate sunt studiate in principal sub aspectul puterii lor de modelare si al posibilitatilor de verificare eficace a respectarii lor. Un exemplu semnificativ il reprezinta dependentele intre date, si in primul rand dependentele functionale. Dependentele intre date, ca restrictii de integritate constituie un suport teoretic solid pentru problemele de modelare informatica. In acest sens, dependentele functionale au permis definirea conceptului de "structura relationala optima", stand la baza teoriei optimizarii structurii relationale a datelor, respectiv teoria normalizarii relatiilor.

Restrictiile de integritate ale modelului relational sunt urmatoarele:

1. Restrictii de integritate minimale, obligatoriu de definit si de respectat atunci cand se lucreaza cu modelul relational. Din aceasta categorie fac parte:

restrictia de unicitate a cheii;

restrictia referentiala;

restrictia entitatii.

2. Alte restrictii de integritate, din care fac parte:

dependentele intre date;

restrictiile de comportament.

Restrictiile de integritate minimale sunt definite in raport cu notiunea de cheie a unei relatii. Cheia unei relatii, R, reprezinta ansamblul minimal de atribute prin care se poate identifica in mod unic orice tuplu din R. Orice relatie poseda cel putin o cheie. La limita, cheia este constituita fie dintr-un singur atribut, fie din totalitatea atributelor din schema relatiei respective. Cand cheia este constituita dintr-un singur atribut poarta numele de cheie simpla, iar atunci cand este formata din mai multe atribute este denumita cheie compusa.

Intr-o relatie pot exista mai multe combinatii de atribute cu proprietatea de identificare unica a tuplurilor. Se spune in acest caz ca relatia poseda mai multi candidati cheie (sau mai multe chei candidate). In aceasta situatie, administratorul bazei de date va alege dintre cheile candidate una care sa serveasca in mod efectiv la identificarea tuplurilor si care va primi numele de cheie primara. Restul cheilor candidate vor purta numele de chei alternate.

Cheia unei relatii trebuie sa fie minimala, adica nici o parte a sa nu trebuie sa fie la randul ei cheie. Un grup de atribute din cadrul unei relatii care contine o cheie a relatiei poarta numele de supercheie.

Modelarea asocierilor dintre entitati impune recurgerea la conceptul de cheie externa. O cheie externa reprezinta un atribut/grup de atribute dintr-o relatie R1 ale carui/caror valori sunt definite pe acelasi/aceleasi domeniu/domenii ca si cheia primara a unei relatii, R2 si care are rolul de a modela asocierea intre entitatile reprezentate prin relatiile R1 si R2. In acest context, R1 este denumita relatie care refera, in timp ce R2 poarta numele de relatie referita.

Restrictia de unicitate a cheii reprezinta restrictia de integritate care impune ca intr-o relatie, R care are cheia K, oricare ar fi tuplurile t si t sa fie satisfacuta inegalitatea: t1 (K) # t2 (K). Aceasta inegalitate semnifica faptul ca intr-o relatie nu pot exista doua tupluri cu aceeasi valoare pentru atributele cheie.

Restrictia referentiala integritatea referirii) reprezinta restrictia de integritate care impune ca intr-o relatie R1 care refera o relatie R2, valorile cheii externe sa figureze printre valorile cheii primare din relatia R2 sau sa fie valori nedefinite ("null"). R1 si R2 nu trebuie sa fie neaparat distincte. Semnificatia restrictiei de integritate a referirii este urmatoarea : o asociere nu poate exista decat intre entitati deja definite. Atunci cand, intr-o anumita situatie, asocierea nu este aplicabila, unul din parteneri va fi desemnat prin valoarea "null", cu semnificatia de "partener inexistent".

Restrictia entitatii integritatea entitatii) reprezinta restrictia de integritate care impune ca intr-o relatie atributele cheii primare sa fie nenule. Unicitatea cheii impune ca la incarcarea unui tuplu, valoarea cheii sa fie cunoscuta, pentru a se putea verifica faptul ca aceasta valoare nu exista deja incarcata (tuplul nu figureaza deja in baza de date). Cu valori <null>, cheia isi pierde rolul de identificator de tuplu. Restrictia de integritate a entitatii nu se aplica cheilor externe dintr-o relatie, daca acestea nu apartin cheii primare.

Restrictiile referitoare la dependenta datelor semnifica modul in care datele depind unele de altele. Aceasta dependenta intre date poate fi de mai multe tipuri si anume:

dependenta functionala; reprezinta dependenta intre date prin care se poate identifica un atribut/grup de atribute prin intermediul altui atribut/grup de atribute. Fiind data o relatie R, un atribut Y din R este dependent functional de un alt atribut X din R, daca si numai daca fiecare valoare a lui X are asociata o valoare precisa a lui Y.

dependenta multivaloare; reprezinta acel tip de dependenta intre date in care un atribut/grup de atribute poate prezenta mai multe valori pentru o singura valoare a unui alt atribut/grup de atribute. Fie o relatie R, in care apar atributele/grupurile de atribute:X, Y si Z. In cadrul relatiei R exista o dependenta multivaloare daca si numai daca multimea valorilor lui Y corespunzatoare unei perechi: (valoare X, valoare Z) depinde numai de valoarea lui X, nu si de valoarea lui Z;

dependenta joctiune; aceasta restrictie exprima o dependenta intre date mai generala decat dependenta functionala sau dependenta multivaloare. Considerand o relatie R, cu schema R(X:Dx,Y:Dy,Z:Dz) pentru care nu se manifesta dependente functionale sau dependente multivaloare, adica relatia R se poate asimila unei chei compuse. Asupra acestei relatii se formuleaza urmatoarea restrictie: daca in relatia R figureaza tuplurile, si atunci in R trebuie sa figureze si tuplul .

Restrictiile de comportament se pot defini de catre utilizator in functie de realitatea descrisa in baza de date si pot fii:

restrictii de domeniu; care impun ca valorile unui atribut dintr-o relatie sa se incadreze in anumite limite;

restrictii temporale etc.

5. Proiectarea bazelor de date relationale

Proiectarea bazelor de date relationale se realizeaza conform cu cele prezentate in capitolul anterior. Diferente apar la activitatile legate de proiectarea schemelor conceptuale, interne si externe, de incarcarea, exploatarea si intretinerea bazei de date.

5.1. Proiectarea schemei conceptuale

La proiectarea bazelor de date relationale se foloseste frecvent termenul de "schema conceptuala optima", prin care se intelege acea schema conceptuala care inlatura posibilitatile aparitiei de anomali in lucrul cu baza de date, asigurand totodata facilitati si performante sporite la incarcarea, exploatarea si intretinerea bazei de date.

Anomaliile care apar la lucrul cu baze de date se manifesta indeosebi la intretinerea bazei de date, fiind cunoscute si sub numele de anomalii de actualizare a datelor. Ele se manifesta nu numai in cazul bazelor de date relationale, ci si la celelalte tipuri de baze de date. In cadrul teoriei relationale a bazelor de date, anomaliile de actualizare sunt puse in legatura cu dependentele care se manifesta intre date. Abordarea anomaliilor de actualizare a permis, pe de o parte caracterizarea riguroasa a relatiilor dupa gradul de "perfectiune" pe care il prezinta (asa numitele "forme normale" ale relatiilor) si pe de alta parte a facut posibila definirea unor tehnici formale pentru inlaturarea anomaliilor de actualizare.

Formele normale ale relatiilor

Anomaliile care apar in lucrul cu baze de date relationale se produc datorita dependentelor "nedorite" care se manifesta intre datele din cadrul relatiilor bazei de date. Aceste dependente determina cresterea redundantei datelor si reducerea flexibilitatii structurii bazei de date, efect manifestat prin:

limitarea posibilitatilor de inserare a datelor; apare cand anumite date despre o entitate nu pot fi introduse in baza de date datorita lipsei altor date, relative la aceeasi entitate, si fara de care, datele noi nu pot fi introduse datorita dependentelor dintre aceste date;

pierderi de date la stergere; apar atunci cand, in urma unei stergeri din baza de date sunt sterse si altele, care nu mai pot fi obtinute (reconstituite) din baza de date;

aparitia unor inconsistente la modificarea datelor; adica mentinerea, pentru unele atribute, a unor valori neactualizate alaturi de valorile actualizate.

Formele normale ale relatiilor dintr-o baza de date relationala sunt definite in raport de anomaliile care pot apare in lucrul cu aceste relatii, deci in functie de dependentele "nedorite" care se manifesta in cadrul acestor relatii.

La proiectarea bazelor de date relationale se pot defini cinci forme normale, formand cinci nivele de normalizare a relatiilor.

O relatie R este in forma normala unu, FN1, daca domeniile pe care sunt definite atributele relatiei sunt constituite numai din valori atomice (elementare). In plus, un tuplu nu trebuie sa contina atribute sau grupuri de atribute repetitive.

O relatie R este in forma normala doi, FN2, daca este in FN1 si oricare dintre atributele noncheie este dependent functional complet de cheia primara a relatiei.

O relatie R este in forma normala trei, FN3, daca este in FN2 si atributele noncheie nu sunt dependente tranzitiv de cheia primara a relatiei.

Relatia R este in forma normala patru, FN4, daca este in FN3 si in cadrul ei nu se manifesta mai mult de o dependenta multivaloare.

Spunem ca relatia R este in forma normala cinci, FN5, daca fiecare dependenta jonctiune este implicata printr-un candidat cheie al lui R.

Etapele procesului de proiectare a schemei conceptuale

Proiectare schemei conceptuale a unei baze de date relationale presupune parcurgerea urmatoarelor etape:

Determinarea formei normale in care trebuie sa se afle relatiile din baza de date (a nivelului de "perfectiune" impus schemei conceptuale). Relatiile aflate in forme normale superioare determina aparitia unui numar redus de anomali in lucrul cu baza de date, comparativ cu relatiile nenormalizate sau aflate in primele forme normale, dar conduc todata la cresterea timpului de acces la date. Aceasta deoarece relatiile aflate in forme normale superioare contin, de regula, un numar mai mic de atribute, lucru care impune cresterea numarului de relatii din baza de date, deci interogarea simultana a mai multor relatii pentru a gasi anumite informatii.

In determinarea formei normale la care trebuiesc aduse relatiile din bazele de date relationale se vor avea in vedere urmatoarele:

ponderea operatiilor de interogare si a celor de actualizare in lucrul cu bazele de date relationale;

exigentele de performata si flexibilitate impuse de utilizatorii finali la interogarea si, respectiv la actualizarea bazelor de date relationale.

Stabilirea relatiilor care sa faca parte din baza de date, in forma normala stabilita anterior. Aceasta presupune definirea relatiilor si a restrictiilor de integritate asociate, lucru realizat pe baza modelelor conceptuale ale sistemului, modele obtinute in etapa de analiza a sistemului si a cerintelor informationale asociate. In cadrul acestei etape se pot aplica mai multe tehnici de proiectare (tehnica normalizarii, tehnica diagramelor de dependenta riguroasa etc.).

Testarea schemei conceptuale obtinute si revizuirea acesteia, daca este cazul;

Descrierea schemei conceptuale in limbajul de descriere a datelor utilizat de SGBD-ul relational folosit si incarcarea acestei descrieri in baza de date relationala.

5.2. Proiectarea schemei externe

Schema externa a unei baze de date relationale reprezinta ansamblul relatiilor (tabelelor de date) la care are acces un utilizator (un program de aplicatie). Desi mai multi utilizatori pot lucra cu o aceeasi schema externa, in general, se considera pentru o baza de date relationala atatea scheme externe cati utilizatori exista la un moment dat, scheme care trebuiesc proiectate si apoi facute operationale.

Schema externa reprezinta modul de organizare, structurare, a datelor de care are nevoie un anumit utilizator pentru a-si satisface toate cerintele informationale. Deoarece, de cele mai multe ori, un utilizator nu are nevoie de ansamblul datelor memorate in cadrul bazei de date ci numai de o parte a acestor date, se considera schema externa drept o partitie logica a schemei conceptuale a bazei de date. Din aceasta cauza, schema externa a unei baze de date mai este cunoscuta si sub numele de subschema a bazei de date.

Modul de structurare a datelor in cadrul schemei externe poate fi cel din cadrul schemei conceptuale sau poate sa fie diferit. Acest lucru se explica prin faptul ca structurarea datelor in cadrul schemei conceptuale are ca obiectiv optimizarea structurii de ansamblu a bazei de date relationale, in raport de ansamblul cerintelor informationale ale tuturor utilizatorilor, in timp ce structurarea datelor in cadrul schemei externe urmareste facilitarea satisfacerii cerintelor informationale pentru un anumit utilizator. Deoarece aceste doua criterii nu sunt echivalente se obtin rezultate, deci structuri ale datelor diferite.

La proiectarea unei scheme externe a unei baze de date relationale se parcurg urmatoarele etape:

Determinarea zonei (ariei) de interes pentru un anumit utilizator din cadrul sistemului informatic reflectat informational cu ajutorul bazei de date;

Analiza structurala, dinamica si functionala a acestei zone din domeniul activitatii economice reprezentate prin sistemul informatic pentru care se realizeaza baza de date;

Proiectarea schemei externe, pe baza analizei anterioare, in modul de lucru descris la proiectarea schemei conceptuale a bazei de date relationale, tinand cont de faptul ca aceeasi schema poate apare drept o schema conceptuala, daca sistemul de referinta este intregul domeniu economic analizat, sau drept o schema externa, daca sistemul de referinta este o parte din domeniul economic analizat;

Testarea schemei externe si modificarea acesteia, daca este cazul;

Aducerea schemei externe in forma operationala. Acest lucru se realizeaza in mod diferit fata de schema conceptuala a bazelor de date, pentru care operationalizarea presupune descrierea sa cu ajutorul limbajului de descriere a datelor utilizat de SGBDR, compilarea acestei descrieri si incarcarea acestei descrieri compilate in cadrul bazei de date. Pentru ca o schema externa sa devina operationala, sa poata fi aplicata, utilizatorul caruia ii este destinata trebuie sa primeasca drepturi de acces asupra tabelelor de date care compun schema externa.

6. Sisteme de gestiune a bazelor de date relationale

Un sistem de gestiune a bazelor de date relationale poate fi definit ca reprezentand un SGBD care utilizeaza drept conceptie de organizare a datelor modelul relational.

Diversitatea modelelor relationale "operationale" au determinat, in mod natural existenta unei mari diversitati de SGBDR, care se apropie mai mult sau mai putin de modelul relational "teoretic". Cerintele teoretice pe care trebuie sa le satisfaca un SGBD relational au fost specificate de Codd, printr-o serie de 13 reguli, numite regulile lui Codd.

Deoarece aceste reguli au fost mult disputate si deoarece nici unul dintre SGBD-urile relationale (SGBDR) disponibile astazi nu respecta intrutotul cerintele exprimate de Codd, in cadrul celor 13 reguli, caracterizarea unui SGBD se realizeaza folosind o serie de cerinte minimale pe care trebuie sa le satisfaca un sistem de gestiune a bazelor de date pentru a putea fi considerat relational.

Un SGBD este minim relational daca satisface urmatoarele conditii:

Toate datele din cadrul bazei de date sunt reprezentate prin valori in tabele.

Nu exista pointeri observabili de catre utilizator intre tabele, in sensul ca operatiile cu relatii nu fac apel la pointeri, indecsi, fisiere inverse etc.

Sistemul suporta operatorii relationali de proiectie, selectie si join natural, fara limitari impuse din considerente interne (cum ar fi de exemplu, necesitatea indexarii atributelor). Unitatea de informatie cu care se lucreaza in cadrul acestor operatii trebuie sa fie relatia.

Un SGBD este complet relational daca este minimal relational si satisface in plus urmatoarele conditii:

Sistemul suporta toate operatiile de baza ale algebrei relationale, fara limitari impuse din considerente interne.

Sistemul suporta doua dintre restrictiile de integritate de baza ale modelului relational si anume unicitatea cheii unei relatii si restrictia referentiala.

Un SGBD este pseudorelational daca satisface numai conditiile 1 si

Dintre instrumentele si mecanismele de lucru de care dispune un SGBD relational se pot mentiona:

un limbaj relational pentru descrierea datelor la nivel fizic, logic si conceptual;

un limbaj relational pentru manipularea datelor (interogare si actualizare);

mecanisme pentru controlul integritatii semantice a datelor;

mecanisme pentru asigurarea coerentei datelor in conditiile accesului concurent la date si aparitiei unor avarii;

mecanisme pentru optimizarea cererilor de date;

utilitare pentru prezentarea rezultatelor, de tipul generatoarelor de rapoarte, utilitare pentru generarea de aplicatii, pentru generarea de statistici despre starea si activitatea bazei de date.

Dintre SGBD-urile relationale mai cunoscute putem mentiona: INGRES, ORACLE, DB2, FOCUS, SQLDS s.a. care lucreaza sub sistemele de operare VMS si UNIX. Pentru calculatoarele compatibile IBM-PC avem dBase IV, FoxPro, Paradox s.a.

7. Intrebari pentru verificarea cunostintelor

Care este structura modelului relational al datelor ?

Enumerati cateva avantaje ale modelului relational.

Care sunt notiunile care definesc structura relationala a datelor ?

Definiti conceptul de schema a unei relatii ?

Care sunt operatiile algebrei relationale standard ?

Definiti operatia algebrei relationale de proiectie.

Definiti operatia algebrei relationale de selectie.

Definiti operatia algebrei relationale de diviziune.

Definiti operatia algebrei relationale de join.

Enumerati restrictiile de integritate ale modelului relational.

Explicati restrictia de unicitate a cheii.

Explicati restrictia de unicitate referentiala.

Enumerati si explicati dependentele intre date.

Explicati notiunea de  schema conceptuala optima .

Care sunt etapele procesului de proiectare a schemei conceptuale a unei baze de date relationale ?

Care sunt cerintele impuse unui SGBD pentru a putea fi considerat minim relational ?



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 4270
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved