Sunteți pe pagina 1din 20

Definitie BDR

O baz de date relaional (BDR) reprezint un

ansamblu de relaii (tabele) de date mpreun cu


legturile dintre ele.
Scopul proiectarii unei baze de date este ca
informatiile sa fie stocate ntr-un singur loc, n locul
cel mai potrivit.

Normalizarea
Este o teorie construit de EF Codd n jurul conceptului de

forme normale (FN), care amelioreaz structura BD prin


nlturarea treptat a unor neajunsuri i prin imprimarea
unor faciliti sporite privind manipularea datelor.
Tehnica de normalizare este utilizat n activitatea de
proiectare a structurii BDR i const n eliminarea unor
anomalii (neajunsuri) de actualizare din structur.
Normalizarea utilizeaz ca metod descompunerea topdown a unei tabele n dou sau mai multe tabele, pstrnd
informaii (atribute) de legtur.

Anomaliile de actualizare
anomalia de tergere = stergnd un tuplu dintr-o

tabel, pe lng informaiile terse, se pierd i


informaiile utile existente n tuplul respectiv;
anomaliile de adugare = nu pot fi incluse noi
informaii necesare ntr-o tabel deoarece nu se
cunosc i alte informaii utile (de exemplu valorile
pentru cheie);
anomalia de modificare = este dificil de modificat o
valoare a unui atribut atunci cnd ea apare n mai
multe tupluri.

Schema
rafinarii
schemei
conceptuale

Forma normala 1
O relaie R este n FN1 dac domeniile pe care sunt

definite atributele relaiei sunt constituite numai din


valori atomice (elementare). n plus, un tuplu nu
trebuie s conin atribute sau grupuri de atribute
repetitive.
Este forma de baz a relaiilor, care figureaz ca cerin
minimal n cazul majoritii SGBDR.

Forma normala 1
Cotatie

Emitent

Emitent

#Simbol (PK)

#Simbol (PK)

Denumire

Denumire

Pret_inchidere
Volum

Atributele pret inchidere


si volum vor avea valori
multiple. Aceasta entitate
nu este in FN1.

#Simbol (PK,FK)
#Data_cot (PK)
Pret_inchidere
Volum

Cotatie devine o entitate


avand un identificator unic
compus, toate atributele
sale vor avea o singura
valoare per instanta.
Entitatile Emitent si Cotatie
sunt in FN1.

Forma normala 2
O relaie R este n FN2 dac este n FN1 i oricare

dintre atributele non-cheie este dependent funcional


complet de cheia primar a relaiei. FN2 interzice
manifestarea unor dependene funcionale pariale n
cadrul relaiei.

Forma normala 2
Emitent

Cotatie

Emitent

Cotatie

#Simbol (PK)

#Simbol (PK,FK)

#Simbol (PK)

#Simbol (PK, FK)

Denumire

#Data_cot (PK)

Denumire

#Data_cot (PK)

Pret_inchidere

Cod_Fiscal

Pret_inchidere

Volum

Volum

Cod_fiscal

Atributul cod_fiscal nu este bine


plasat. El depinde doar de atributul
simbol si nu de intregul identificator
unic al relatiei (Simbol+Data_cot).
Relatia Cotatie nu este in FN2.

Atributul cod_fiscal acuma este bine


plasat. Atrbutele pret_inch si volum
depind de intregul identificator unic
(Simbol+Data_cot).

Forma normala 3
O relaie R este n FN3 dac este n FN2 i atributele

non-cheie nu sunt dependente tranzitiv de cheia


primar a relaiei. FN3 interzice manifestarea
dependenelor funcionale tranzitive n cadrul relaiei.

Forma Normala 3
Emitent

Emitent

Piata

#Simbol (PK)

#Simbol (PK)

#Id_Piata (PK)

Denumire

Denumire

Denumire

Cod_fiscal

Cod_fiscal

Program_tranz

Piata

Piata

Program_tranz

Id_piata (FK)

Piata poate fi un atribut al


entitatii Emitent dar atributul
program
tranzactionare
este specific pietei de
tranzactionare, acest fapt
fiind o incalcare a FN3.

Se creaza o entitate noua


Piata, ambele fiind acuma
in FN3.

Forma normal Boyce-Codd


(BCNF)
Este o varianta mai restrictiva a FN3.
O relaie este n BCNF dac dependenele funcionale

netriviale care se manifest n cadrul relaiei conin n


partea stng (ca determinant) o cheie candidat.
Destul de rar se intampla ca o relatie care este in Fn3 sa
nu este fie si in BCNF

Forma normal Boyce-Codd


(BCNF)
Tranzactie

Id_Cli
ent Id_Ordin

Valoare

Comision
Standard

Piata

Discount

100

5000

0,5 REGS

10

