Presentation is loading. Please wait.

Presentation is loading. Please wait.

LEKSION 9 Dizenjimi i database-it relacional.

Similar presentations


Presentation on theme: "LEKSION 9 Dizenjimi i database-it relacional."— Presentation transcript:

1 LEKSION 9 Dizenjimi i database-it relacional.
Forma e I e Normalizimit. Varesite funksionale. Dekompozimi. Format e tjera normale. Procesi i pergjithshem i dizenjimit te database-it.

2 Dizenjimi i Database-it Relacional
Forma e Pare Normale “Te metat” ne dizenjimin e nje db relacional Varesite funksionale Dekompozimi Forma Normale Boyce-Codd Forma e Trete Normale Varesite shumevlereshe dhe Forma Katert Normale Procesi I pergjithshem I Dizenjimit te Database-it

3 Forma e Pare Normale Domain-I eshte atomik nqs elementet e tij konsiderohen si njesi te pandashme Shembujt per domain-et jo-atomike Bashkesia e emrave, atributet e perbera Numrat identifikues si psh CS101 qe mund te ndahet ne pjese te tjera Nje skeme relacionale R eshte ne formen e pare normale (1NF)nqs domain-et e te gjithe atributeve jane atomike Vlerat jo-atomike nderlikojne ruajtjen dhe nxisin ruajtjen e perseritshme te te dhenave P.sh. Bashkesia e llogarive e ruajtur per cdo klient, dhe bashkesia e pronareve e ruajtur per cdo llogari Supozojme se te gjithe relacionet jane ne formen e pare normale

4 Forma e Pare Normale (vazhd..)
Atomiciteti, aktualisht eshte nje property-i se si perdoren elementet e domain-it P.sh. Stringjet normalisht do te konsideroheshin te pandashme Supozojme se studentat kane liste numrash te cilat jane stringje te formes: CS0012 ose EE1127 Nqs dy karakteret e pare hiqen per te gjetur departamentin, domain-i i listes se numrave nuk eshte atomik Por kjo nuk eshte nje ide e mire: ajo te con ne kodimin e informacionit ne programin aplikativ se sa ne database

5 Te metat ne dizenjimin e database-it relacional
Dizenjimi i database-it relacional kerkon qe ne te gjejme nje koleksion “te mire” te skemave relacionale. Nje design i keq te shpie ne: Perseritje te infomacionit Pamundesi per te paraqitur disa informacione te caktuara Synimet e design-it: Shmangni perseritjen e te dhenave Sigurohuni qe te paraqiten relacionet ndermjet atributeve Lehtesoni kontrollin e update-ve per cenim te constraint-ve te integritetit te database-it

6 Shembull Le te marrim parasysh skemen relacionale: Lending-schema = (branch-name, branch-city, assets, customer-name, loan-number, amount) Perseritje: Te dhenat per branch-name, branch-city, assets perseriten per cdo kredi qe nje banke jep Humbje(harxhim) te hapesires Komplikon update-in, duke nderfutur mundesine e paqendrueshmerise se vleres se aseteve Vlerat null Nuk mund te ruajme informacionin per nje branch nqs nuk ekziston asnje loan Mund te perdorim vlerat null, por jane te veshtira te trajtohen

7 Dekompozimi Dekompozoni skemen relacionale Lending-schema ne: Branch-schema = (branch-name, branch-city,assets) Loan-info-schema = (customer-name, loan-number, branch-name, amount) Gjithe atributet e nje skeme origjinale(burim) (R) duhet te shfaqet ne dekompozimin (R1, R2): R = R1  R2 Dekompozimi lossless-join. Per te gjithe relacionet e mundura r ne skemen R r = R1 (r) R2 (r)

8 Shembull te Dekompozimit Jo Lossless-join
Dekompozimi i R = (A, B) R1 = (A) R2 = (B) A B A B 1 2 1 2 B(r) A(r) r A B A (r) B (r) 1 2

9 Goal — sajimi i nje teorie per te meposhtmet:
Vendosni nese nje relacion R eshte ne nje forme “te mire”. Ne rastin kur nje relacion R nuk eshte ne nje forme te “mire”, dekompozojeni ate ne nje bashkesi relacionesh {R1, R2, ..., Rn} keshtu qe: Cdo relacion eshte ne forme te mire Dekompozimi eshte nje dekompozim lossless-join Kjo teori eshte e bazuar ne: Varesite funksionale Varesite shumevlereshe

