Documente Academic
Documente Profesional
Documente Cultură
Introducere În Teoria Proiectării Bazelor de Date Relaționale (PDF)
Introducere În Teoria Proiectării Bazelor de Date Relaționale (PDF)
Intreprinderi
Nume
N1
N2
N3
N4
Adresa
Ad1
Ad2
Ad3
Ad4
Balplati
+Bp1
0
-Bp3
-Bp4
Comenzi
Nume
N1
N1
N3
N4
N3
N3
Articol
Ar1
Ar2
Ar3
Ar4
Ar5
Ar6
Cantitate
Q1
Q2
Q3
Q4
Q5
Q6
Furnizori
Numef
Nf1
Nf1
Nf1
Nf2
Nf2
Nf2
Nf2
Nf3
Nf3
Nf3
Adresaf
Adf1
Adf1
Adf1
Adf2
Adf2
Adf2
Adf2
Adf3
Adf3
Adf3
Articol
Ar1
Ar6
Ar5
Ar4
Ar7
Ar1
Ar2
Ar6
Ar4
Ar5
Pret
P1
P2
P3
P4
P5
P6
P7
P8
P9
P10
n fond, dependenele funcionale sunt aseriuni care reprezint legturi din lumea real.
Dependenele funcionale nu pot fi demonstrate, dar pot fi realizate de un SGBD proiectat n mod
adecvat.
Multe sisteme existente realizeaz dependene funcionale care rezult din faptul c o cheie
determin celelalte atribute ale unei relaii.
Exemplu s gsim dependenele funcionale n cazul BD de lucru CENIN. Presupunere fiecare
ntreprindere are o adres unic, o balan de pli unic. Nu exit dou ntreprinderi cu acelai
nume (dac apare o astfel de problem se rezolv prin introducerea unui element de distingere).
Admitem atunci c: NUMEADRESA, BALPLATI n relaia INTREPRINDERI.
De asemenea, NUME ARTICOLCANTITATE n relaia COMENZI.
Not notaii XY pentru XY, A1A2...An pentru {A1A2...An}, unde Ai=atribute.
Ultima dependen are la baz ipoteza c o ntreprindere nu face dou comenzi pentru acelai
articol. O comand suplimentar se realizeaz adugnd cantitatea la comanda veche, n loc de a
insera un tuplu nou. Altfel, de exemplu, n relaia COMENZI, IMET ar putea apare cu un tuplu nou,
corespunznd unei comenzi de Tabl, cu o cantitate de 35Kg, dar nu ar putea apare cu un al doilea
tuplu, pentru acelai articol, dar Cantitate = 25Kg, deoarece un astfel de tuplu exist, de la prima
comand (n o relaie nu putem avea dou tupluri identice, relaia fiind de mulime).
Dependene n relaia FURNIZORI:
NUMEFADRESAF
NUMEF ARTICOLPRET
Dependene triviale: NUMENUME, NUME ARTICOLARTICOL.
2
Dependene netriviale, care deriv din cele gsite, de ex.: NUMEF ARTICOLADRESAF PRET.
Implicaii logice ale dependenelor
Fie R o schem de relaie, iar A, B, C atribute n R. tim c, de exemplu, AB i BC valabile n
R. Se poate arta c, de asemenea, AC valabil n R (tranzitivitate).
Fie F o mulime de dependene funcionale pentru R i fie XY o dependen funcional, valabil
tot pentru schema R. Atunci, F implic logic XY, dac orice relaie r pentru R, care satisface
dependenele din F, satisface i XY.
nchiderea mulimii de dependene F, notat cu F+, se definete ca mulimea dependenelor
funcionale implicate logic de F. Cnd F+=F, F este o familie complet de dependene.
Exemplu: fie R=ABC, cu F={A, B, C}. Atunci, F+ conine toate dependenele XY, astfel nct:
1. X conine pe A, de exemplu ABCAB, ABBC sau AC.
2. X conine B dar nu A, iar Y nu conine A, de exemplu, BCB, BC, B.
3. XY este una din cele dou dependene CC sau C.
Chei
Cheia = mulime de atribute care determin n mod unic o entitate (deci concept similar cu cel de
dependen funcional).
Fie R o schem, cu A1A2...An mulimea de dependene F, iar X o submulime a A1A2...An. X este
cheie unic dac:
1. XA1A2...An este n F+;
2. pentru nicio submulime YX, dependena funcional YA1A2...An nu face parte din F+.
Condiia 2 de minimalitate. Pentru o relaie pot exista mai multe chei. Una din ele chei primar.
Exemplu: pentru R=ABC din exemplul anterior, singura cheie este A. Cauza: AABC face parte
din F+, dar nici un X care nu conine A nu determin funcional ABC.
Exemplu: schema (ORA, STR, COD); dependene netriviale: ORA STRCOD, CODORA.
Se verific uor c {ORA, STR} i {STR, COD} sunt, ambele, chei.
Axiome pentru dependenele funcionale
Pentru a gsi chei i pentru a nelege dependenele funcionale, n general, trebuie ca:
a) s putem calcula F+ din F, sau, cel puin
b) dac sunt date F i XY, s stabilim dac XY face parte din F+.
Pentru a rezolva a) i b) ne sunt necesare reguli de inferen, care s ne nvee cum una sau mai
multe dependene funcionale implic alte dependene.
Fie U mulimea universal de atribute, iar F mulimea de dependene care include numai
atribute din U.
Un sistem complet i corect de reguli de inferen (axiomele lui Armstrong):
A1) Dac YXU, atunci XY este implicat logic de F (reflexibilitate). De aici obinem
dependene triviale.
A2) Dac XY ine i dac ZU, atunci XZYZ ine (augmentare, amplificare).
A3) Dac XY i YZ in, atunci XZ ine (tranzitivitate).
Exemplu: n schema {ORA, STR, COD} mulimea de atribute {STR, COD} era o cheie. Deci:
STR CODORA STR COD. Demonstraie:
1. CODORA (prin ipotez).
2. STR CODORA STR (prin aplicare A2 pe 1).
3. ORA STRCOD (prin ipotez).
4. ORA STRORA STR COD (prin aplicare A2 pe 3).
5. STR CODORA STR COD (prin aplicare A3 de la 2 la 4).
Alte reguli de inferen, care decurg din axiomele lui Armstrong:
a) dac XY i XZ in, atunci XYZ ine (de fapt, XYZ!) (regula reuniunii);
b) dac XY i WYZ in, atunci ine i XWZ (regula de pseudotranzitivitate);
c) dac XY ine i dac ZY, atunci XZ ine (regula de descompunere).
Demonstraie.
a) XY este dat. Amplificm cu X i prin inferen obinem XXXY, sau XXY. De
asemenea, XZ este dat; amplificm cu Y i XYZY sau XYYZ. Prin tranzitivitate
(A3) rezult XYZ.
b) XY este dat. Amplificm cu W i obinem XWYW. Dar WYZ, sau YWY, deci
prin A3 rezult XWZ.
c) XY este dat. Prin ipotez ZY, deci din A1 rezult YZ. Cu A3, din XY i YZ
obinem XZ.
Consecin important a regulilor de reuniune i descompunere: dac A1, A2, ..., An sunt atribute,
atunci XA1A2...An ine (este valabil) dac i numai dac XAi ine pentru orice i.
Fie U o mulime de atribute, X o submulime a lui U, F o mulime de dependene pe U.
Definiie. nchidere a mulimii X, n raport cu F, notat cu X+, este mulimea atributelor A astfel
nct XA poate fi dedus din F folosind axiomele Armstrong.
Lem. Dependena funcional XY rezult din axiomele Armstrong dac i numai dac YX+.
Demonstraie. Fie Y=A1A2...An. Facem ipoteza c YX+.
Prin definiia lui X+, XAi este implicat de axiomele Armstrong pentru toi i. Dar cum
Y=A1A2...An={A1A2An}, prin regula de reuniune rezult XY, deoarece XAi pentru
orice i.
Se poate arta (teoreme) c sistemul axiomelor lui Armstrong este att complet ct i corect.
Complet dac sunt date dependenele funcionale din F, prin axiome deducem toate dependenele
funcionale din F+.
Corect folosind regulile de inferen reprezentate de axiomele Armstrong i plecnd din F, nu
putem deduce dependenele funcionale care nu sunt n F+.
Consecinele (demonstrabile, pe baza celor spuse mai sus):
a) X+ a fost definit ca mulimea de atribute A, astfel nct XA decurge din F, folosind
axiomele Armstrong. O definiie echivalent pentru X+ este: X+ este mulimea atributelor A
astfel nct F implic logic pe XA.
b) F+ a fost introdus ca mulimea dependenelor implicate logic de F. Se poate ns defini F+
ca mulimea dependenelor care decurg din F prin axiomele Armstrong.
Calculul nchiderilor
Algoritm. Intrare: U finit, F n U, XU.
4
De fapt, condiia 2 garanteaz c nicio dependen din F nu este redundant, iar 3 c niciun atribut
n nicio parte stng nu este redundant. Desigur, niciun atribut din dreapta nu este redundant,
deoarece fiecare parte dreapt conine un singur atribut (condiia 1).
Teorem. Fiecare mulime de dependene F este echivalent cu o mulime F`, care este minimal.
Exemplu. Fie: ABC, DEG, CA, BEC, BCD, CGBD, ACDB, CEAG.
n ultima lem a fost indicat la demonstraie un fel de algoritm pentru secionarea prilor
drepte ale dependenelor funcionale. Aplicndu-l obinem:
ABC, CA, BCD, ACDB, DE, DG, BEC, CGB, CGD, CEA, CEG.
CGB i CEA sunt redundante.
S artm, de exemplu, c CGB este redundant cu ACDB.
Se vede c ACDB este echivalent cu CDB, deoarece CA.
Aadar, s artm c CGB este redundant, fa de CDB.
Pornind de la CDB, avem CGD, deci nlocuim pe D n CDB i obinem C(CG) B, sau
CGB.
Procednd astfel, se obine sistemul de dependene minimale din (a). Dac din F eliminm
dependenele CEA, CGD i ACDB, obinem acoperirea minimal din (b). Observm c cele
dou acoperiri minimale conin numere diferite de dependene.
(a)
(b)