Sunteți pe pagina 1din 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 incluziune, multivaloare, de
jonciune
Marin Fotache
Tutoriale video
04a Atributele unei baze de date
https://1drv.ms/v/s!AgPvmBEDzTOSwRbXY7AY-2jL5yk0
04b Tipologia dependentelor. Dependente
functionale
https://1drv.ms/v/s!AgPvmBEDzTOSwRWObHN5w8DRlhZ
f
04c Dependente functionale cu sursa compusa.
DF partiale si tranzitive
https://1drv.ms/v/s!AgPvmBEDzTOSwRQOLb3RbvaiKU-5
04d_Dependente de incluziune si multivaloare
https://1drv.ms/v/s!AgPvmBEDzTOSwRMBH5tto_Bgl5sz
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,
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 NrClieniAiFir-
meiAsigurtoare 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 i 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 Y
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 Y
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 DataFact
NrFact ValTotala CodCl DenCl
NrFact TVA CodCl Adresa
NrFact CodCl CodCl CodFisca
DenCl l
CodCl
NrFact DenCl
DenCl Adresa
NrFact CodFisca
l DenCl CodFisca
NrFact Adresa l
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 NrFact, PreUnit DataFact,
PreUnit CodCl, PreUnit Linie,
PreUnit Cantitate, PreUnit TVALinie,
Cantitate NrFact, Cantitate DataFact, ...
TVALinie NrFact, TVALinie 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:
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
NumeClient

DF cu surs compus
NumrFactur Linie

DenProdus PreUnitar
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) NumePrenStudent


P

(Matricol, CodDisc) AdresStudent


P

(Matricol, CodDisc) P
DenumireDisciplin

(Matricol, CodDisc) NumrCredite


P
Identificarea grafic a DF pariale

Matricol CodDisciplin

P P

P P
NumePrenStudent NumrCredite

AdresaStudent DenumireDisciplin
NotaFinal
DF tranzitive

O dependen funcional:
X Z
este tranzitiv dac i numai dac exist cel
puin un alt atribut Y pentru care sunt valabile
dependenele X Y i Y Z

X Y Z
Exemple de DF tranzitive

TipBursCurent

Matricol T
CuantumLunarBurs

CodPotal
T
Matricol Localitate
Identificarea grafic a DF tranzitive
Matricol

NumePrenStudent
TipBursCrt
T
T 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
DataAchiziionrii DescriereProiect
NumeProiect DataStartProiect
Model

IdProiect DuratProiect

IDCopiator
Marcef
MarcAngajat
MarcSecretar
AniExperienConducere
NumeAngajat
DataAngajrii

VitezTehnoredactare Compartiment
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.
X 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 alte (oricte)
Exemplu de DMV

NumeAutor Subiect
Titlu

Adresa IDAutor NumeEditur


ISBN
Email
AnPublicare

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