10 Varesite funksionale Constraint-et ne bashkesine e relacioneve te “drejta” Kerkohet qe vlera per nje bashkesi te caktuar atributesh te percaktoje ne menyre unike vleren per nje tjeter bashkesi atributesh. Nje varesi funksionale eshte nje gjeneralizim i nje nocioni te nje celesi.

11 Varesite funksionale (vazhd..)
Le te jete R nje skeme relacionale   R and   R Varesia funksionale    eshte e vertete ne R nqs dhe vetem nqs per cdo relacion te drejte r(R), kurdo qe dy rreshta t1 dhe t2 te r –se perputhen me atributet , ato gjithashtu perputhen me atributet . Qe do te thote: t1[] = t2 []  t1[ ] = t2 [ ] Shembull: le te marrim parasysh r(A,B) me instancen e meposhtme te r. Ne kete instance, A  B nuk eshte e mundur, por B  A po. 4 3 7

12 Varesite funksionale (vazhd..)
K eshte nje superceles per skemen relacionale R nqs dhe vetem nqs K  R K eshte nje celes kandidat per R nqs dhe vetem nqs: K  R, dhe per asnje   K,   R Varesite funksionale lejojne shprehjen e konstraint-ve qe nuk mund te shprehen me ane te supercelesave. Le te marrim si shembull skemen: Loan-info-schema = (customer-name, loan- number, branch-name,amount). Supozojme se eshte e vertete kjo bashkesi e varesive funksionale: loan-number  amount loan-number  branch-name por nuk do te presim qe pjesa e meposhtme te jete e vertete loan-number  customer-name

13 Perdorimi i varesive funksionale
Ne perdorim varesite funksionale per: Testuar relacionet per te pare nese ato jane te drejta sipas nje bashkesie te dhene te varesise funksionale Nqs nje relacion r eshte i drejte sipas nje bashkesie F te varesive funksionale, ath themi se r ploteson F Specifikojme constraint-et ne bashkesine e relacioneve te drejta Themi qe F eshte i vertete ne R nqs te gjithe relacionet e drejta ne R plotesojne bashkesine e varesive funksionale te F. Shenim: nje instance specifike e nje skeme relacionale mund te plotesoje nje varesi funksionale edhe nese varesia funksionale nuk mban te gjithe instancat e drejta.

14 Varesite funksionale (vazhd..)
Nje varesi funksionale eshte trivial nqs plotesohet nga te gjitha instancat e nje relacioni P.sh. customer-name, loan-number  customer-name customer-name  customer-name Ne pergjithesi,    eshte trivial n.q.s   

15 Mbyllja e nje bashkesie te varesive funksionale
Le te jete F nje bashkesi e varesive funksionale, ath ekzistojne disa varesi funksionale te caktuara qe jane logjikisht te implikuara nga F. P.sh. Nqs A  B dhe B  C, ath mund te konkludojme (nxjerrim) se A  C Bashkesia e te gjithe varesive funksionale te implikuara logjikisht nga F eshte mbyllja e F-se. Shenojme mbylljen e F me ane te F+. Mund te gjejme te gjithe F+ duke aplikuar Aksiomat e Armstrong: Nqs   , ath    (pasqyrimi) Nqs   , ath      (shtimi) Nqs   , dhe   , ath    (kalimi) Keto rregulla jane te: Sigurta (gjeneron vetem varesite funksioanle qe aktualisht jane te verteta) dhe Plota (gjeneron gjithe varesite funksionale qe vertetohen ).

16 Shembull R = (A, B, C, G, H, I) F = { A  B A  C CG  H CG  I B  H}
Disa pjesemarres te F+ A  H Nga rregulli i kalimit kemi: A  B dhe B  H AG  I Nga rregulli i shtimit kemi: A  C me G, per te marre AG  CG dhe pastaj nga rregulli i kalimit me CG  I CG  HI Nga CG  H dhe CG  I : “rregulli i bashkimit” mund te nxirret nga: Percaktimin e varesive funksionale, ose Shtimin e CG  I per te nxjerre qe: CG  CGI, shtimi i CG  H per te nxjerre qe: CGI  HI, dhe pastaj rregulli i kalimit

