You are on page 1of 44

Universitatea Al.I.

Cuza Iai
Facultatea de Economie i Administrarea Afacerilor
Departamentul de Contabilitate, Informatic economic i
Statistic

DEPENDENE NTRE
ATRIBUTELE UNEI
BAZE DE DATE
Funcionale, de
Marinincluziune, multivaloare,
Fotache

Tutoriale video
04a

Atributele unei baze de date

http://1drv.ms/1mLJkef
04b

Tipologia dependentelor. Dependente


functionale

http://1drv.ms/1mLJvWR
04c

Dependente functionale cu sursa


compusa. DF partiale si tranzitive

http://1drv.ms/1sLSk5N
04d_Dependente

de incluziune si

multivaloare
http://1drv.ms/1sLSqdn

Atributele unei BD (1)

Spre deosebire de analiza/proiectarea


obinuit, n care relaiile (legturile) se
stabilesc ntre clase de obiecte (sau clase de
entiti), normalizarea se bazeaz
exclusiv pe legturi semantice ntre
atributele bazei de date
Atributele sunt informaii elementare care
descriu procesele, tranzaciile, entitile
pentru care proiectm BD
Exemple: Denumire, Lungime, UnitateMsur,
Sex, CapacitateDeStocare, DataEmiterii,
Greutate, PerioadDeGraie, NrPorturiUSB2,
NrPorturiUSB3, AdresaEMail, NotaObinut

Atributele unei BD (2)

Chiar dac reprezint proprieti ale unor entiti


sau operaiuni, n normalizare atributele sunt ale
ntregii baze de date

Doar n urma normalizrii vom ti n ce tabel va fi


inclus fiecare atribut

Pentru BD a unei firme care nchiriaz on-line (i


DVD-uri) filme, cteva dintre atribute ar putea fi:
TitluOriginal, TitluRO, AnProducie,
NumeCompaniePro-ductoare, NumeRegizor,
NumeScenarist, NumeActor, Rol, DenumirePremiu,
AnPremiu, CodDVD, PreCum-prare, CodClient,
NumeClient, AdresaClient, Datanchirierii,
DataRestituirii, Sumnchiriere, SumPenalizare

Ce anume influeneaz numrul


atributelor dintr-o BD ?

Natura problemei (stocuri, salarizare, vnzri,


campionat de fotbal, farmacii etc.)

Gradul de detaliere impus de beneficiar (o


aplicaie comandat de FEAA pentru gestiunea
colaritii nu preia nici hobby-urile studenilor
i nici preferinele lor muzicale, literare,
etnobotanice etc.)

Experiena i priceperea celui (celor) care


proiecteaz baza de date

Resursele hardware i software de care va


dispune viitoarea aplicaie

Resursele financiare i timpul alocat proiectului

Un numr relativ mic de atribute


Avantaje:

Simplitatea schemei

Inteligibilitate

Efort redus de preluare a datelor

Cost redus

Lucrul n echipe mici (uor de coordonat)

Dezavantaje:

Un set limitat de rapoarte i informaii ad-hoc ce pot fi


obinute din BD

Risc major de a pierde informaii preioase

Eforturi ulterioare considerabile de actualizarea BD i


aplicaiilor pentru rspunde la cerinele utilizatorilor

Un numr relativ mare de


atribute

Avantaje:

O larg varietate de rapoarte, liste i informaii ce pot fi furnizate


de BD

Onorarea mai multor grupuri de utilizatori

anse mai mari de integrare informaional (a BD i, implicit, a


companiei)

Modificri ulterioare mai puin traumatizante

Dezavantaje:

Costuri mari de proiectare

Echipe mari, care sunt mai greu de coordonat

Efort considerabil de preluare a datelor

Vitez sczut de preluarea n BD a tranzaciilor i, uneori,


vitez mai mic de lucru a BD/aplicaiei

Ce atribute NU se iau n
considerare n schema BD - 1
Cele irelevante pentru aplicaie, ca de ex.:

Pt. aplicaia BURSE-STUDENI nu sunt importante atribute


precum PrenumeMam, PrenumeTat, DataNaterii,
NumeLiceuAbsolvit, MedieBac etc.

Pt. BD dedicat unui CABINET STOMATOLOGIC nu sunt


importante (de obicei): CuloareOchi, nlime, PerimetruBust,
MrimePantofi etc.

Nu ntotdeauna atributele fr o aparent


legtur cu tema aplicaiei sunt chiar irelevante
(de ex., pentru BD VNZRI, pot fi importante
atribute precum NivelStudii, Hobby, JobActual n
vederea segmentrii sau fidelizrii clienilor)

