Sunteți pe pagina 1din 42

Modelul relational:

1. Fundamentele teoretice ale modelului relaional

Un model de organizare bidimensional a datelor n


tabele
Implementeaz schema relaional (MRD)
Tabele
Relaii ntre tabele
Reguli de validare

Algebra relaional (Operatori relaionali)


Operatori de asambalare (reuniunea; intersecia;
diferena; produsul cartezian)
Operatori unari (Proiecia, Selecia)
Operatori de extensie (Compunerea, Diviziunea)
Un limbaj standard de gestiune
a BDR
1

Modele de date: modelul RELAIONAL


- Modelul relaional introdus de E. F. Codd n 1970 se
fundamenteaz pe noiunea matematic de relaie n-ar

R(A1, A2, , An)


O relaie n-ar este determinat de existenta a :
n atribute A1, A2, , An
si a unei multimi de i tupluri, notate:

ai1, ai2 , , ain , care satisfac relatiile:


ai1 A1, ai2 A2, , ain An
- O relaie (tabel) este un subansamblu al produsului
cartezian de n domenii conform urmtoarei formule:
R (D1 x D2 x D3 x x Dn)
2

MODELUL RELATIONAL

Tabel bidimensional: n coloane, i - linii


atribute

PRODUSE
COD DENUMIRE UM PRET
PRODUS PRODUS
T
100
P1
Buc 4.000
U
300
P2
Kg 6.000
P
200
P3
Mc 7.000
L
150
P4
Buc 1.500
U
700
P5
Kg
200
Domenii
3

n modelul relaional se utilizeaz urmtoarele concepte:

1. Atributul o variabil care ia valori ntr-un anumit


domeniu (cod produs, denumire produs.)
2. Domeniul valorile de pe o coloana
3. Tuplul valorile de pe o linie
4. Structura relaiei atributele grupate sub un nume
EXP.
PRODUSE = (CODPRODUS, DENUMIREPRODUS, UM,
PRET)
5. Cheia relatiei un atribut sau m.m. care identific n
mod unic un tuplu. Ex. CODPRODUS

6. Cheie candidat = este formata dintr-un atribut sau


un grup minimal de atribute care pot identifica un
4
tuplu. Ex. sunt 2 chei: CODPRODUS,
DENPRODUS.

7. Cheie primara = cheie candidat aleasa in procesul


proiectarii bazei de date, drept cheie a relatiei
respective. Ex. cheia primara aleasa este
CODPRODUS.
8. Cheie externa = cuprinde un atribut sau un ansamblu
de atribute care permit realizarea legaturilor intre o
relatie si cheia primara dintr-o alta relatie.
9. Cardinalitatea relatiei este egala cu numarul de linii
sau tupluri continute de un tabel sau relatie.

INTEGRITATA REFERENTIALA

10. Restrictie de integritate referenial (RIR) atunci


cand intre un atribut a si o cheie primara b exista
o legatura, iar atributul a nu poate lua decat valori
care exista pentru atributul b.
In cadrul unei aplicatii informatice privind evidenta
consumurilor normate, exista relatii sau tabele de
date avand urmatoarea structura:
PRODUSE =(COD PRODUS, DENPRODUS, UM, PRET)
MATERIALE = (CODMAT, DENMAT, UM, PRETMAT)
RETETAFABRICATIE = (CODPRODUS, CODMAT,
CONSUMNORMAT)
6

Exemplu:

In cadrul unei aplicatii informatice privind evidenta


consumurilor normate, exista relatii sau tabele de date avand
urmatoarea structura:

PRODUSE =(COD PRODUS, DENPRODUS, UM,


PRET)
MATERIALE = (CODMAT, DENMAT, UM,
PRETMAT)
RETETAFABRICATIE = (CODPRODUS, CODMAT,
CONSUMNORMAT)

Modelul relaional: Exemplu de cheie externa


CHEIA EXTERN: Fiind dou relaii R1 i R2, cu atributele A1 i A2 chei
primare definite pe acelai domeniu primar D, se spune c n relaia R1,
A2 este cheie extern dac, utiliznd o parte din valorile ei sau toate, pot
fi regsite tuplurile relaiei R2 (altfel spus, un atribut al unei relaii este
cheie extern, dac se regsete pe post de cheie primar n alt relaie)

Relaii

R1(A1,B1,C1,D1,A2)