17 Procedura per njehsimin e F+
Per te llogaritur mbylljen e nje bashkesie te varesive funksionale F: repeat for each varesi funksionale f ne F apliko rregullat e pasqyrimit dhe shtimit ne f shto perfundimin e varesive funksionale ne F+ for each cift te varesive funksionale f1dhe f2 ne F if f1 dhe f2 mund te kombinohen duke perdorur pasqyrimin then shto rezultatin e varesise funksionale ne F+ until F+ derisa nuk ndryshon me tej

18 Mbyllja e varesive funksionale (vazhd.. )
Mund te thjeshtesojme me tej llogaritjen manuale te F+ duke perdorur rregullat shtese te meposhtme : Nqs    plotesohet(i vertete) dhe    plotesohet, ath     plotesohet (bashkimi) Nqs     eshte i vertete, ath    plotesohet dhe    plotesohet (dekompozimi) Nqs    eshte i vertete dhe     plotesohet, ath     plotesohet (pseudokalimit)

19 Mbyllja e bashkesive te atributit
Le te jete nje bashkesi atributesh a, percaktoni mbylljen e a sipas F (shenuar me a+) si nje bashkesi atributesh qe jane te percaktuara funksionalisht nga a sipas F: a   eshte ne F+    a+ Algoritmi per te llogaritur a+, mbylljen e a sipas F result := a; while (changes to result) do for each    in F do begin if   result then result := result   end

20 Shembull i mbylljes se bashkesise se atributit
R = (A, B, C, G, H, I) F = {A  B A  C CG  H CG  I B  H} (AG)+ 1. result = AG 2. result = ABCG (A  C dhe A  B) 3. result = ABCGH (CG  H dhe CG  AGBC) 4. result = ABCGHI (CG  I dhe CG  AGBCH) A eshte AG nje celes kandidat? A eshte AG nje superceles ? A eshte e vertete qe AG  R? == eshte (AG)+  R A eshte ndonje nenbashkesi e AG nje superceles? A eshte e vertete qe A  R? == eshte (A)+  R A eshte e vertete qe G  R? == eshte (G)+  R

21 Perdorimet e mbylljes se atributit
Ekzistojne disa perdorime te algoritmit te mbylljes se atributit Testimi per superceles: Per te testuar nese  eshte nje superceles, ne llogaritim +, dhe kontrollojme nese + permban te gjithe atributet e R. Testimi i varesive funksionale Per te kontrolluar nese nje varesi funksionale    eshte e vertete (ose, me fjale te tjera, eshte ne F+ ), vetem kontrolloni nqs   +. Keshtu qe, ne llogaritim + duke perdorur mbylljen e atributit, dhe pastaj te kontrollojme nese ai permban . Eshte nje test i thjeshte dhe shume i perdorshem Llogaritja e mbylljes se F Per cdo   R, ne gjejme mbylljen e +, dhe per cdo S  +, ne perfundojme nje varesi funksionale   S.

22 Mbulimi kanonik Bashkesia e varesive funksionale mund te kene varesi perseritese qe mund te konkludohen nga te tjeret P.sh. A  C eshte perseritese ne : {A  B, B  C, A  C} Pjese te nje varesie funksionale mund te perseriten P.sh. Ne RHS: {A  B, B  C, A  CD} mund te thjeshtezohen ne {A  B, B  C, A  D} P.sh. Ne LHS: : {A  B, B  C, AC  D} mund te thjeshtezohen ne {A  B, B  C, A  D} Ne menyre intuitive, nje mbulim kanonik i F eshte nje bashkesi “minimale”e varesive funksionale ekuivalente e F, duke mos patur asnje varesi perseritese ose pjese perseritese

23 Atributet e huaja Le te marrim parasysh nje bashkesi te varesive funksionale dhe varesine funksionale    ne F. Atributi A eshte i huaj ne  nsq A   dhe F logjikisht implikon (F – {  })  {( – A)  }. Atributi A eshte i huaj ne  nqs A   dhe bashkesia e varesive funksionale (F – {  })  { ( – A)} logjikisht implikon F. Shenim: implikimi ne drejtimin e kundert eshte trivial ne secilin prej rasteve te mesiperme, meqenese nje varesi e “forte” funksionale gjithmone implikon (nenkupton) nje me te dobet. Shembull: jepet F = {A  C, AB  C } B eshte i huaj ne AB  C sepse {A  C, AB  C} logjikisht implikon A  C (psh. Rezultati i fshirjes se B nga AB  C). Shembull: jepet F = {A  C, AB  CD} C eshte i huaj ne AB  CD meqenese AB  C mund te tregohet pas fshirjes se C