Ce atribute NU se iau n
considerare n schema BD - 2

Atributele la care nu avem acces (rareori le


putem cunoate valorile), ca de ex:
Pentru aplicaia SONDAJE-OPINIE, valoarea
atributului CNP a intervievailor nu este furnizat
(informaie confidenial)
Pentru aplicaia PARC AUTO, atributul
NrClieniAiFirmeiAsigu-rtoare este confidenial
La fel atributul NrDivoruri pentru aplicaia RESURSE
UMANE
Pentru aplicaia VNZRI atributul
SalariuLunarDirector referitor la o firm/organizaie
client

Ce atribute NU se iau n
considerare n schema BD - 3
Atributele ne-elementare (cu valori compuse);
pentru BD a unei firme care nchiriaz on-line
(i DVD-uri) filme, cteva dintre atributele
eronate (non-atomice) ar putea fi:

Film (un film nseamn un titlu, un studio de producie etc.)

StudioProductor (trebuie nlocuit cu DenumireStudio,


AdresaStudio, arStudio etc.)

Regizor, Scenarist, Actor, (se vor folosi CodRegizor,


NumeRegizor etc.)

Premiu (se nlocuiete cu DenumirePremiu, LocDecernare,


AnDecernare)

nchiriere (Idnchiriere, DataOranchiriere etc.)

Ce atribute NU se iau n
considerare n schema BD - 4
Se exclud din schem atributele calculabile (pe
baza altor atribute). De ex:

Dac pentru o factur se folosesc atributele ValoareTotal i


TVAFactur, se elimin din schem atributul ValoareFrTVA

n aplicaia UNIVERSITATE, dac se folosesc atributele


NrCredite i Nota, se elimin NrPuncte (NrPuncte = NrCredite
* Nota)

Nu ntotdeauna este o idee bun. n practic se


folosesc atribute redundante din raiuni de
vitez i de validitate pe termen lung a schemei
BD denormalizare (vezi master SIA)

Cazuri practice
ncepnd cu prezentarea urmtoare (fiierul
005_Forme normale... .PPTx) vom discuta
atributele bazelor de date pentru
(mini/micro) aplicaii/module practice
parcurgnd urmtorii pai:
Analiza specificaiilor/cerinelor (minimale
sau extinse)
Inventarierea atributelor necesare
Eliminarea atributelor irelevante, la care
nu avem acces si a celor calculate
Normalizarea (aducerea BD n prima form
normal, a doua form normal ...)

Ce sunt dependenele dintre


atribute?

Legturi semantice ntre atribute

Se refer la implicaii ale valorilor


atributelor

Sunt valabile indiferent de cte tabele,


atribute i nregistrri ar exista n baza de
date

Depind de specificul aplicaiei/organizaiei


pentru care se proiecteaz baza de date

Modificri minore n legislaie sau n


organizaie pot atrage schimbri ample n
dependenele dintre atributele BD

Tipologia dependenelor
Dependene funcionale (DF)

DF cu sursa simpl
DF cu sursa compus
Subcategorii ale DF:
DF pariale
DF tranzitive

Dependene de incluziune (DI)


Dependene multi-valoare
Dependene de jonciune (nu le studiem)

Dependene funcionale - o
definiie

Dat fiind relaia R {A1, A2,...., An}, n care X i


Y sunt dou subansambluri de atribute) din {A1,
A2,...., An},
Exist o dependen funcional ntre X i Y
dac i numai dac:

fiecare apariie (valoare) a lui X poate fi asociat


unei singure apariii a lui Y,
dou apariii identice ale lui X nu pot fi asociate
dect aceleiai apariii a lui Y.
Se noteaz: X

X este sursa dependenei (determinantul)


Y este destinaia dependenei (determinatul)

O alt definiie (C.J.Date) a DF


Dat fiind o relaie R, subansamblul de
atribute Y din R depinde funcional
de subansamblul X (tot din R), dac i
numai dac,
ori de cte ori dou tupluri din R
prezint aceeai valoare pentru X,
obligatoriu valoarea celor dou
tupluri este identic i pentru Y.
X

O a treia definiie a DF
Dou atribute (sau grup/grupuri de
atribute) X i Y se afl n DF X
Y
dac, indiferent de structura i mrimea BD
este valabil una dintre urmtoarele dou
situaii:
unei valori a lui X i corespunde
maximum o valoare a lui Y
Ex.

IdCazare

IdRezervare

mai multor valori ale lui X le corespunde