R2(A2,B2,C2,D2)
Cheie extern

Chei primare
8

Modele de date: modelul RELAIONAL


Relaii

R1(A1,B1,C1,D1,A2)

R2(A2,B2,C2,D2)

Factura

Clieni
Chei primare

Nr_factur
Data_factur

Cod_client
Nume_client

Data_scaden

Adres

Cod_client

Localitate

Cheie extern

Factura(Nr.Factura,Data_f,Data_s,Cod client)
Clienti(Cod client,Nume_cl,Adresa,Localitate)
9

Modele de date: modelul RELAIONAL


RESTRICIILE DE INTEGRITATE depind de semantica valorilor domeniilor
Integritatea entitii prin care valorile cheii primare trebuie s fie diferite de
zero
Integritatea referirii potrivit creia valorile unei chei externe trebuie s se
refere la tuplurile unei alte relaii

ALTE RESTRICII care se aplic asupra domeniilor (validri prin care se


reflect alte corelaii de ordin valoric)
SCHEMA unei relaii este format din:
Numele relaiei
Atributele relaiei
Restriciile de integritate

10

Proiectarea BDR
Dezvoltarea unei aplicaii cu baze de date
Problem

normalizare
Modelul E-A

Schema relaional
MRD

Proiectare
BD

Descriere

conversia MCD - MRD


LDD
SGBD
LMD
(

)
Manipularea
datelor

BD

LDD, limbaj de descriere date, LMD, limbaj de manipulare date


11

2. NORMALIZAREA RELATIILOR MR
MR
Situatii de existenta a unor anomalii de
actualizare a BD:
-

a. de stergere anumite date ce urmeaza a fi sterse fac parte si


din alte tupluri necesare in continuare - pierdere de date din alte
tupluri
a. de adaugare anumite date care urmeaza sa fie adaugate fac
parte din tupluri incomplete ca urmare nu pot fi adaugate
a. de modificare o valoare poate apare in m.m. tupluri ale unei
relatii este dificil de modificat

Procesul de normalizare

Normalizarea relatiilor MR
Normalizarea este procesul care presupune descompunerea
unui tabel relaional alctuit dintr-un set de atribute, n dou sau
mai multe tabele care vor forma baza de date, cu scopul de a
elimina redundanele (memorarea repetat a acelorai date) i
anomaliile care pot aprea n operaiile de adugare, modificare
sau tergere de nregistrri

Normalizarea se bazeaz pe urmtoarele concepte:


Dependena funcional
Diagrama dependenelor funcionale
Dependene Inter-Tabele i Multivaloare
Forme normale
Matricea dependenelor funcionale
Etapele proiectrii MR prin normalizare

Normalizarea relatiilor in MR:


Procesul de normalizare
Normalizarea este un proces ce conduce la construirea
modelului relaional al bazei de date
Se descompune o tabel complex n subtabele mai mici i mai uor de
manipulat

DD
+RG

NORMALIZARE

MRD

SCOP: Normalizarea garanteaz coerena bazei de date n timpul


operaiilor de actualizare (CMS) de date, evitnd redundanele
REZULTAT: Un model ne-decompozabil ce respect regulile de
definire semantic i de integritate a datelor
14

DEPENDENA FUNCIONAL

Fie o relatie R, iar X i Y submulimi arbitrare ale


mulimii atributelor lui R.
Spunem c Y este dependent funcional de X
(X determin funcional pe Y) dac i numai dac
fiecrei valori a lui X din R i corespunde una sau
m.m valoari pentru Y din R.
- X -determinantul
- Y -determinatul
Exista: - DF simpla
- X Y
- DF multipla - X
Y
- DF multivaloare X Y

Normalizarea relatiilor in MR: Dependena funcional


I. Exist o dependen funcional simpla ntre 2 atribute atunci cnd
cunoscnd valoarea luat de ctre un atribut, se furnizeaz sistematic
valoarea pentru cellalt atribut
X Y (Y depinde funcional de X, dac la orice valoare a lui X corespunde n
orice moment o valoare unic a lui Y)
Tranzitivitate:
Exemple de dependene funcionale:

Cod Produs Denumire produs


Dac X Y i Y Z,
Cod Produs Pre de referin
atunci X Z
Numr Comand Dat Comand
Numr Comand -> Cod Client
-> Nume Client

-> Cod Fiscal