200

7000

0,5 REGS

15

300

7200

0,75 RGBS

20

400

7300

0,5 RGBS

25

500

7000

0,5 REGS

10

Reguli discount comision:


Pe piata REGS clientii ocazionali au discount 10%, pe piata RGBS 20%
Pe piata REGS clientii fideli au discount 15%, pe piata RGBS 25%
In acest caz exista o dependenta Discount->Piata iar Piata nu este o cheie
candidata.

Forma normal Boyce-Codd


(BCNF)
Tranzactie
Id_Cli
ent Id_Ordin

Valoare

Comision
Standard

Discount

100

5000

0,5

10

200

7000

0,5

15

300

7200

0,75

20

400

7300

0,5

25

500

7000

0,5

10

Tip_Discount
Disco
unt Tip Client

Piata

10

Ocazional REGS

20

Ocazional RGBS

15

Fidel REGS

25

Fidel RGBS

Se construieste o entitate noua,


Tip_Discount legata de tranzactii prin
discount.
Se poate observa ca aceasta constructie
este posibila doar daca discounturile sunt
distincte si putem identifica piata pornind
de la acestea.

Forma normala 4
O relatie este n FN4 dac i numai dac este n FN3 i

nu conine dou sau mai multe dependene


multivaloare.

Forma normala 4
Client_Zone_deservite
Broker

Tip_Client

Zona

ANA

OCAZIONAL

MOLDOVA

ANA

OCAZIONAL

MUNTENIA

ANA

FIDEL

MOLDOVA

ANA

FIDEL

MUNTENIA

MARIUS

OCAZIONAL

MOLDOVA

MARIUS

OCAZIONAL

MUNTENUA

MARIUS

OCAZIONAL

TRANSILVANIA

Exista doua dependente multivaloare non-triviale: Broker->Tip_client si Broker->Zona


care arata ca tipul de client deservit este independent de zona, adica daca MARIUS sar ocupa si de clientii fideli ar mai trebuie adaugate trei randuri. Aceasta entitate
incalca FN4.

Forma normala 4
Broker_client

Broker

Tip_client

ANA

OCAZIONAL

ANA

FIDEL

MARIUS

OCAZIONAL

Broker_zona
Broker

Zona

ANA

MOLDOVA

ANA

MUNTENIA

MARIUS

MOLDOVA

MARIUS

MUNTENIA

MARIUS

TRANSILVANIA

Se construiesc aceste doua entitati


care sunt conforme FN4, care permit
mai usor inregistrarea zonelor si
tipurilor de clienti gestionati de catre
fiecare broker.

Forma normala 5
O relatie este n FN5 dac i numai dac este n FN4 i

fiecare dependen jonciune este generat printr-un


candidat cheie al tabelei.

Forma normala 5
Angajat_departament_functie
ANGAJAT

DEPARTAMENT

FUNCTIE

ANA

VANZARI

BROKER

ALINA

BACK_OFFICE

CONTROL_INTERN

ANA

BACK OFFICE

CONTROL_INTERN

ANA

VANZARI

CONTROL_INTERN

Daca se considera ca un angajat poate avea orice functie, cat si cumul de


functii, indiferent de departamentul sau departementele unde este incadrat
atunci relatia satisface FN5.
Daca insa exista o leagatura intre departament si functie, in sensul ca daca un
angajat lucreaza la un departament, el trebuie sa aiba toate functiile din
departamentul respectiv, atunci relatia incalca FN5.

Proiectii pe doua atribute

Angajat_departament
Departament

Angajat

Angajat_Functie
Angajat

VANZARI

ANA

ANA

BROKER

VANZARI

ALINA

ALINA

CONTROL_INTERN

BACK_OFFICE

ANA

ANA

CONTROL_INTERN

Functie

Departament_functie
Departament

Functie

VANZARI

BROKER

VANZARI

CONTROL_INTERN

BACK_OFFICE

CONTROL_INTERN

Aceasta structura rezultata respecta


FN5.
Spre exemplu, Daca ANA lucreaza la
departamentul VANZARI iar la
departamentul VANZARI sunt functiile
BROKER si CONTROL INTERN atunci
ANA trebuie sa aiba aceste functii.

Descompunerabilitatea
Din jonctiunea a oricare doua proiectii nu trebuie sa

rezulte relatia initiala


Exemplu JOIN(ANGAJAT_DEPARTAMENT,
ANGAJAT_FUNCTIE):
ANGAJAT

DEPARTAMENT

FUNCTIE

ANA

VANZARI

BROKER

ANA

VANZARI

CONTROL_INTERN

ALINA

VANZARI

CONTROL_INTERN

ANA

BACK_OFFICE

BROKER

ANA

BACK_OFFICE

CONTROL_INTERN

Este in plus