Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




Restrictii de integritate

sql


Restrictii de integritate

Restrictiile de integritate definesc conditii pe care trebuie sa le satisfaca datele din baza de date, pentru a fi considerate corecte, coerente in raport cu lumea reala la care se refera. Restrictiile de integritae 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. Exista doua tipuri de restrictii, si anume restrictii structurale care sunt inerente modelarii datelor si restrictii de functionare (comportament) care sunt specifice unei anumite baze de date. Restrictiile structurale sunt de patru tipuri: de cheie, de referinta, de entitate si de dependenta intre date, din care primele trei, constituie multimea minimala de restrictii de integritate pe 323y2421d care trebuie sa le respecte un SGBD relational. Aceste restrictii sunt definite in raport de notiunea de cheie a unei relatii.



Definitia 2.2.6 O cheie a unei relatii r, este o multime K R, astfel incat:

(i)         pentru orice doua tupluri t1, t2 ale lui r t1(K) t2(K);

(ii)    nu exista nici o submultime proprie a lui K cu proprietatea (i).

Altfel spus, cheia reprezinta o multime minimala de atribute ale caror valori identifica in mod unic un tuplu intr-o relatie.

Fiecare relatie are cel putin o cheie. Daca exista mai multe chei posibile, ele se numesc chei candidat. Una din cheile candidat va fi aleasa de administratorul bazei de date pentru a identifica efectiv tupluri si ea va primi numele de cheie primara. Cheia primara nu poate fi reactualizata. Restul cheilor vor purta numele de chei alternative sau alternate.

Atributele care reprezinta cheia primara pot fi subliniate sau urmate de semnul in schema relatiei respective. Un grup de atribute din cadrul unei relatii care contine o cheie a relatiei se numeste supercheie.

Exemplul 2.2.3 in relatia orar din Figura 2.2.1 multimile si sunt chei. Daca se alege drept cheie primara, atunci devine cheie alternativa. Acest fapt se reprezinta astfel : orar(NR, PD, PA, OD, OA) sau orar(NR , PD, PA, OD, OA). Multimea de atribute este o supercheie.

Consideram relatia local, ce contine o multime de orase cu anumite caracteristici:

local

Punct de

Cod

Judet

Decolare(PD)

Localitate(CL)

(JD)

Craiova

Dolj

Bucuresti

Ilfov

Timisoara

Timis

O cheie identifica tupluri si este diferita de un index care localizeaza tupluri. O cheie secundara este folosita ca index pentru a accesa tupluri. Fie schemele relationale orar(NR , PD, PA, OD, OA) si local(PD , CL, JD), unde NR si PD sunt chei primare respectiv secundare pentru orar, iar PD este cheie primara pentru relatia local. in acest caz vom spune ca PD este cheie externa pentru orar. in acest context, orar este denumita relatie care refera, in timp ce local poarta numele de relatie referita. O cheie primara poate contine o cheie externa. De asemenea, valorile atributului PD din relatia orar, care reprezinta o cheie externa pentru aceasta relatie, trebuie ori sa corespunda la o valoare a cheii primare din relatia local, ori sa aiba valoarea null. De multe ori un atribut este necunoscut sau neaplicabil. Pentru a reprezenta acest atribut a fost introdusa o valoare conventionala in relatie, si anume valoarea null.

Modelul relational respecta trei restrictii de integritate structurala:

- unicitatea cheii - cheia primara trebuie sa fie unica si minimala, adica pentru o relatie r cu cheia K, oricare ar fi tuplurile t1 si t2, sa avem t1(K)=t2(K);

- integritatea entitatii - atributele cheii primare trebuie sa fie diferite de valoarea null, deoarece unicitatea cheii impune ca la incarcarea unui tuplu, valoarea cheii trebuie sa fie cunoscuta pentru a putea verifica daca tuplul figureza deja in baza de date;

- integritatea referirii - intr-o relatie r1 care refera o relatie r2 valorile cheii externe sa figureze printre valorile cheii primare din relatia r2 sau sa fie null.