24 Testimi nese nje atribut eshte i huaj
Le te marrim parasysh nje bashkesi F te varesive funksionale dhe varesine funksionale    ne F. Per te testuar nese atributi A   eshte i huaj ne  Llogaritni ({} – A)+ duke perdorur varesite ne F Kontrolloni nese ({} – A)+ permban A; nese po, A eshte e huaj Per te testuar nese atributi A   eshte i huaj ne  Llogaritni + duke perdorur vetem varesite ne F’ = (F – {  })  { ( – A)}, Kontrolloni nese + permban A; nese po, A eshte e huaj

25 Mbulimi kanonik Nje mbulim kanonik per F eshte nje bashkesi te varesive te Fc te tille qe: F logjikisht implikon gjithe varesite ne Fc, dhe Fc logjikisht implikon gjithe varesite ne F, dhe Asnje varesi funksionale ne Fc nuk permban nje atribut te huaj, dhe Cdo ane e majte e varesise funksionale ne Fc eshte unike Per te llogaritur nje mbulim kanonik per F: repeat Use the union rule to replace any dependencies in F 1  1 and 1  2 with 1  1 2 Find a functional dependency    with an extraneous attribute either in  or in  If an extraneous attribute is found, delete it from    until F does not change

26 Nje shembull i njehsimit te mbulimit kanonik
R = (A, B, C) F = {A  BC B  C A  B AB  C} Kombinoni A  BC dhe A  B ne A  BC Tani bashkesia eshte: {A  BC, B  C, AB  C} A eshte e huaj ne AB  C Kontrolloni nese rezultati i fshirjes se A nga AB  C implikohet nga varesi te tjera: Po: ne fakt, B  C eshte tashme prezent! Tani bashkesia eshte: {A  BC, B  C} C eshte i huaj ne A  BC Kontrolloni nese A  C eshte logjikisht i implikuar nga A  B dhe nga varesi te tjera Po : duke perdorurur kalimin ne A  B dhe B  C. Mund te perdorim mbylljen e atributit te A ne disa raste komplekse: Mbulimi kanonik: A  B B  C

27 Normalizimi duke perdorur Varesite Funksionale
Kur dekompozojme nje skeme relacioni R me nje bashkesi te bashkesive funksionale F ne R1, R2,.., Rn deshirojme qe: Dekompozimi Lossless-join : perndryshe dekompozimi do te rezultoje ne nje humbje te informacionit, Jo perseritje: Relacionet Ri mundesisht duhet te jene ose ne Formen Normale Boyce-Codd ose ne Formen e Trete Normale. Ruajtja e varesive: Le te jete Fi bashkesia e varesive F+ qe perfshijne vetem atributet ne Ri. Mundesisht dekompozimi duhet te ruaje varesine, te tille qe, (F1  F2  …  Fn)+ = F+ Perndryshe, check-mi i update-ve per cenim te varesive funksionale mund te kerkoje disa njehsime join qe eshte e kushtueshme.

28 Shembull R = (A, B, C) F = {A  B, B  C)
Mund te dekompozohet ne dy menyra te ndryshme R1 = (A, B), R2 = (B, C) Dekompozimi Lossless-join: R1  R2 = {B} dhe B  BC Ruajtja e varesive R1 = (A, B), R2 = (A, C) R1  R2 = {A} dhe A  AB Mos ruajtja e varesise (nuk mund te kontrollojme B  C pa njehsuar R R2)

29 Testimi per ruajtje te varesise
Per te check-ar nese nje varesi  ruhet ne nje dekompozim te R-se ne R1, R2, …, Rn aplikojme testimin e thjeshte te meposhtem (me mbylljen e atributit) result =  while (changes to result) do for each Ri in the decomposition t = (result  Ri)+  Ri result = result  t Nqs result permban gjithe atributet ne , ath varesia funksionale    ruhet. Testimi aplikohet ne te gjitha varesite ne F per te kontrolluar nese nje dekompozim ploteson kushtin e ruajtjes se varesise Kjo procedure kryhet ne nje kohe polinomiale, ne vend te kohes eksponenciale te kerkuar per te njehsuar F+ dhe (F1  F2  …  Fn)+

