Sunteți pe pagina 1din 36

CURS 4

RESTRICŢII DE INTEGRITATE
Definitie
Cerinţele pe care datele trebuie să le
respecte pentru a fi corecte şi
coerente în raport cu realitatea pe
care o reprezintă se numesc restricţii
de integritate.
1. Integritatea entităţii
• Fiecare instanţă a entităţii trebuie să
aibă un identificator unic, adică o cheie
primară a cărei valoare nu poate fi
valoarea Null.
• Identificarea unei entităţi se realizează
cu atributele proprii, împreună eventual
cu rolurile jucate de alte tipuri de
entităţi.
2. Restrictii de Domenii
• Se refera la valorile pe care le pot lua atributele entităţilor,
eventualele corelaţii care trebuie să existe între acestea.
• Se pot referi la realizările unor atribute care aparţin
aceleeaşi entităţi sau asocieri şi se numesc restricţii
intraentitate, sau a unor atribute aparţinând la entităţi sau
asocieri diferite, caz în care se numesc restricţii
interentitate.
• Prin precizarea domeniului se stabilesc caracteristicile
atributelor:
-tipul datei, lungimea;
-formatul;
-semnificaţia;
-dacă se acceptă valoarea nul sau nu;
-intervalul de valori admise.
OBS: Datele sunt validate, asigurându-se astfel încrederea în
operaţiunile executate şi uşurinţă în manipularea datelor.
3. Rolurile jucate de entităţi în
cadrul asocierilor

• Un alt tip de restricţii de integritate


stabilesc condiţii ce trebuie îndeplinite
de rolurile jucate de un tip de entitate
în diverse asocieri, cum ar fi:
- incluziunea,
- egalitatea
- excluziunea de roluri.
Incluziunea
• Dacă o entitate E care joacă un rol r1 într-o
asociere a1 va juca neapărat şi rolul r2 într-o
asociere a2, atunci spunem că rolul r1
include sau implică prin incluziune rolul r2.
Notaţia grafică:

R1 R2
I
Exemplu:
Un client al băncii depune o cerere pentru a primi un
credit. Aceasta este analizată şi, dacă este aprobată,
clientul primeşte creditul.
depune depusa CERERE-
Depunere
0,n 1,1 CREDIT
0,1 analizata
I
I
CLIENT Aprobare

1,1 aprobat

0,n 1,1
Primire CREDIT
primeste acordat

Spunem că între rolurile primeşte şi depune ale aceluiaşi client


există o restricţie de incluziune. Faptul că un client al băncii
depune o cerere pentru un credit nu implică şi acordarea
creditului, dar acordarea acestuia implică întotdeauna
existenţa cererii corespunzătoare.
Egalitatea de roluri
• Egalitatea: Egalitatea de roluri presupune că
restricţia de incluziune între rolurile r1 si r2 ale
unei entităţi este reciprocă. Aceasta înseamnă
că rolul r1 jucat de entitatea E în asocierea a1
determină rolul r2 jucat de aceeaşi entitate în
asocierea a2 şi invers.

R1 R2
=
Egalitatea de roluri - Exemplu
beneficiar acordat
Primire CREDIT
0,n
0,n

=
CLIENT

0,n
0,n
Garantare
constituie-garantie GARANTIE
garanteaza

Interpretare: orice client care este beneficiarul unui credit


trebuie să constituie o garanţie pentru acesta şi, invers,
constituirea unei garanţii de către un client se face atunci când
acesta primeşte un credit (considerăm cazul unui credit care
impune constituirea unei garanţii).
Excluziunea
• Excluziunea: Rolul r1 jucat de o
entitate E în asocierea a1 exclude
existenţa rolului r2 jucat de aceeaşi
entitate în asocierea a2. Notaţie grafică:

R1 # R2
Exemplu:
Dacă ne gândim la un apartament proprietate particulară,
putem spune că acesta nu poate să aparţină simultan unei
persoane fizice şi unei persoane juridice.

apartine-pers proprietar-p
Proprietate PERSOANA
persoană 0,n

0,1
APARTAMENT #