in categoria, alte tipuri de restrictii se pot mentiona restrictiile de comortament si dependentele functionale. Pentru o anumita baza de date, utilizatorii pot defini mai multe tipuri de restrictii de comportament: de domeniu, temporale, etc. De exemplu, in relatia local o restrictie de domeniu se poate referi la atributul CL, si care impune ca valorile acestui atribut sa se incadreze intre anumite limite.

Dependentele intre date, ca restrictii de integritate, constituie un suport teoretic solid pentru problema de modelare informatica. in acest sens, dependentele functionale au permis definirea conceptului de "structura relationala optima", si stau la baza teoriei optimizarii structurii relationale a datelor, respectiv teoria normalizarii relatiilor.

Definitia 2.2.7 Fie raA1, . ,As o relatie si X,Y . Atributul (compus) Y este dependent functional de atribtul (compus) X daca si numai daca fiecare valoare a lui X din r are asociata o valoare unica a lui Y (aceasta asociere este valabila atat timp cat exista relatia r)

Dependenta functionala se noteaza: X Y unde X se numeste determinantul dependentei, iar Y determinatul.

O valoare oarecare a lui X poate sa apara în mai multe linii (tupluri) ale lui r si atunci fiecare din aceste linii contine aceeasi valoare pentru atributul Y, deci , unde si sunt doua tupluri oarecare.

Dependenta functionala se poate utiliza ca o proprietate pe care baza de date trebuie sa o îndeplineasca pe perioada existentei acesteia (este permisa adaugarea de elemente în relatie numai daca dependenta functionala este verificata) sau se poate cere ca anumite dependente functionale sa nu apara.

Relativ la cele prezentate mai sus, se pot face urmatoarele observatii:

Daca C este o cheie pentru relatia raA1, ,An s, atunci: C X

Daca X Y, atunci Z Y "Z cu X Z;

Daca X Y si Y Z atunci X Z (tranzitivitatea).

Pentru o relatie r (A) si o multime F de dependente functionale apar urmatoarele doua probleme:

A. Determinarea închiderii unei multimi F de dependente functionale, notata F+. Multimea F+ contine toate dependentele functionale obtinute logic din F. Pentru determinarea închiderii F+ se pot utiliza repetat, urmatoarele trei reguli (axiomele lui Armstrong a11s

1. reflexivitatea: daca X A si Y X, atunci X Y

2. marirea:    daca X Y si W A atunci XW YW ( unde XW=X W

3. tranzitivitatea: daca X Y si Y Z atunci X Z

O multime de axiome este completa daca si numai daca plecand cu o multime de dependentâe F, pot fi obtinute toate dependentele închiderii lui F (F+) utilizand axiomele multimii.

O multime de axiome este închisa daca si numai daca plecand cu o multime de dependente F, nu poate fi dedusa cu ajutorul axiomelor o dependenta care nu apartine închiderii lui F. Ullman J. a10s a demonstrat ca axiomele lui Armstrong reprezinta o multime închisa si completa de axiome. Consecinta acestui rezultat, este aceea ca F+ reprezinta multimea dependentelor deduse din F prin aplicarea axiomelor lui Armstrong.

Plecâand de la aceste axiome se poate arata ca si urmatoarele reguli sunt adevarate:

4. reuniunea: daca X Y si X Z atunci X YZ

5. descompunerea: daca X YZ atunci X Y si X Z

6. pseudotranzitivitatea: daca X Y si YW Z atunci XW Z

Exemplul 2.2.4 Fie A = o multime de atribute a unei relatii r si F= o multime de dependente functionale. F+ se obtine din F la care se mai adauga:

A E (prin tranzitivitate)

CD EF (prin regula 4)

AD F (A C, AD CD din regula 2, CD F si tranzitivitatea).

B. Fie X o multime de atribute ale unei relatii r si F o multime de dependente functionale. Se pune problema determinarii închiderii lui X (notata X+) sub F si care contine multimea atributelor dependente functional de atributele lui X. Pentru determinarea acestei închideri se poate folosi algoritmul INCHID (vezi 2.2.2.2).

Exemplul 2.2.5 Pentru X = si F data în Exemplul 2.2.4, obtinem:

A B B X

A C C X

CD E E X

CD F F X

deci X+=


Document Info


Accesari: 7792
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2024 )