30 Forma Normale Boyce-Codd
Nje skeme relacionale R eshte ne BCNF ne lidhje me nje bashkesi F te varesive funksionale nese per te gjithe varesite funksionale ne F+ te formes  , ku   R dhe   R, plotesohen pohimet e meposhtme    eshte trivial (p.sh.   )  eshte nje superceles per R

31 Shembull R = (A, B, C) F = {A  B B  C} Celes = {A}
R nuk eshte ne BCNF Dekompozimi i R1 = (A, B), R2 = (B, C) R1 dhe R2 ne BCNF Dekompozimi Lossless-join Ruajtja e varesise

32 Testimi per BCNF Per te check-ar nese nje varesi jo-trivial  shkakton nje cenim te BCNF-se: Njehsojme + (mbylljen e atributit te ), dhe Verifikojme qe perfshihen gjithe atributet e R, qe do te thote, se ai eshte nje superceles per R Testimi i thjeshte: per te check-ar nese nje skeme relacioni R eshte ne BCNF, eshte e mjaftueshme te check-me vetem varesite ne bashkesine e dhene F per cenim te BCNF-se, se sa te check-me gjitha varesite ne F+. Nese asnje nga varesite ne F nuk shkakton cenim te BCNF-se atehere asnje nga varesite ne F+ nuk do te shkaktojne cenim te BCNF-se. Megjithate, kur testojme nje relacion ne nje dekompozim te R-se eshte e jo e sakte perdorimi i vetem i F-se P.sh. Le te marrim parasysh R (A, B, C, D), me F = { A B, B C} Dekompozojme R ne R1(A,B) dhe R2(A,C,D) Asnje nga varesite ne F nuk permban vetem atributet nga (A,C,D) keshtu qe mund te corientohemi duke menduar se R2 kenaq BCNF. Ne fakt, varesia A  C ne F+ tregon qe R2 nuk eshte ne BCNF.

33 Algoritmi per dekompozimin e BCNF
result := {R}; done := false; compute F+; while (not done) do if (there is a schema Ri in result that is not in BCNF) then begin let    be a nontrivial functional dependency that holds on Ri such that   Ri is not in F+, and    = ; result := (result – Ri )  (Ri – )  (,  ); end else done := true; Note: each Ri is in BCNF, and decomposition is lossless-join.

34 Shembull te dekompozimit te BCNF
R = (branch-name, branch-city, assets, customer-name, loan-number, amount) F = {branch-name  assets branch-city loan-number  amount branch-name} celes = {loan-number, customer-name} Dekompozimi R1 = (branch-name, branch-city, assets) R2 = (branch-name, customer-name, loan-number, amount) R3 = (branch-name, loan-number, amount) R4 = (customer-name, loan-number) Dekompozimi final R1, R3, R4

35 Testimi i dekompozimit per BCNF
Per te check-ar nese nje relacion Ri ne nje dekompozim te R eshte ne BCNF, Ose testojme Ri per BCNF ne lidhje me kufizimin e F-se ne Ri (qe dmth, gjithe FDs ne F+ qe permbajne vetem atributet nga Ri) Ose perdorim bashkesine origjinale te varesive F qe jane te verteta ne R, por me testimin e meposhtem: Per cdo bashkesi atributesh   Ri, kontrollojme nese + (mbylljen e atributit ) perfshin gjithe atributet e Ri.,ose nese nuk perfshin asnje atribut te Ri-  Nese kushti cenohet nga disa   ne F, varesia  (+ - )  Ri mund te tregohet qe jane te verteta ne Ri, dhe Ri cenon BCNF. Perdorim varesine e mesiperme per te dekompozuar Ri

36 BCNF dhe Ruajtja e Varesise
Nuk eshte gjithmone e mundur te marrim nje dekompozim BCNF qe rezulton ne ruajtje te varesise R = (J, K, L) F = {JK  L L  K} dy celesa kandidate = JK dhe JL R nuk eshte ne BCNF Cdo dekompozim i R-se do te deshtoje ne ruajtjen e JK  L

37 Forma e Trete Normale: Qellimi
Ekzistojne disa situata ku: BCNF nuk eshte ne ruajtje varesie, dhe Check-mi eficent per cenim te FD ne update eshte e rendesishme Zgjidhje: percaktoni nje forme normale me te lehte, te quajtur Forma e Trete Normale. Lejon disa perseritje (me probleme rezultative; do te shohim shembujt me vone) Por FDs mund te check-hen ne relacione individuale pa njehsuar nje join Ekziston gjithmone nje dekompozim lossless-join, ruajtje varesie ne 3NF