0,1
0,n
Proprietate SOCIETATE
Societate proprietar-s
apartine-soc
4. Reguli de stabilire a asocierilor
dintre entităţi
• Acest set de restricţii numite restricţii de
integritate pe asocieri se referă la tipul
de asociere, la rolurile determinate de
asociere şi anume:
Incluziune;
Egalitate
Excluziune de asocieri.
Ele vizează deci asocierea şi toate
entităţile participante la ea.
Incluziunea de asocieri
• Dacă o asociere A1 dintre 2 entităţi va
determina asocierea A2 în cadrul
modelului EA, atunci asocierea A1 include
A2.

Interpretare:
Clientul care a primit un credit începe să
plătească ratele, care în timp vor stinge
creditul.
Egalitatea de asocieri
• Egalitatea de asocieri arată că asocierile
de tip A1 determină asocierile de tip A2 şi
invers.

Interpretare:
In cazul unui cititor de la o bibliotecă, fiecărui
împrumut făcut trebuie să-i corespundă o
restituire şi invers, fiecărei restituiri trebuie
să-i corespundă un împrumut .
Excluziunea de asocieri
• Excluziunea de asocieri: Dacă o asociere
A1 dintre 2 entităţi exclude asocierea A2 în
cadrul modelului EA, atunci asocierea A1
exclude A2.

Interpretare:
Intr-o tranzacţie imobiliară, clientul firmei
imobiliare vinde sau cumpără un bun
imobiliar (casă, vilă, apartament sau teren).
5. Dependenţe funcţionale
• Se numeşte dependenţă funcţională o
relaţie între două atribute, dintre care
unul este determinant şi celălalt este
determinat, ambele atribute aparţinând
aceleeaşi entităţi.
Dependenţă funcţională
• Inseamnă că fiecărei realizări a atributului
determinant îi va corespunde întotdeauna
aceeaşi realizare (valoare) a atributului
determinat.
Exemplu:
- unei anumite mărci îi va corespunde acelaşi nume;
- unui anumit cod numeric personal acelaşi nume de
persoană;
- unui cod produs aceeaşi denumire produs.

Marcă Nume angajat


Cod numeric personal Nume persoană
Cod produs Denumire produs
Dependenţă funcţională
elementară
• O dependenţă funcţională X Y se numeşte
elementară dacă pentru orice X1 strict inclus în
X, dependenţa funcţională X1 Y nu este
adevărată.
Exemplu: acelaşi produs se poate vinde la preţuri
diferite la clienţi diferiţi (se acordă discount
pentru cantitatea cumpărată, pentru fidelitatea
clientului, etc) .
• Deci, Cod produs,Cod clientPreţ vânzare.
Dependenţă funcţională
multivaloare
• Între două atribute X şi Y există o
dependenţă funcţională multivaloare
(DFM), notată: XY
dacă o valoare a lui X determină mai multe
valori pentru Y.

Exemplu: un anumit zbor al unei companii aeriene se


efectuează în mai multe zile din saptămână (luni, vineri,
duminica).
Nr zbor  Zi săptămână