Dac un atribut sau un grup de atribute dintr-un tabel determin


funcional celelalte atribute ale tabelului, rezult c atributul sau grupul de
atribute constituie cheia primar a tabelului

- Tipuri de dependene funcionale simple:


1. Dependena funcional total.
Dependena funcional XY este total dac nu
exist nici un subset Z al atributului X astfel nct
ZY.
Exemplu: NrFact Datafact
NrFact CodFz
CodMarfa, Nrfact PretFact
2. Dependena funcional parial. Dependena
funcional este parial dac exist un subset Z al
atributului X astfel ncat ZY.
Exemplu: CodMarfa, Nrfact Codfz este o
dependen parial deoarece exist subsetul Nrfact
care determin funcional CodFz.

3.

Dependena funcional trivial.


Dependena funcional este trivial dac exist un subset Y
al atributului X astfel ncat XY.
Exemplu: CodMarfa,Nrfact Nrfact este o dependen
trivial, care nu aduce nici un plus de informaie.
II. Dependena funcional multipl
ntre dou atribute X i Y exist o dependen funcional
multipl, notat X
Y, dac i numai dac pentru o
valoare a atributului X corespund dou sau mai multe valori
ale atributului Y.
Exemplu:
CodFz NrFact
NrFact CodMarfa
CodFz
NrFact.
NrFact

(X)
CodMarfa. 100
100
100

(Y)
201
202
301

201
201
201

1111
2222
3333

III. Dependene multivaloare


Se consider relaia R(X,Y,Z), unde X,Y,Z sunt atributele
acesteia (simple sau compuse). Fie xi,yi,zi valorile
atributelor X,Y i Z [Dollinger].
Spunem c exist o dependen multivaloare a
atributului Z fa de Y, notat YZ, dac pentru
orice valori x1, x2, y, z1 i z2, x1x2, z1z2, astfel nct
tuplurile (x1,y,z1) i (x2,y,z2) fac parte din relaia R,
atunci i tuplurile (x1,y,z2) i (x2,y,z1) fac parte din
relaia R.
Din simetria definiiei rezult c dependena
multivaloare YZ implic dependena multivaloare
YX.

De exemplu, n relaia R(Serie_Facultate,


NrMatricolStudent, NumeProfesor) exist
dependene multivaloare, deoarece la seria
unei faculti sunt nscrii mai muli studeni,
care studiaz cu mai muli profesori la materii
diferite. Dac fiecare student studiaz cu toi
profesorii, atunci exist urmtoarele
dependene multivaloare:
Serie_Facultate NrMatricolStudent
Serie_Facultate NumeProfesor

Normalizarea Bazelor de Date:

Diagrama dependenelor funcionale


Reprezentarea grafic a dependenelor funcionale
Cod Produs

Denumire
UM
Pre de referin

NrComand

Dat comand

Cod Produs
Cantitate comandat
21

IV. Dependene inter-tabele: 1-1, 1-n, n-m


Dependene inter-tabele (1-1)
Cnd la o valoare a atributului Cheie primar dintr-un tabel, se
asociaz o singur valoare a atributului Cheie primar dintr-un alt
tabel, se poate spune c exist o dependen funcional ntre tabele,
exprimat prin dependena funcional dintre atributele chei primare
aferente celor dou tabele. Ex. ANGAJATI - CLIENTI

Nr-matricol

Nr-matricol

Dependene multivaloare (1-n) (n-m)

avem n cazul n care la o valoare a atributului Cheie primar


dintr-un tabel, corespund mai multe valori ale altui atribut
dintr-un alt tabel. . Ex. FACTURI - PRODUSE

Nr.factur
CodProfersor

Cod Carte

Cod Produs

22

ntr-o relaie unu-la-unu, fiecare nregistrare din


primul tabel poate avea o singur nregistrare potrivit
n al doilea tabel i fiecare nregistrare din al doilea
tabel poate avea o singur nregistrare potrivit n
primul tabel. Acest tip de relaie nu este comun,
deoarece, de cele mai multe ori, informaiile asociate
n acest mod se stocheaz n acelai tabel. O relaie
unu-la-unu poate fi utilizat pentru a diviza un tabel cu
multe cmpuri, pentru a izola o parte dintr-un tabel din
motive de securitate sau pentru a stoca informaii care
se aplic numai pentru un subset al tabelului principal.
Cnd identificai o astfel de relaie, ambele tabele
trebuie s partajeze un cmp comun.