38 Forma e Trete Normale Nje skeme relacionale R eshte ne formen e trete normale (3NF) nqs per te gjithe:    ne F+ te pakten nje nga pohimet e meposhtme jane te verteta:    eshte trivial (p.sh   )  eshte nje superceles per R Cdo atribut A ne  –  perfshihet (Shenim: cdo atribut mund te jete ne nje celes te ndryshem kandidat) Nese nje relacion eshte ne BCNF ath eshte ne 3NF (meqe ne BCNF nje nga dy kushtet e para duhet te jete i vertete) Kushti i trete eshte nje kerkese minimale e BCNF per te siguruar ruajtjen e varesise

39 3NF (vazhd..) Shembull R = (J, K, L) F = {JK  L, L  K}
Dy celesa kandidate: JK dhe JL R eshte ne 3NF JK  L JK eshte nje superceles L  K K permbahet ne nje celes kandidat Dekompozimi BCNF ka (JL) dhe (LK) Testimi per JK  L kerkon nje join Gjenden disa perseritje ne kete skeme Ekuivalente me shembullin: Banker-schema = (branch-name, customer-name, banker-name) banker-name  branch name branch name customer-name  banker-name

40 Testimi per 3NF Optimizimi: eshte e nevojshme te check-hen vetem FDs ne F, nuk eshte e nevojshme te check-hen te gjithe FDs ne F+. Perdorni mbylljen e atributit per te check-ar per cdo varesi   , nqs  eshte nje superceles. Nqs  nuk eshte nje superceles, ne duhet te verifikojme nese cdo atribut ne  permbahet ne nje celes kandidate te R Ky testim eshte me shume i kushtueshem, meqe perfshin gjetjen e celesave kandidate Interesante eshte, dekompozimi ne formen e trete normale mund te kryhet ne kohe polinomiale

41 Algoritmi per dekompozimin 3NF
Let Fc be a canonical cover for F; i := 0; for each functional dependency    in Fc do if none of the schemas Rj, 1  j  i contains   then begin i := i + 1; Ri :=   end if none of the schemas Rj, 1  j  i contains a candidate key for R then begin i := i + 1; Ri := any candidate key for R; end return (R1, R2, ..., Ri)

42 Algoritmi per dekompozimin 3NF (vazhd..)
Algoritmi i mesiperm siguron: Cdo skeme relacioni Ri eshte ne 3NF Dekompozimi eshte ruajtje varesie dhe lossless-join .

43 Shembull Skema relacionale:
Banker-info-schema = (branch-name, customer-name, banker-name, office-number) Varesite funksionale per skemen e relacionit jane: banker-name  branch-name office-number customer-name branch-name  banker-name Celesi eshte: {customer-name, branch-name}

44 Aplikimi i 3NF Banker-info-schema
Cikli for ne algoritem shkakton perfshirjen e skemave te meposhtme ne dekompozimin e: Banker-office-schema = (banker-name, branch-name, office-number) Banker-schema = (customer-name, branch-name, banker-name) Meqe Banker-schema permban nje celes kandidate per Banker-info-schema, ath kemi perfunduar procesin e dekompozimit.

45 Krahasimi i BCNF dhe 3NF Eshte gjithmone e mundur te dekompozojme nje relacion ne disa relacione ne 3NF dhe Dekompozimi eshte lossless Varesite jane te ruajtura Eshte gjithmone e mundur te dekompozojme nje relacion ne disa relacione ne BCNF dhe Mund te mos jete e mundur te ruhen varesite

46 Krahasimi i BCNF dhe 3NF (vazhd)
Shembull te problemeve per shkak te perseritjes ne 3NF R = (J, K, L) F = {JK  L, L  K} Nje skeme qe nuk eshte ne 3NF por ne BCNF ka problem ne: Perseritje te informacionit (p.sh. Relacioni l1, k1) Nevoja per te perdorur vlerat null (p.sh. Per te paraqitur relacionin l2, k2 ku nuk ka vlera korresponduese per J) J L K j1 j2 j3 null l1 l2 k1 k2