Dependenţă funcţională
completă, partiala , tranzitiva
• XY se numeşte dependenţă funcţională
completă dacă Y este dependent funcţional de
X şi nu este dependent de nici o componentă a
lui X.
• XY se numeşte dependenţă funcţională
parţială dacă Y este dependent funcţional atât
de X cât şi de părţi ale acestuia.
• Dacă însă YÇX atunci dependenţa funcţională
se numeşte trivială.
• XZ se numeşte dependenţă funcţională
tranzitivă dacă XY şi YZ şi Y nu determină
pe X.
Proprietăţi ale dependenţelor
funcţionale
• Reflexivitatea:
XX.
Exemplu: Marca  Marca
• Dezvoltarea:
• Dacă XY atunci este valabilă şi X,ZY.
• Exemplu: Marca  Nume angajat , Marca, Localitate Nume angajat
• Tranzitivitatea:
• Dacă XY şi YZ atunci XZ.
• Exemplu: Marca  Localitate, Localitate  Judeţ
• Marca  Judeţ
• Aditivitatea:
• Dacă XY şi XZ atunci XY,Z.
• Exemplu: Marca  Nume angajat, Marca  Adresă angajat
• Marca  Nume angajat, Adresă angajat
• Proiecţia:
• Dacă XY,Z atunci XY şi XZ.
• Exemplu: Marca  Nume angajat, Adresă angajat
• Marca  Nume angajat,
• Marca  Adresă angajat
• Pseudo-tranzitivitatea:
• Dacă XY şi W,YZ atunci X,WZ. `
Studiul dependenţelor funcţionale
• Matricea dependenţelor funcţionale = un tablou în
care pe coloane se trec atributele cu rol de
determinanţi ai dependenţelor funcţionale, iar pe linii
toate atributele identificate în procesul modelării
datelor.
La intersecţia unei linii cu o coloană, acolo unde există o
dependenţă funcţională între atributul cu rol de
determinant din coloană şi atributul înscris în linia
respectivă, se va înscrie valoarea 1. Existenţa mai multor
valori de 1 pe o linie pun în evidenţă dependenţe
funcţionale tranzitive datorate unor asocieri ierarhice
(numite restricţii de integritate funcţională) sau
necesitatea unei analize în vederea stabilirii corecte a
determinantului dependenţelor funcţionale descrise.
Exemplu de matrice simplificată pentru evidenţa
automată a activităţii de spitalizare a pacienţilor
Se pot identifica entităţile: medici, pacienţi, secţii, saloane,
medicamente. Reprezentând MDF se obţine :

Se impune crearea unor noi entităţi, astfel încât să fie eliminate aceste
anomalii. În acest caz se crează o entitate nouă, Internaţi, cu atributele:
Cod internat, cod medic, cod secţie, număr salon, data internării.
Alte forme de Modele Entitate
Asociere (MEA)

• Un model entitate asociere poate fi dezvoltat


ulterior, funcţie de condiţiile concrete ale
problemei date, prin:
 generalizare sau definire de supertipuri;
 specializare sau definire de subtipuri;
 introducerea timpului şi crearea unui model temporal.
• Astfel, prin generalizare se grupează, în cadrul
modelului EA, caracteristicile comune într-un
supertip de entitate, în timp ce elementele de
descriere specifice sunt grupate în subtipuri de
entităţi.
SPECIALIZARE sau
definire de subtipuri
Definirea unor subclase se poate face în principal,
astfel:
• pe baza valorilor unui anumit atribut ;
• pe baza unor criterii definite de utilizator.
Prin definirea de subclase se efectuează
specializarea entităţilor superclasei acestora
(Angajat).
Ele moştenesc toate atributele superclasei şi pot
avea atribute proprii specifice, inexistente la
nivelul superclasei.
Superclasa: Angajat;
Subclase: Muncitor, Economist
ANGAJAT ANGAJAT
Marca Marca
Nume Nume
Loc munca
Loc munca Data nasterii
nasterii
...
Data nasterii 0,1 0,1
……….
#
1,1 este-un este-un 1,1
MUNCITOR ECONOMIST
MUNCITOR ECONOMIST
Specialitate Specialitate
Meserie Meserie
Calificare Calificare

Se poate observa existenţa unor asocieri Subtip, în care


cardinalitatea subtipurilor este 1,1 iar a supertipului (superclasei)
este 0,1.
Generalizarea
• Este procesul invers, prin care două sau mai
multe tipuri de entităţi sunt generalizate, pe baza
proprietăţilor comune, într-un nou tip.
• În această relaţie, tipurile iniţiale devin subtipuri
ale tipului obţinut prin generalizare (Angajat).
• Dacă ne gândim la o universitate, tipurile de
entităţi Angajat şi Student pot fi generalizate prin
tipul PERSOANA, care va prelua astfel atributele
comune ale acestora: Nume, Prenume, Data
naşterii, Adresa, Telefon, Domiciliu, Cod
Numeric Personal, etc.
Observatie
Specializarea poate fi:
• totală, ceea ce înseamnă că orice entitate
a tipului face parte, obligatoriu, dintr-un
subtip;
• parţială, însemnând că pot exista entităţi
care să nu aparţină nici unui subtip.
Generalizarea, obţinându-se prin gruparea
tipurilor de entităţi deja existente, nu poate
fi decât totală.
Reprezentarea timpului în M EA
• o soluţie bună ar fi plasarea timpului sub formă
de atribute în cadrul entităţilor sau a asocierilor
corespunzătoare;
• dacă nu e posibil, se poate introduce o entitate
abstractă pentru reprezentarea timpului sau se
transformă asocierea dintre entităţile durabile
într-un nou tip de entitate care să reflecte
derularea relaţiilor dintre acestea în timp
(istoric).
• Entităţile reprezintă deci obiecte persistente
care, odată apărute, nu dispar niciodată.
Obiectele temporale materializează rolurile
active jucate de un obiect conceptual în timp.
Reprezentarea timpului în M EA
• De exemplu, o persoană este o entitate. De-a lungul
vieţii sale, persoana a fost elev, apoi student şi apoi
angajat. Aceste stări sunt reflectate prin entităţi
temporale destincte.
Reguli privind Modelarea Conceptuală
a Datelor
• Reguli de validare a modelului - sunt
reprezentate de cerinţele de informare ale
conducerii.
• Verificarea modelului poate impune rearanjarea
anumitor componente ale modelului, adăugarea de
relaţii suplimentare, definirea unor relaţii complexe
care în final înseamnă introducerea de noi entităţi.
• Validarea unui MCD presupune deci o activitate
care vizează pe de o parte elementele sale de
construcţie, pe de alta completitudinea sa.
Reguli pentru validarea MCD
• Unicitatea numelor
• Atribute derivabile (din calcule)
• Atribute repetitive sau decompozabile (adresa,
examene)
• Minimalitatea identificatorilor
• Valoarea NULL.
• Unicitatea asocierilor (pentru fiecare realizare a
asocierii, să nu existe decât o realizare a fiecărei
entităţi participante la asociere şi invers )
Reguli de normalizare a modelului
• Procesul prin care se
analizează entităţile şi
atributele lor, în scopul
eliminării anomaliilor,
a redundanţelor acestora
şi in care se înlătură
dependenţele funcţionale
tranzitive sau multivaloare
se numeşte normalizare.
Modelul relaţional de baze de date
Cuprinde trei componente principale:
• Structura datelor prin definirea unor
domenii (valori atomice) şi a relaţiilor n-are
(atribute, tupluri, chei primare, etc);
• Operatorii de prelucrare a datelor, prin
operaţii din algebra relaţională sau calculul
relaţional.
• Integritatea datelor prin impunerea unor
restricţii.
Modelul relaţional - Concepte
• Domeniul reprezintă un set de valori pe care le
poate lua un atribut.
• Relaţia (sau tabela) se defineşte ca o submulţime a
produsului cartezian de n domenii. Ea se prezintă
sub forma unei tabele bidimensionale, formată din
rânduri numite tupluri şi coloane numite domenii.
• Tuplul reprezintă o linie din cadrul tabelei, numită şi
înregistrare.
• Schema unei relaţii reprezintă lista atributelor care
aparţin relaţiei cu domeniile lor. Dacă relaţia numită
R are atributele A1, A2, ... Ak , atunci schema
relaţională se notează R(A1, A2, ... Ak).
• Cardinalitatea relaţiei defineşte numărul de tupluri
care aparţin unei relaţii (rânduri).
Modelul relaţional - Concepte
• Gradul (aritatea) relaţiei este dat de numărul de
coloane, deci atribute ale relaţiei.
• Cheia primară reprezintă un atribut sau grup de
atribute ale cărui valori permit identificarea unică
a unui tuplu.
• Cheie candidată - un atribut sau grup de atribute
ale cărui valori pot identifica un tuplu. Dintre
cheile candidate se alege cheia primară a tabelei.
• Cheie externă - un atribut sau grup de atribute
care joacă rol de cheie primară într-o altă tabelă.
O cheie externă trebuie să respecte cerinţele de
integritate referenţială.

S-ar putea să vă placă și