maximum o valoare a lui Y
Ex. SerieNrCarteIdentitate

CNP

DF identificate ochiometric
NrFact
NrFact
NrFact
NrFact

TVA
CodCl

NrFact

DenCl

NrFact
NrFact

CodFiscal

DataFact
ValTotala

Adresa

CodCl
CodCl
CodCl
DenCl
DenCl

DenCl
Adresa
CodFiscal
CodCl
Adresa

DenCl

CodFiscal

Obs. Un atribut care poate avea valori


NULL NU trebuie plasat n sursa unei DF

Probleme ale DF
ochiometrice

Dependenele funcionale trebuie s fie valabile


indiferent de numrul de nregistrri i de numrul
de tabele din BD

Vizual putem cuprinde doar o poriune dintr-o tabel


i, astfel, putem fi indui n eroare. De ex., din figura
anterioar (slide 15) am putea deduce c...
PreUnit
PreUnit
PreUnit
Cantitate
TVALinie

NrFact,
CodCl,
Cantitate,
NrFact,
NrFact,

PreUnit
PreUnit
PreUnit
Cantitate
TVALinie

DataFact,
Linie,
TVALinie,
DataFact, ...
DataFact, ...

...mai mult, c TVALinie, PretUnit i Cantitate sunt,


fiecare, chei candidat, ceea ce este cu totul eronat

Alte exemple de DF

CNP
NumePrenumeCurente codul
numeric personal este unic la nivelul rii; nu
exist dou persoane cu acelai CNP

Pentru BD a FEAA, matricolul este un cod unic


alocat unui student; n toat istoria BD a
facultii, nu exist doi studeni cu acelai
matricol (ex. de matricol:
31040701SL080993):
Matricol
CNP
Matricol
NumePrenStudent
Matricol
Adresa

Contra-exemple de DF

NumePrenume /
CNP exist (cel
puin) dou persoane cu aceleai nume i
prenume (ex. Popa Gheorghe)

Pentru facultile care reciclau (pe


vremuri) numerele matricole (ex. de
matricol: 123):
Matricol
/
CNP
Matricol
/
NumePrenStudent
Matricol
/
Adresa

DF depind decisiv de context


Caz 1. Firma i numeroteaz strict facturile; odat folosit la
o factur, un numr nu va mai fi reciclat nici peste cinci,
zece (...) ani. n acest caz:
NumrFactur

DataFactur

NumrFactur

NumeClient

NumrFactur

ValoareFactur

Caz 2. Firma i numeroteaz strict facturile, ns reia


numerotarea din trei n trei ani (sau anual). De ex., va
exista o factur cu nr. 10001 pe 5 ian.2009, dar i o
factur cu nr. 10001 pe 4 ian. 2012. n acest caz:
NumrFactur

DataFactur

NumrFactur

NumeClient

NumrFactur

ValoareFactur

Un pont legat de sursele DF


DF reprezint o generalizarea a
conceptului de cheie primar
Orice atribut care identific ceva poate fi
surs de DF:

CNP (pentru persoane)


ISBN (pentru titlurile publicate de o editur)
NumrInventar (pentru mijloace fixe)
Marc (pentru angajai)
Serieasiu (pentru maini)

Principala confuzie legat de DF


O DF nu este o implicaie logic !!!
Nota nu implic funcional Media (chiar
dac o not are implicaii (influeneaz)
asupra mediei): Nota / Media
Media nu implic funcional:

Tipul bursei: Media /


TipBursa
Specializarea: Media / Specializarea
Forma de finanare: Media / Buget_Tax

Suma nu implic funcional Media !

DF cu sursa compus (1)

Un student este identificat de matricol:


Matricol
NumePrenStudent
O disciplin este identificat printr-un cod:
CodDisciplin
DenumireDisciplin
Un student are examene la mai multe
discipline:
Matricol
/
CodDisciplin
La o disciplin sunt evaluai toi studenii
dintr-un an/specializare/modul/serie:
CodDisciplin
/
Matricol

DF cu sursa compus (2)

Dac n BD se preia numai nota final, (indiferent


dac aceasta este luat n sesiunea obinuit sau n
restane) :

(Matricol, CodDisciplin)

NotFinal

(Matricol, CodDisciplin)
DatExaminareFinal

Dac n BD se preiau toate examinrile (sesiunea


obinuit i toate eventualele sesiuni de restane) :

(Matricol, CodDisciplin)

DatExaminare

(Matricol, CodDisciplin)

Not

ns:
(Matricol, CodDisciplin, DatExaminare)

Not

DF cu sursa compus (3)