47 Synimet e dizenjimit Synimi per dizenjimin e nje database-i relacional eshte: BCNF Lossless join Ruajtja e varesise Nese nuk e arrijme kete atehere ne duhet te pranojne qe kemi: Mungese ne ruajtjen e varesise Perserijte per shkak te perdorimit te 3NF-se Interesante, SQL nuk siguron nje menyre direkte per te specifikuar varesite funksionale pervecse supercelesat mund te specifikojme FDs duke perdorur assertions, por ato jane te kushtueshme per t’u testuar Edhe pse kemi nje dekompozim ruajtje te varesise, duke perdorur SQL-ne nuk do te jemi ne gjendje per te testuar ne menyre eficente varesine funksionale LHS i seciles nuk eshte nje superceles

48 Testimi per FDs ndermjet relacioneve
Nese dekompozimi nuk eshte ne ruajtje varesie, mund te kemi nje materialized view ekstra per cdo varesi   ne Fc qe nuk ruhet ne dekompozim. View-ja e materializuar percaktohet si nje projektim ne   te join te relacioneve ne dekompozim Disa prej sistemeve te reja te database-it suportojne materialized views dhe sistemi i database-it miremban view-ne kur relacionet update-hen. Nuk ka kod ekstra per programuesit Varesia funksionale    shprehet duke deklaruar  si nje celes kandidate ne view-ne e materializuar Check-mi per celesin kandidate eshte me pak e kushtueshme se check-mi per    POR: Tejperdorim te hapesires: per ruajtjen e view-se se materializuar Tejkalim te kohes: eshte e nevojshme te mbajme te update-ara view e materializuar kur relacionet update-hen Sistemet e database-it mund te mos suportojne deklarimet e celesave ne view-te e materializuar

49 Varesite shumevlereshe
Ekzistojne skema te database-it ne BCNF qe nuk duken se jane mjaftueshem te normalizuar. Le te marrim ne konsiderate nje database classes(course, teacher, book) te tille qe (c,t,b)  classes do te thote se t eshte i kualifikuar per te mesuar c, dhe b i kerkohet nje liber per c Database-i supozohet te listoje per cdo kurs nje bashkesi mesuesish ku secili prej tyre mund te jete instruktor kursi, dhe nje bashkesi librash, ku te gjithe kerkohen qe te jene per kursin (ska rendesi se kush e meson ate.)

50 Varesite shumevlereshe (vazhd)
course teacher book database operating systems Avi Hank Sudarshan Jim DB Concepts Ullman OS Concepts Shaw Ekzistojne varesi funksionale jo-trivial dhe si pasoje relacioni eshte ne BCNF Anomali ne insertim – p.sh. Nqs Sara eshte nje mesuese e re qe mund te mesoj database, dy rreshta eshte e nevojshme te insertohen: (database, Sara, DB Concepts) (database, Sara, Ullman)

51 Varesite shumevlereshe (vazhd)
Prandaj, eshte me mire te dekompozojme classes ne: course teacher database operating systems Avi Hank Sudarshan Jim teaches course book database operating systems DB Concepts Ullman OS Concepts Shaw text Duhet te vertetojme se keto dy relacione jane ne Formen e Katert Normale (4NF)

52 Varesite shumevlereshe (vazhd)
Le te jete R nje skeme relacioni dhe   R dhe   R. Varesia shumevlereshe    eshte e vertete ne R nqs per cdo relacion te drejte r(R), per te gjithe ciftet e rreshtave t1 dhe t2 ne r te tille qe t1[] = t2 [], ekzistojne rreshtat t3 dhe t4 ne r te tille qe: t1[] = t2 [] = t3 [] = t4 [] t3[] = t1 [] t3[R – ] = t2[R – ] t4 [] = t2[] t4[R – ] = t1[R – ]

53 MVDs Paraqitja tabelore e   

54 Shembull Le te jete R nje skeme relacioni me nje bashkesi atributesh qe ndahen ne 3 nenbashkesi joboshe Y, Z, W Themi se: Y  Z (Y shume-percakton Z) nqs dhe vetem nqs per te gjithe relacionet e mundshme r(R) < y1, z1, w1 >  r dhe < y2, z2, w2 >  r atehere < y1, z1, w2 >  r dhe < y2, z2, w1 >  r

55 Shembull Ne shembullin tone: course  teacher course  book
Percaktimi i mesiperm formal supozohet te formalizoje nocionin se nje vlere te vecante te Y te dhene (course) i shoqerohet nje bashkesi vlerash te Z (teacher) dhe nje bashkesi vlerash te W (book), dhe keto te dy bashkesi ne disa kuptime jane te pavarura me njera- tjetren.