Normalizarea Bazelor de Date :


3. Formele normale 1, 2, 3
Dicionar de date i Reguli de gestiune
Potrivit regulilor de gestiune coroborate cu analiza
informaional referitoare la aplicaia de informatizat se
declar ntr-un tablou toate atributele disponibile
(Identificatorul + Denumirea n clar)

3FN

O relaie R este n 1FN atunci cnd atributele sale nu pot fi


descompuse n uniti mai mici

2 FN

1FN
2FN

1 FN

DD+RG

O relaie R este n 2FN, dac este n 1FN i toate dependenele


ntre cheia primar a lui R i celelalte atribute a lui R sunt
elementare (atributele nu depind de o parte din cheie)

3 FN

O relaie R este n 3FN, dac este n 2FN i dac sunt eliminate


toate dependenele funcionale tranzitive (dac nu exist nici o
dependen funcional ntre24atributele non-cheie)

FN1: Fie tabelul Furnizor (CodFz, DenFz, Adresa)


CodFz

DenFz

Adresa

SC Agro SA

Bucureti, str. Popa Nan, nr.3

2
3

SC Muntenia Bucureti, str. Alexandriei, nr.36


SA
SC Tram SA
Braov, str. Biserica Neagr, nr.10

----------

--------------

--------------

Tabelul Furnizor nu respect FN1 - deoarece dac exist


cerine privind gruparea furnizorilor dup localiti,
atunci este mult mai greu s se extrag aceast
informaie dintr-o adres complet.

Descompunere in 2 tabele
NOM_FURN

CodFz

DenFz

CodAdresa

SC Agro SA

100

ADRESE

CodAdresa Localitate

Nume Strada

Numar Judet

100

ALEXANDRIEI

36

Bucuresti

26

S4

FN2: Fie tabelul Marfuri_Facturi (NrFact, CodMarfa, DenMarfa, UM,

Calitate, CantFact).
NrFact

CodMarfa DenMarfa

UM Calitate

CantFact

10

100

Portocale

kg

70

10

200

Kiwi

kg

90

11

400

Pomelo

buc 2

50

11

100

Portocale

kg

100

---------

---------------

----------------

----

-----------

---------------

Avem urmtoarele dependene funcionale:


CodMarfa DenMarfa, UM, Calitate
NrFact, CodMarfa CantFact
Relaia Marfuri_Facturi are o cheie primar
compus, format din atributele NrFact i
CodMarfa.
Tabelul Marfuri_Facturi nu respect FN2
deoarece se poate observa dependena
funcional a atributelor DenMarfa, UM, Calitate
fa de CodMarfa, ceea ce implic dependena
parial a acestor atribute fa de cheia relaiei
format din NrFact i CodMarfa.

Aceast dependen funcional parial are drept


consecine o serie de anomalii:
- Anomalia de adugare nu se pot aduga noi mrfuri
atta timp ct acestea nu sunt aprovizionate, sau altfel
spus daca ele nu apar pe o factur;
- Exp. 300,Mere,Kg,2
- Anomalia de tergere - dac se terge nregistrarea
corespunztoare pentru o singur marf existent,
atunci se pierd i informaiile referitoare la:
denumire marf, unitate de msur i calitate;
- Exp. Se sterge NrFact=10,CodMarfa=200

- Anomalia de modificare - dac se cere modificarea


calitii pentru o marf, trebuie cutate toate
nregistrrile n care se regsete aceasta, ceea ce
implic parcurgerea relaiei n ntregime.
- Exp. Se modifica Calitate=2 pentru Portocale
Aceste anomalii se pot elimina prin descompunerea
relaiei Marfuri_Facturi n relaiile:

Marfuri (CodMarfa, DenMarfa, UM, Calitate)

Marfuri_Facturate (NrFact, CodMarfa, CantFact)


30

Dependente functionale identificate

31

32

FN3. Fie tabelul

Facturi_Furnizori (NrFact, DataFact, CodFz, DenFz,


Localitate)
NrFact

DataFact

CodFz

DenFz

Localitate

10

01/03/2009

SC Agro SA Bucureti

11

05/03/2009

SC Agro SA Bucureti

12

12/03/2009

SC Tram SA Braov

---------- -------------- -------------33

Avem urmtoarele dependene funcionale:


NrFact DataFact
CodFz DenFz, Localitate
Exista dependente tranzitive ntre atributele
NrFact
DenFz, NrFact
Localitate
Aceste anomalii pot fi eliminate prin
descompunerea relaiei Facturi_Furnizori n
relaiile:

Facturi (NrFact, DataFact, CodFz)


Furnizori (CodFz, DenFz, Localitate)
34

35

4. Matricea Dependenelor Funcionale


Formalizarea procesului de normalizare este
operaional prin Matricea Dependenelor
Funcionale (MDF):
MDF are pe linie toate atributele dicionarului de
date
MDF are pe coloan toate atributele sau numai
atributele care pot avea rol de cheie primar
Se noteaz 1 la intersecia liniei cu coloana pentru
care exist dependen funcional
Se noteaz 1T dependenele funcionale tranzitive
Liniile care NU AU 1 desemneaz fie atribute care nu
sunt dependente funcional de un identificator
simplu, fie desemneaz atribute parametru
36

C3-Exemplul I. Evidenta facturilor furnizorilor


Normalizarea Bazelor de Date:

- O firma doreste sa informatizeze Evidenta


facturilor cu furnizorii sai plecand de la
urmatoarele informatii:
- Pentru un furnizor se retin date privind:
Cod furnizor, Denumire furnizor, Localiatate.

- Pentru facturile furnizorilor se retin:


- Numr factur, Data factur, Cod furnizor,
Denumire furnizor, Localitate
- Definii tabelele bazei de date, aplicnd procesul de
normalizare pe baza specificaiilor anterioare.

Normalizarea Bazelor de Date:


Etapele procesului de NORMALIZARE
1) Inventarierea atributelor (se vor selecta toate atributele

referitoare la facturile primite)


Numr factur
Data factur
Cod furnizor
Denumire furnizor
Localitatea, etc.

2) Se specific regulile de gestiune i algoritmii de calcul asociai (se vor


specifica diversele restricii i condiii impuse datelor)

O factur este emis de un singur furnizor


O factur conine mai multe materiale aprovizionate
Codul materialului este unic
Furnizorii pot fi numai persoane juridice

Algoritmii de calcul: (Val_mat_fact=Cant_facturat*Pre_unitar)

38

Etapele procesului de NORMALIZARE


3) Se ntocmete dicionarul datelor
Un atribut poate fi nscris o singur dat n dicionar
Se elimin atributele sinonime (de ex. Cod furnizor = Simbol furnizor)
Dicionarul datelor nu admite atribute derivate sau calculate (Valoare, TVA)

Nr.crt Nume atribut

Semnificatie

CodFz

Cod Furnizor

Tipul
datei
Numeric

DenFz

Denumire Furnizor

Text

LocFz

Localitate Furnizor

Text

NrFact

Numr Factur

Numeric

DataFact

Dat emitere Factur Data

Normalizarea Bazelor de Date:


Etapele procesului de NORMALIZARE
4) Se stabilesc dependenele funcionale ntre atribute prin MDF

CodFz
DenFz
LocFz
NrFact

CodFz
NU

DenFz
1

LocFz
1

NrFact

DataFact

NU

NU
1

NU
1T

1T

DataFact

NU

40

Normalizarea Bazelor de Date:


Etapele procesului de NORMALIZARE
5) Sau se stabilesc dependenele funcionale ntre atribute prin
DDF (diagrama dd)
Denumire Furnizor

Cod Furnizor

Localitate Furnizor
Dat Factur

Numr Factur

41

Normalizarea Bazelor de Date:


Etapele procesului de NORMALIZARE
6) Pentru atributele izolate se vor cuta grupuri de atribute ce
pot constitui determinani ai acestora
7) Toate atributele sau grupurile de atribute determinante,
devin CHEI CANDIDATE (posibile chei ale relaiei). Cheile
candidate aparinnd aceleiai relaii sunt caracterizate prin
dependene funcionale reciproce.(codfz-denfz, codfz-adrfz)
8) Se stabilesc CHEILE PRIMARE dintre cheile candidate
9) Cu fiecare cheie primar i cu atributele determinate direct
(fr tranzitivitate) se formeaz o nou relaie.
10) Se stabilesc CHEILE EXTERNE
FURNIZOR(CodFz, DenFz, LocFz)
FACTUR(NrFact, DataFact, CodFz)
42

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