DF cu sursa compus (4)

Dac numrul fiecrei facturi emise este


unic:
NumrFactur
DataFactur
NumrFactur
NumeClient
O factur are mai multe linii, pe fiecare linie
fiind consemnat vnzarea unui produs:
NumrFactur
/
Linie
NumrFactur
/
DenProdus
DF corecte sunt:
(NumrFactur, Linie)
DenProdus
(NumrFactur, Linie)
Cantitate
(NumrFactur, Linie)
PreUnitar

Reprezentare grafic a DF
DF cu surs
simpl

DataFactur

NumrFactur

DF cu surs
compus
NumrFactur

NumeClient

Linie

PreUnitar

DenProdus
Cantitate

DF pariale
O dependen funcional:
(X, Y)
Z
este parial (ne-elementar) dac i
numai dac exist cel puin una dintre
dependenele: X
Z sau Y
Z

DF care nu este parial se numete


total,
plin,
deplin
sau
elementar

Obs: Problema parialitii se pune doar


pentru dependene cu sursa compus.

Exemple de DF pariale

(Matricol, CodDisc)

(Matricol, CodDisc)

(Matricol, CodDisc)

NumePrenStudent

AdresStudent

DenumireDisciplin
P

(Matricol, CodDisc)

NumrCredite
P

Identificarea grafic a DF
pariale
Matricol

CodDisciplin

P
P

NumePrenStudent

NumrCredite

AdresaStudent

DenumireDisciplin

NotaFinal

DF tranzitive
O dependen funcional:
X

este tranzitiv dac i numai dac exist cel


puin un alt atribut Y pentru care sunt
valabile dependenele X

Y i Y

Exemple de DF tranzitive
TipBursCurent
Matricol

CuantumLunarBurs

CodPotal

Matricol

Localitate

Identificarea grafic a DF

tranzitive
Matricol

umePrenStudent

TipBursCrt
T

AdresaStudent

CodPotal
CuantumLunarBurs

Localitate

Jude

Dependene de incluziune (DI)

DI exprim o relaie de tip este un /


este o ntre dou atribute.
Exemple
- Un Manager (identificat de IdManager) este
un angajat (identificat prin IdAngajat)
- Un student (CNPStudent) este o persoan
(CNPIndivid)

Indic o specializare/particularizare

Dou exemple de DI

Model

DataAchiziion
rii
NumeProiect

DescriereProiec
t
DataStartProiect

IdProiect

DuratProiect

IDCopiator
Marcef
MarcAngaja
t

MarcSecretar

AniExperienConducere
NumeAngaja
t
VitezTehnoredactare

DataAngajr
ii
Compartime
nt

Dependene Multi-Valoare
DMV (1)
1977 -Ronald Fagin
Exist o DMV ntre X i Y dac i numai
dac:

(a) la fiecare apariie (valoare) a lui X poate fi


asociat una sau mai multe apariii (valori) ale lui
Y;
(b) aceast asociaie nu depinde de apariiile lui
Z.

Y|Z

DMV (2)
Elmasri i Navathe:
Dac n R exist dou tupluri t1 i t2
pentru care t1[X] = t2[X], atunci exist n
R alte dou tupluri, t3 i t4 :

t3[X] = t4[X] = t1[X] = t2[X]

t3[Y] = t1[Y] i t4[Y] = t2[Y]

t3[Z] = t2[Z] i t4[Z] = t1[Z]

unde Z reprezint toate celelalte (altele


dect X i Y) atribute din R, adic (R - (X U
Y))

DMV (3)
C.J. Date: Exist o dependen
multi-valoare ntre X i Y n
urmtoarea situaie:
dac (x,y,z) i (x,y',z') sunt
dou tupluri ale relaiei R,
atunci tuplurile (x,y',z) i
(x,y,z') aparin, de
asemenea, lui R.

DMV (4)
R. Dollinger:
O valoare dat a lui X se gsete n R
n combinaie (altfel spus, formeaz
tupluri) cu fiecare pereche de valori
(y,z) din produsul cartezian al
mulimilor Yx (valorile lui y care apar
n combinaie cu un x dat) i Zx.
Aceasta nseamn ca mulimile Yx i
Zx sunt independente ntre ele.

DMV (5) Caz practic

aparent exist o DMV ntre X i Y


(n prezena lui Y)
DMV trebuie s se respecte i
dac n relaia XYZ mai apar i

Exemplu de DMV

NumeAutor

Subiect

Adresa IDAutor
Email

ISBN

Titlu
NumeEditu
r
AnPublicar
e