56 Perdorimi i varesive shumevlereshe
Perdorimi i varesive funksionale gjendet ne dy menyra: Per te testuar relacionet per te percaktuar nese ato jane te drejta sipas nje bashkesie te dhene funksionale dhe varesive shumevlereshe Per te specifikuar kufizimet ne bashkesine e relacioneve te drejta. Keshtu qe, duhet te perfshijme vetem relacionet qe kenaqin nje bashkesi te dhene funksionale dhe varesive shumevlereshe Nese nje relacion r deshton ne plotesimin e nje varesie te dhene shumevlereshe, mund te ndertojme nje relacion r qe ploteson varesine shumevlereshe duke shtuar rreshta ne r.

57 Teoria e MVDs Nga percaktimi i varesise shumevlereshe, mund te derivojme rregullin e meposhtem: Nqs   , atehere    Keshtu qe, cdo varesi funksionale eshte gjithashtu nje varesi shumevlereshe Mbyllja D+ e D eshte nje bashkesi e gjithe varesive funksionale dhe shumevlereshe logjikisht e implikuar nga D

58 Forma e Katert Normale Nje skeme relacioni R eshte ne 4NF ne lidhje me nje bashkesi D te varesive funksionale dhe shumevlereshe nqs per te gjithe varesite shumevlereshe ne D+ te formes   , ku   R dhe   R, te pakten nje nga pohimet e meposhtme jane te verteta:    eshte trivial (p.sh.,    ose    = R)  eshte nje superceles per skemen R Nqs nje relacion eshte ne 4NF ath ai eshte ne BCNF

59 Kufizimi i varesite shumevlereshe
Kufizimi i D ne Ri eshte bashkesia Di qe konsiston ne: Gjithe varesite funksionale ne D+ qe perfshijne vetem atributet e Ri Gjithe varesite shumevlereshe te formes   (  Ri) ku   Ri dhe    eshte ne D+

60 Algoritmi i dekompozimit te 4NF
result: = {R}; done := false; compute D+; Let Di denote the restriction of D+ to Ri while (not done) if (there is a schema Ri in result that is not in 4NF) then begin let    be a nontrivial multivalued dependency that holds on Ri such that   Ri is not in Di, and ; result := (result - Ri)  (Ri - )  (, ); end else done:= true; Note: each Ri is in 4NF, and decomposition is lossless-join

61 Shembull R =(A, B, C, G, H, I) F ={ A  B B  HI CG  H }
R nuk eshte ne 4NF meqe A  B dhe A nuk eshte nje superceles per R Dekompozimi a) R1 = (A, B) (R1 eshte ne 4NF) b) R2 = (A, C, G, H, I) (R2 nuk eshte ne 4NF) c) R3 = (C, G, H) (R3 eshte ne 4NF) d) R4 = (A, C, G, I) (R4 nuk eshte ne 4NF) Meqe A  B dhe B  HI, A  HI, A  I e) R5 = (A, I) (R5 eshte ne 4NF) f)R6 = (A, C, G) (R6 eshte ne 4NF)

62 Format e Normalizimit 1st Normal Form No repeating data groups
2nd Normal Form No partial key dependency 3rd Normal Form No transitive dependency Boyce-Codd Normal Form Reduce keys dependency 4th Normal Form No multi-valued dependency 5th Normal Form No join dependency

63 Forma e Pare Normale (1st NF)
Qelizat e tabelave duhet te kene vlera te vetme. Eliminimi i grupeve perseritese ne tabelat individuale. Krijimi nje tabele te vecante per cdo bashkesi te te dhenave te lidhura. Identifikimii cdo bashkesi te te dhenave te lidhura me nje celes primar.

64 Forma e Dyte Normale (2nd NF)
Nqs ai eshte ne 1st NF dhe nese celesi primar eshte i perbere (disa kolona) atehere cdo fakt ne ate tabele duhet te jete nje fakt rreth komplet celesit primar te perbere , jo vetem pjese e celesit primar.

65 Forma e Trete Normale (3rd NF)
Nqs ai eshte ne 2nd NF dhe nuk ka asnje non-key fields qe varen nga atributet ne tabele pervec se celesit primar


Download ppt "LEKSION 9 Dizenjimi i database-it relacional."

Similar presentations


Ads by Google