Teorie zpracování dat
Download
1 / 54

Teorie zpracování dat - PowerPoint PPT Presentation


  • 108 Views
  • Uploaded on

Teorie zpracování dat. Návrh struktury databáze Funkční závislosti Vlastnosti dekompozice relačního schématu Normální formy Algoritmy návrhu struktury databáze. N Á VRH STRUKTURY DATABÁZE.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Teorie zpracování dat' - julie


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

Teorie zpracování dat

  • Návrh struktury databáze

  • Funkční závislosti

  • Vlastnosti dekompozice relačního schématu

  • Normální formy

  • Algoritmy návrhu struktury databáze


N vrh struktury datab ze
NÁVRH STRUKTURY DATABÁZE

  • dosud návrh struktury databáze intuitivní, pomocí několika pravidel pro zakreslení výsledných entit, vztahů a IO

  • nyní podrobněji a přesněji pomocí nově definovaných pojmů a požadovaných vlastností výsledného schématu

    Postup

    Zadání: popis modelované reality s potřebou evidence řady atributů sledovaných objektů (podstatná jména  atributy ?)

    Analýza:vytvoření univerzálního schématu se všemi atributy

    RU (A1, A2, ...)

    a definování (nových) existujících vztahů mezi atributy – fčních závislostí

    F (f1, f2, ...)

    pomocí obou množin vhodným algoritmem vytvoření schématu databáze s dobrými vlastnostmi

    RU (A1, A2, ...)  RO {R1 (A1, ...), R2 (Ai, ...), ... }


N vrh struktury datab ze1
NÁVRH STRUKTURY DATABÁZE

Příklad:RU (předmět, učitel, místnost, hodina, student, známka)


N vrh struktury datab ze2
NÁVRH STRUKTURY DATABÁZE

Problémy

  • redundance

  • nebezpečí vzniku nekonzistence

  • anomálie při vkládání záznamů

  • anomálie při vypouštění záznamů

    Možné rozklady: RU (Předmět, Učitel, Místnost, Hodina, Student, Známka)

    R1 = { PU, HMP, HUM, PSZ, HSM }

    R2 = { PU, HSP, PSZ, HSM }

    R3 = { PU, HSM, PSZ, HMP }

    R4 = { PU, HMP, PSZ, HSP } atd.

    Otázky:čím se od sebe liší?

    je některé z nich lepší než ostatní?

    Zdrojem informací je nový typ IO – funkční závislosti.


Funk n z vislosti
Funkční závislosti

Definice

Nechť R({A1,A2,...,An}, f) je relační schéma, nechť X, Y jsou podmnožiny množiny jmen atributů {A1,A2,...,An}. Řekneme, že Y je funkčně závislá na X, píšeme X  Y, když pro každou možnou aktuální relaci R(A1,A2, ..., An) platí, že mají-li libovolné dva prvky relace R stejné hodnoty atributů X, pak mají i stejné hodnoty atributů Y.

Je-li Y  X říkáme, že závislost X  Y je triviální.

  • FZ je definována mezi dvěma podmnožinami atributů v rámci jednoho schématu relace. Jde o vztah mezi atributy, nikoliv mezi entitami.

  • FZ je definována na základě všech možných aktuálních relací, není tedy možné soudit na funkční závislost z vlastností jediné relace. Tak můžeme poznat jen neplatnost funkční závislosti.

  • FZ jsou tvrzení o reálném světě, o významu atributů nebo vztahů mezi entitami, je nutné realitu brát v úvahu při návrhu schématu databáze.


Funk n z vislosti1
Funkční závislosti

Příklad:RU (Předmět, Učitel, Místnost, Hodina, Student, Známka)

P HM HM  P


Funk n z vislosti2
Funkční závislosti

Příklad:RU (Předmět, Učitel, Místnost, Hodina, Student, Známka)

V této škole platí, že každou přednášku přednáší jeden učitel (zadané IO). V příkladě můžeme určit tuto množinu funkčních závislostí F

F = { P  U, HM  P, HU  M, PS  Z, HS  M }

První FZ je zadána.

Další FZ plynou z obecně platné reálné skutečnosti (např. jeden učitel může být v danou jedinou hodinu v jediné místnosti … HU  M, …)

Z aktuální relace by se mohlo usuzovat na platnost FZ: M  H, ovšem obecně to zřejmě není pravda. Nelze tedy z dat jedné relace dokázat platnost funkčního vztahu.

Naopak neplatnost FZ může být zjistitelná, protože tvoří protipříklad: není pravda PU  M, protože DBS se učí ve dvou posluchárnách v týdnu.


Funk n z vislosti3
Funkční závislosti

Definice

Nechť F je množina funkčních závislostí pro relační schéma R a nechť X  Y je funkční závislost. Řekneme, že F logicky implikuje X  Y, jestliže v každé relaci R, v níž jsou splněny závislosti z F, je splněna i závislost X  Y.

Množinu všech závislostí, které jsou logicky implikovány množinou F, nazýváme uzávěrem množinyF, označujeme F+.

Definice

Nechť X, Y jsou podmnožiny atributů schématu R s množinou závislostí F. Říkáme, že Y úplně závisí na X, jestliže X  Y a pro žádnou vlastní podmnožinu X‘ X není X'  Y.

Jinými slovy Y je funkčně závislá na X, ale není funkčně závislá na žádné vlastní podmnožině X.


Funk n z vislosti4
Funkční závislosti

Definice

Nechť R ({A1,A2,...,An},f) je relační schéma s množinou funkčních závislostí F, nechť X{A1,A2,...,An}. Řekneme, že X je klíč schématuR, jestliže

  • X  A1...An  F+

  • pro každou vlastní podmnožinu Y  X je Y  A1...An  F+.

  • Přidali jsme tedy podmínku minimality. Zřejmě můžeme klíč schématu definovat také jako takovou X  A, že A je úplně závislá na X.

  • V relačním schématu může být více klíčů, z nich obvykle vybíráme jeden a označujeme jako primární klíč.

    Definice

    Atribut relačního schématu R se nazývá primární, je-li podmnožinou alespoň jednoho klíče schématu R. Ostatní atributy nazveme sekundárními.


  • Funk n z vislosti5
    Funkční závislosti

    Armstrongovy axiomy

    • K určení klíče schématu a logických implikací množiny závislostí potřebujeme nalézt uzávěr F+, nebo určit, zda daná závislost X  Y je prvkem F+.

    • K tomu existují pravidla zvaná Armstrongovy axiomy. Jsou úplná (dovolují odvodit z dané množiny závislostí F všechny závislosti patřící do F+) a bezesporná (dovolují z F odvodit pouze závislosti patřící do F+).

    • Odvozovací pravidla = Armstrongovy axiomy


    Funk n z vislosti6
    Funkční závislosti

    Armstrongovy axiomy

    R(A, f) je relační schéma R s množinou atributů A, F je množina funkčních závislostí mezi atributy A.

    V následujících pravidlech označujeme sjednocení XY jako XY.

    je-li Y X A, pak F X  Y (reflexivita)

    je-li X  Y a Z  A, pak XZ  YZ (rozšíření)

    je-li X  Y a Y  Z, pak X  Z (tranzitivita)

    je-li X  Y a X  Z, pak X  YZ (sjednocení)

    je-li X  Y a WY  Z, pak XW  Z (pseudotranzitivita)

    je-li X  Y a Z Y, pak X  Z (zúžení)

    je-li X YZ, pak X  Y a X  Z (dekompozice)

    Důsledkem sjednocení a dekompozice je:

    X  A1 . . . An právě tehdy, když X  Ai pro všechna i.


    Funk n z vislosti7
    Funkční závislosti

    Příklad: Určete klíč schématu R(Jméno, Katedra, Předmět, Úvazek)

    se závislostmi F={JménoKatedra, JménoPředmětÚvazek}

    Zadání: A = {J, K, P, U }, F = {J  K, JP  U }

    Odvození klíče:1. J  K (dáno v F)

    2. JP  KP (aplikace rozšíření na 1.)

    3. JP  U (dáno v F)

    4. JP  KPU (aplikace sjednocení na 2. a 3.)

    5. JP  JKPU (aplikace reflexivity na 4.)

    Neplatí J  P, P  K, podle pravých stran je JP minimální, tedy klíč.


    Funk n z vislosti8
    Funkční závislosti

    Definice

    Závislost, která má na pravé straně pouze jeden atribut, nazýváme elementární.

    • F lze nahradit závislostmi, které vzniknou dekompozicí pravých stran závislostí na jednotlivé atributy.

    • Je-li F' množina elementárních závislostí, které vzniknou z F uvedeným způsobem, platí F+ = F '+

    • Z F' lze odstraňovat závislosti, které jsou odvoditelné ze zbytku F'.


    Funk n z vislosti9
    Funkční závislosti

    • Při manipulacích se zadanou množinou funkčních závislostí F často není nutné znát celý uzávěr F+, ale stačí uzávěr podmnožiny atributů X  A vzhledem k F.

      Definice

      Uzávěrem podmnožiny atributů X  A vzhledem k F nazveme množinu všech atributů funkčně závislých na X a označíme jej X+.


    Funk n z vislosti10
    Funkční závislosti

    Algoritmus určení uzávěru X+

    Vstup: F pro R(A, f) ... kde |F| = m, |A| = n, X  A, výstup: uzávěr X+

    Struktura dat: LS[i], PS[i] ... množiny atributů na levé a pravé straně F.

    UZX ... po skončení algoritmu množinu atributů X+.

    Algoritmus: beginUZX:= X; POKR:= false;

    while (not POKR) do

    beginPOKR:= true;

    for i:= 1 to m do

    begin

    if (LS[i]  UZX) and (PS[i]  UZX)

    then begin

    UZX:= UZX  PS[i]; POKR:= false

    end

    end

    end

    end;


    Funk n z vislosti11
    Funkční závislosti

    Příklad: R(A, B, C, D)

    F = {AB, ACD, BC},

    Určete A+, B+, AC+, AB+

    Řešení:A+ = {A, B, C, D}

    B+ = {B, C}

    AC+ = {A, C, B, D}

    AB+ = {A, B, C, D}


    Funk n z vislosti12
    Funkční závislosti

    Příklad: R(A, B, C, D), F = {AB, ACD, BC},

    Určete F+

    Řešení:Známe A+ = {A, B, C, D}, B+ = {B, C}

    AB+ = {A, B, C, D},AC+ = {A, C, B, D},

    Určíme dále

    C+ = {C}, D+ = {D},

    AD+ = {A,B,C,D}, BC+ = {B,C}, BD+ = {B,D,C}, CD+ = {C,D},

    BCD+ = {B,C,D}

    Uzávěr F+ = {A ABCD, B BC, C C, D D, …

    AB  ABCD, AC  ABCD, AD  ABCD, …

    BC  BC, BD  BCD, CD  CD, …

    ABC  ABCD, ABD  ABCD, BCD  BCD, …

    ABCD ABCD, …}


    Funk n z vislosti13
    Funkční závislosti

    Definice

    Říkáme, že závislost f je redundandní v F', jestliže platí

    (F' - {f})+ = F'+

    Definice

    Pokrytí množiny funkčních závislostí F je taková množina G funkčních závislostí, pro niž platí G+ = F+.

    Neredundandní pokrytí je takové pokrytí, které neobsahuje redundandní závislosti.

    • Neredundandní pokrytí není dáno jednoznačně, závisí na pořadí, ve kterémodebíráme neredundandní závislosti. Obecně nemusí být podmnožinou původní množiny F, pokud vycházíme z F+, ne z F.


    Funk n z vislosti14
    Funkční závislosti

    Příklad: Určete neredundandní pokrytí množiny fčních závislostí F:

    F = {X Y, Y X, Y Z, XZ}

    Řešení:

    1. F+ = {XXYZ, YYXZ, ZZ}

    2. (F - {XY})+ = {XXZ, ... }... < F+, závislost není red.

    3. (F - {YX})+ = {XXZY, YYZ ... } ... < F+, není red.

    4. (F - {YZ})+ = {XXZY, YYXZ, ZZ ... }...= F+, je red.

    5. (F - {XZ})+ = {XXZY, YYXZ, ZZ ... } ... = F+, je red.

    ale ne obě současně (Y Z i X Z) !

    Výsledek: buď Fnered = { X Y, Y X, XZ }

    nebo Fnered = { X Y, Y X, YZ }


    Funk n z vislosti15
    Funkční závislosti

    Definice

    Jestliže XY a pro nějaké C X platí (X - C)+ = X+, říkáme, že atribut C je redundandní pro zadanou závislost.

    Definice

    Pokrytí, v jehož závislostech neexistují žádné redundandní atributy, nazýváme minimálním pokrytím.


    Funk n z vislosti16
    Funkční závislosti

    • Význam minimálního pokrytí je v tom, že pro manipulaci s IO (např. testování jejich splnění při aktualizaci relací) jich má být co nejméně.

    • Platí, že při eliminaci redundandních atributů se nenaruší uzávěr množiny funkčních závislostí, z redukovaných závislostí je možno získat původní. Z redukovaných závislostí se také nedají získat jiné závislosti, než ty původní. Platí tedy

      F+ = F’+ = Fnered+ = Fmin+

    • Odstranění redundandních závislostí a redundandních atributů nelze provádět v libovolném pořadí. Pro získání minimálního pokrytí je nutno odstranit nejprve redundandní atributy a potom závislosti.


    Funk n z vislosti17
    Funkční závislosti

    Příklad:R(A, B, C, D, E)

    F = {ABCD, EC, ABE, CD}

    Určete minimální pokrytí Fmin.

    Řešení:A+ = {A}, B+={B}, C+={CD}, D+={D}, E+={EA}

    AB+={ABECD} ... v ABC  D je C redundandní

    Výsledek:Fmin = {ABDEC, EC, CD}


    Funk n z vislosti18
    Funkční závislosti

    Algoritmus určení příslušnosti závislosti XC k uzávěru X+

    Vstup: F nad A relace R(A), kde |F| = m, |A| = n, závislost XC

    Výstup:logická hodnota PRIS - příslušnost XC k X+

    Algoritmus: begin

    urči UZX;

    if C  UZX then PRIS:= true

    else PRIS:= false

    end;

    Poznámka: Klíč schématu R(A) s F ... určíme uzávěry různých levých stran všech závislostí nebo jejich částí. Klíčem jsou ty podmnožiny A, jejichž uzávěrem jsou všechny atributy z A.


    Funk n z vislosti19
    Funkční závislosti

    Algoritmus určení neredundandního pokrytí

    pro množinu elementárních funkčních závislostí.

    Vstup: F' nad množinou atributů A relace R(A)

    Výstup: neredundandní pokrytí G

    Algoritmus:begin

    G:= F';

    foreach f  F do

    if f  (G - {f})+ then G:= G - {f}

    end;


    Funk n z vislosti20
    Funkční závislosti

    Příklad: Je dáno relační schéma R(A, B, C, D, E, G) a fční závislosti

    F={ABC, CA, BCD, ACDB, DEG, BEC,

    CGBD, CEAG}

    Určete minimální neredundandní pokrytí množiny fčních závislostí F.

    Řešení:

    Určíme klíč schématu ... pomocí uzávěrů podmnožin atributů:

    A+={A}, B+={B}, C+={CA}, D+={DEG}, E+={E}, G+={G}

    AB+={ABCDEG}, BC+={BCADEG},BE+={BECADG},

    CG+={CGBDAE}, CE+={CEAGBD},

    AC+={AC}, AD+={ADEG}, AE+={AE}, ..., CD+={CDABEG}

    ACD+={ACDBEG}, ...

    výsledek1:

    klíče: AB, BC, BE, CE, CG, CD, nadklíče: ACD, ...

    A,B,C,D,E,G ... primární atributy, žádný sekundární


    Funk n z vislosti21
    Funkční závislosti

    R(A, B, C, D, E, G)

    F={ABC,CA,BCD,ACDB,DEG,BEC,CGBD, CEAG}

    2. upravíme F, aby obsahovala jen elementární závislosti:

    výsledek2:

    F' = {ABC, CA, BCD, ACDB, DE, DG, BEC,

    CGB, CGD, CEA, CEG}

    3. určíme minimální pokrytí, tj. určíme redundandní atributy ve fčníchzávislostech (využijeme uzávěry z 1.) a odstraníme je:

    AB, BC, BE, CG, CE nemají redundance

    ACDB ... protože CD+={CDABEG}, platí i CDB, A je redund.

    výsledek3:

    Fmin = {ABC, CA, BCD, CDB, DE, DG, BEC,

    CGB, CGD, CEA, CEG}


    Funk n z vislosti22
    Funkční závislosti

    R(A, B, C, D, E, G)

    F={ABC,CA,BCD,ACDB,DEG,BEC,CGBD,CEAG}

    4. určíme neredundandní pokrytí, tj. určíme a odstraníme redundandní závislosti z Fmin:

    postupně testujeme závislosti,

    a) odstraníme CEA, CGB v tomto pořadí, dostaneme:

    Výsledek a:

    F1nered = {ABC, CA, BCD, ACDB, DE, DG,

    BEC, CGD, CEG}

    b) zvolíme jiné pořadí CEA, CGD, CDB, obdržíme:

    Výsledek b:

    F2nered = {ABC, CA, BCD, DE, DG, BEC,

    CGB, CEG}


    Vlastnosti dekompozice rela n ch sch mat
    Vlastnosti dekompozice relačních schémat

    Definice

    Dekompozice relačního schématu R(A, f) je množina relačních schématRO = {R1(A1,f1), ..., Rk(Ak,fk)}, kde A = A1 A2 . . .  Ak.

    • Dále uvažujeme jen binární dekompozice, neboť obecnou dekompozici lze realizovat jako posloupnost binárních dekompozicí.

    • Otázka: jak souvisí schémata získaná dekompozicí s původními schématy z hlediska jejich sémantiky a jak si jsou podobná data v původní a nové relační databázi:

      • výsledné relace musí obsahovat stejná data (atributy), jaká obsahovala původní databáze.

      • výsledná schémata musí mít zachovávat stejná IO, která jsou v relačním přístupu vyjádřena funkčními závislostmi.


    Vlastnosti dekompozice rela n ch sch mat1
    Vlastnosti dekompozice relačních schémat

    1. Zachování informace

    Definice

    Nechť R(A, f) je relační schéma, RO={R1(B), R2(C)} jeho rozklad, F

    množina funkčních závislostí. Řekneme, že při rozkladu nedojde ke

    ztrátě informace vzhledem k F, jestliže pro každou relaci R(A)

    splňující F platí:

    R = R1[B] [*] R2[C]

    Věta o ztrátě informace

    Nechť RO = {R1(B), R2(C)} je dekompozice relačního schématu

    R(A), tedy A = B  C a F je množina funkčních závislostí. Pak při

    rozkladu RO nedochází ke ztrátě informace vzhledem k F právě tehdy,

    když

    B  C  B - C nebo B  C  C - B.


    Vlastnosti dekompozice rela n ch sch mat2
    Vlastnosti dekompozice relačních schémat

    Příklad: Pro R(Jméno, Katedra, Předmět, Úvazek) s klíčem (J, P) je dána dekompozice RO = {R1(J, K), R2(J, P, Ú)} a funkční závislost JK.

    {J, K} {J, P, Ú} = {J}, {J, K} - {J, P, Ú} = {K}

    {J, K} {J, P, Ú}  {J, K} - {J, P, Ú}

    J  K ... patří do F+

    tedypři rozkladu RO nedošlo ke ztrátě informace.

    Příklad: Pro R(Jméno, Katedra, Předmět) je dána dekompozice

    RO = {R1(J, K), R2(K, P)} a množina závislostí F = {JK}.

    {J, K} {K, P} = {K}

    {J, K} - {K, P} = {J}, K  J

    {K, P} - {J, K} = {P}, K  P

    Přirozkladu RO dochází ke ztrátě informace vzhledem k F, neboťani K  J, ani K  P není prvkem F.


    Vlastnosti dekompozice rela n ch sch mat3
    Vlastnosti dekompozice relačních schémat

    Příklad: R(A, B, C), kde A, B, C jsou disjunktní podmnožiny atributů a

    F = {BC}.

    Otestujte bezeztrátovost rozkladů RO1 = {R1(B, C), R2(A, B)}a

    RO2 = {R1(B, C), R2(A, C)}

    Řěšení:

    RozkladRO1 {R1(B, C), R2(A, B)} je bezeztrátový, neboť platí {B,C}  {A, B}  {B,C} – {A, B}

    Naopak, je-li dekompozice R1(B, C) a R2(A, B) bezeztrátová, musí platit buď BC nebo BA.

    Jiný rozklad R = RO2 {R1(B, C), R2(A, C)} není bezeztrátový, neplatí ani CB, ani CA.


    Vlastnosti dekompozice rela n ch sch mat4
    Vlastnosti dekompozice relačních schémat

    2. Zachování funkčních závislostí - ty představují integritní omezení původní relace a v zájmu zachování integrity s realitou musí být zachovány.

    Definice

    Nechť R(A, f) je relační schéma, RO = {R1(B), R2(C)} je jeho dekompozice s množinou závislostí F. Projekcí F[B] množiny funkčních závislostí F na množinu atributů B  A nazveme množinu prvků XY z F+ takových, že X YB.

    Řekneme, že dekompozice RO zachovává množinu funkčních závislostí F, jestliže množina závislostí (F[B]  F[C]) logicky implikuje závislosti v F, tedy

    F+ = (F[B]  F[C])+.


    Vlastnosti dekompozice rela n ch sch mat5
    Vlastnosti dekompozice relačních schémat

    Příklad: Relační schéma Adresa(Město, Ulice, PSČ) se závislostmi

    F = {MUP, PM} a jeho rozklad RO = {UP(U, P), MP(M, P)}.

    • U rozkladu RO

    • nedochází ke ztrátě informace vzhledem k daným závislostem:

    • {U, P}  {M, P}  {M, P} - {U, P}

    • nezachovává množinu závislostí F:

    • projekce F[U, P] obsahuje pouze triviální závislosti,

    • projekce F[M, P] závislost P  M, triviální závislosti neimplikují

    • MU  P, (M, U, P) - nejsou ve stejné relaci.


    Vlastnosti dekompozice rela n ch sch mat6
    Vlastnosti dekompozice relačních schémat

    Příklad: Schéma R (A, B, C, D),

    rozklad RO = {R1 (A, B), R2 (C, D)}

    se závislostmi F = {AB, CD}

    Otestujte bezeztrátovost informace i zachování fčních závislostí.

    Řešení:

    1.{A,B} {C,D} = 

    {A,B} - {C,D} = {A,B}  nic

    {C,D} - {A,B} = {C,D}

    Rozklad není bez ztráty informace

    2. F[A, B] obsahuje AB, F[C, D] obsahuje CD

    Rozklad zachovává množinu fčních závislostí.


    Norm ln formy relac
    Normální formy relací

    Definice

    Jestliže relační schéma obsahuje pouze atomické atributy, říkáme, že je normalizovanou relací nebo že je v první normální formě (1NF).

    Poznámka: Relaci v 1NF dostaneme z relace s neatomickými atributy buď doplněním opakovaných hodnot u vícehodnotových atributů (pak relace obsahuje redundanci), nebo dekompozicí relace na více relací.

    Nejsou-li všechny atributy atomické, převedeme je na (obvykle několik) tabulky s atomickými atributy těmito technikami:

    • atribut opakující se n-krát: n atributů vedle sebe (pozor na formulaci dotazů) nebo nová tabulka s opakujícím se atributem a cizím klíčem,

    • atribut opakující se ?-krát: nová tabulka s cizím klíčem,

    • složený atribut: rozklad na několik atomických atributů, odpadne název složeného atributu.


    Norm ln formy relac1
    Normální formy relací

    Příklad: převedení neatomických atributů do 1NF


    Norm ln formy relac2
    Normální formy relací

    Definice

    Relační schéma je ve druhé normální formě (2NF), jestliže je v 1NF a každý sekundární atribut je úplně závislý na každém klíči schématu R.

    Příklad: Je schéma Firmy(firma, adresa, zboží, množ) ve 2NF?

    Řešení: F = {fa, f zc} ... klíč: f, z, adresa je závislá i na podklíči

    Důsledky: redundance adresy

    firma přestane péct  nevíme že existuje a kde


    Norm ln formy relac3
    Normální formy relací

    Příklad - pokračování:

    Řešení: Rozklad RO = {R1(f, a), R2(f, z, c)} již je ve 2NF,

    F = {fa, f zc}

    Test správnosti rozkladu:

    1. {f, a}  {f,z,c} = {f}, {f, a} - {f,z,c} = {a}

    f  a

    2. f  a pokryto v R1, f zc pokryto v R2


    Norm ln formy relac4
    Normální formy relací

    Definice

    Nechť X,Y,Z  A schématu R(A), nechť Y  X, X  Z = , YZ =  a nechť F je množina závislostí. Jestliže XY  F, YZ  F+ a YX  F+, pak také XZ F+ a ZX  F+ a říkáme, že Z je tranzitivně závislá na X.

    Poznámka: Podmínky Y  X, X  Z = , YZ =  vylučují všechny triviální závislosti, YX  F+ říká, že Y není ekvivalentní s X.

    XY, YZ, YX pak XZ a ZX

    Definice

    Relační schéma je ve třetí normální formě (3NF), jestliže je ve 2NF a žádný sekundární atribut není tranzitivně závislý na žádném klíči schématu R.

    Poznámka: Jiná formulace 3NF: Relační schéma je ve 3NF, neexistuje-li netriviální závislost mezi sekundárními atributy.


    Norm ln formy relac5
    Normální formy relací

    Příklad: Je schéma Firmy (firma, město, obyvatel) ve 3NF?

    Řešení: F = {f m, m  p} ... klíč: f

    město a obyv jsou sekundární atributy, tedy existuje závislost mezi sekundárními atributy (neboli tranzitivní závislost sekundárního atributu na klíči);

    Důsledky: redundance hodnot atributu počet-obyvatel města

    zruší-li se firma, ztratíme informaci o počtu obyvatel města

    Příklad: Učitel ( ČU, Jméno, Plat, Funkce), F = {..., F  P}


    Norm ln formy relac6
    Normální formy relací

    Definice

    Relační schéma R(A) s množinou funkčních závislostí F je v Boyce - Coddově normální formě (BCNF), jestliže vždy, když X  Y F+ a Y X, pak X obsahuje klíč schématu R.

    Poznámka: X  Y a Y  X znamenají, že X obsahuje klíč (je to klíč nebo nadklíč), tedy existují jen závislosti na klíčích.

    Věta: Každé schéma v BCNF je zároveň ve 3NF.

    Jinak by existovalo porušení

    • 2NF: závislost Y  Ai, kde Y  X a Ai je sekundární atr. (Y  X odporuje BCNF)

    • 3NF: tranzitivní závislost X Y  Ai, Y  X (odporuje BCNF, Y neobsahuje klíč).


    Norm ln formy relac7
    Normální formy relací

    Poznámka: Mějme R( a, b, c, d,... , x, y, z, u, ....)

    kde a,b,c,d jsou primární atributy, x,y,z,u jsou sekundární atributy

    2NF : sekundární závisí úplně na klíčích, ne na podklíčích

    3NF : neexistuje sekun  sekun

    BCNF: jen závislosti na klíčích, neexistuje ani prim  prim

    Příklad: R (A, B, C, D), F ={AB, CD}. Je schéma v BCNF?

    Řešení:klíč: A+={A, B}, B+={B}, C+={C,D}, D+={D},

    AC+={A, C, B, D}  AC je klíč  R není v BCNF

    Je rozklad RO = {R1 (A, B), R2 (C, D)} správný?

    {A,B}  {C,D} = ... není

    Jak dostaneme správný rozklad? Pomocí algoritmu syntézy.


    Norm ln formy relac8
    Normální formy relací

    Příklad: Adresa (Město, Ulice, PSČ), F = {MU  P, P  M}

    schéma je ve 3NF, není v BCNF, protože existuje závislost P  M. Nemůžeme zde uvést údaj o tom, že dané PSČ patří k danému městu, aniž uvedeme ulici, přitom existence PM plyne z reality.

    Opět se řeší dekompozicí?

    Řešení: Otestujme rozklad: RO = {UP (U, P), MP (M, P)}.

    • test na ztrátu informace: {UP}  {MP}  {MP} - {UP}, PM

    • test na ztrátu fčních závislostí: F + = {MUMUP, PPM}; v UP existují jen triviální závislosti, v MP navíc závislost PM, v jejich sjednocení chybí MUP, tedy rozklad RO nezachovává množinu fčních závislostí

    • úkol rozložit schéma tak, aby každá závislost byla pokryta v některé relaci nelze splnit, protože je tam závislost mezi primárními atributy; tedy je ve 3NF, nelze do BCNF.


    Norm ln formy relac9
    Normální formy relací

    Definice

    Je dáno relační schéma R(A) s množinou atributů A. Nechť X,Y jsou podmnožiny A. Řekneme, že Y multizávisí na X, když pro každou možnou aktuální relaci R schématu R(A) a pro každé dva prvky a, b relace R, pro které platí a[X] = b[X], existují prvky u, v relace R takové, že

    1. a [X] = b [X] = u [X] = v [X]

    2. u [Y] = a [Y] a u [A-X-Y] = b [A-X-Y]

    3. v [Y] = b [Y] a v [A-X-Y] = a [A-X-Y]

    Označujeme X  Y.

    Definice

    Pokud je relace ve 3NF a neobsahuje žádné multizávislosti, říkáme, že je ve čtvrté normální formě (4NF).


    Norm ln formy relac10
    Normální formy relací

    Příklad: Relace s katalogem auto-modelů Auta(model, země, válců)

    Model Mustang se vyrábí v provedeních 4 a 6 válců, oba modely se vyrábí jak v USA, tak v Kanadě  redundance.

    Řešení:Dekompozice:Auta (model, válců)

    Odkud (model, země)


    Algoritmy n vrhu struktury datab ze
    Algoritmy návrhu struktury databáze

    Jsou popsány 2 algoritmy návrhu schématu relační databáze, v obou případech jde o dekompozici univerzálního schématu relace do 3NF nebo BCNF.

    • algoritmus dekompozice (též shora dolů, postupně nahrazuje jedno

      schéma dvěma)

    • algoritmus syntézy (též zdola nahoru, syntézou přímo z funkčních

      závislostí)

      Předpoklady pro použití algoritmů

    • předpoklad schématu univerzální relace, týká se množiny jeho atributů. Atributy musí mít jednoznačná jména a každé jméno atributu musí mít pouze jeden význam a stejnou doménu

    • předpoklad jednoznačnosti vztahů; pro každou podmnožinu atributů X existuje nejvýše jeden typ vztahu, ke každé podmnožině atributů univerzálního schématu přísluší nejvýše jeden typ vztahové entity


    Algoritmy n vrhu struktury datab ze1
    Algoritmy návrhu struktury databáze

    Algoritmus dekompozice

    Vstup: Univerzální RU(A) stupně n s množinou funkčních závislostí F.

    Výstup: Relační schéma databáze RO = {Ri(Ai, Fi)}, 1 <= i <= n

    Struktury dat:VYSL ... obsahuje po skončení algoritmu RO,

    Algoritmus: begin

    VYSL:={RU};POKR:=false;

    vytvoř F+;

    while (not POKR) do

    if ve VYSL existuje Ri, které není v BCNF

    then begin

    pro netriviální fční závislost XY  Ri(Ai)

    takovou, že XAi  F+ proveď

    VYSL:=(VYSL - Ri(Ai))  Ri(Ai - Y)  Rj(XY)

    end

    else POKR:=true

    end


    Algoritmy n vrhu struktury datab ze2
    Algoritmy návrhu struktury databáze

    Příklad: R(U, P, M, H, S, Z),

    F= {PU, HMP, HUM, PSZ, HSM, PHM}.

    Najděte dekompozici do BCNF.

    1. PSZ

    UPMHSZ PSZ PU

    PHSUM PU HMP

    PMHS PHM

    SHM

    Výsledkem rozkladu je R1 = {PSZ, PU, PHM, SHM}

    2. Jiným pořadím použití funkčních závislostí dostaneme jiný rozklad

    PS  Z

    PUMHSZ PSZ P  U

    PHSUM PU PH  M

    PMHS PHM

    PHS

    Výsledkem je R2 = {PSZ, PU, PHM, PHS}


    Algoritmy n vrhu struktury datab ze3
    Algoritmy návrhu struktury databáze

    • Výsledky R1, R2 jsou příkladem, že dekompozice nemusí zachovávat pokrytí závislostí, neboť se ztrácí závislost HMP a PHM nebo jiné.

    • U výsledného schématu nedochází ke ztrátě informace, ovšem nemusí být zachována množina závislostí. Nevýhodou algoritmu je nutnost výpočtu F+, který může být exponenciálně velký vzhledem k A. 

    • Dekompozice je tedy proces návrhu schématu databáze, který by měl být řízen uživatelem.


    Algoritmy n vrhu struktury datab ze4
    Algoritmy návrhu struktury databáze

    Algoritmus syntézy (upravený Bernsteinův)

    určíme klíč K univerzálního schématu a vytvoříme min. nered. pokrytí

    závislosti roztřídíme do skupin tak, aby v každé skupině byly závislosti se stejnou levou stranou; atributy závislostí každé skupiny vytvoří schéma jedné relace, vzniklého syntézou; atributy levé strany tvoří klíč vzniklého schématu

    jsou-li v takto vzniklých schématech schémata s ekvivalentními klíči, je vhodné je sloučit v jedno schéma, protože pravděpodobně popisují stejný objekt; sloučení ovšem může vést k tranzitivitám a tak i k vyšší složitosti algoritmu

    atributy, které se nevyskytují v žádné z funkčních závislostí F buď umístíme do samostatné relace, nebo je připojíme k některému ze schémat

    neobsahuje-li žádné schéma klíč univerzálního schématu, připojíme k zajištění bezeztrátovosti k výsledku další relační schéma s množinou atributů K tvořících klíč univerzálního schématu.


    Algoritmy n vrhu struktury datab ze5
    Algoritmy návrhu struktury databáze

    Příklad: R(U, P, M, H, S, Z),

    F = {PU, HMP, HUM, PSZ, HSM}

    Navrhněte strukturu databáze v BCNF.

    Řešení:

    klíčem schématu je HS; množina funkčních závislostí neobsahuje redundandní ani částečné závislosti a tvoří tedy minimální pokrytí

    skupiny dle levých stran obsahují vždy jednu závislost, syntézou obdržíme schéma: R4 = {PU, HMP, HUM, PSZ, HSM}

    protože HM  HU, je možné sloučit schémata HMP a HUM a výsledkem je schéma R5 = {PU, PUHM, PSZ, HSM}

    schéma PU je možno vyloučit, protože tvoří projekci PUHM; zde je jediným neklíčovým atributem P a ten není tranzitivně závislý na žádném ze dvou klíčů HM, HU

    klíčem univerzálního schématu je HS a to je obsaženo v HSM, výsledkem je R6 = {PUHM, PSZ, HSM}.


    Algoritmy n vrhu struktury datab ze6
    Algoritmy návrhu struktury databáze

    Poznámka:Syntézou bez bodu 5 může vzniknout schéma, které nezachovává bezeztrátovost.

    Příklad: R(A, B, C), F ={BC, AC}

    Řešení: Klíč je BA,

    syntézou vzniknou schémata RO = {R1(B, C), R2(A, C)}

    Podle věty o ztrátě informace bezeztrátovost není zachována, proto k rozkladu RO musíme připojit schéma R3(A,B).

    Příklad: R (A, B, C), F = {A BC,C  A}

    Řešení: Klíč : A+ = {A, B, C}

    B+ = {B}

    C+ = {C, A, B}

    celkem 2 klíče: A a C

    atributy A,C jsou primární, B je sekundární

    schéma R je veBCNF.


    Algoritmy n vrhu struktury datab ze7
    Algoritmy návrhu struktury databáze

    Příklad: R(A,B,C,D,E), F={ABC,CA,ACDB,BEC,CBD}

    Řešení:Klíč: AB+ = {A, B, C, D} A+ = {A}

    C+ = {C, A, B, D} B+ = {B}

    ACD+ = {A, C, D, B} D+ = {D}

    BE+ = {B, E, C, A, D} E+ = {E}

    klíč: BE, atributy B, E ... primární, A, C, D ... sekundární

    minimální pokrytí: F={BEC, CA, CB, CD, ABC}

    skupiny a rozklad: RO1 = {BEC, CABD, ABC}

    sloučení: RO2 = {R1(BEC), R2(ABCD)}

    s klíči BE pro R2, C nebo AB pro R2


    Vazba a funk n z vislost
    Vazba a funkční závislost

    Poznámka:rozdíl mezi relační vazbou a funkční závislostí

    Příklad:

    1.Člověk(jméno, ..., adresa, ... ) adresa je atribut J A

    2.Student(jméno, ..., adresa, kolej) J  KA

    nebo

    Student(jméno, ..., adresa, číslo-k) J  AČ

    Kolej(číslo-k, k-adresa) Č  K 1 : M

    3.Dům (adresa, počet bytů, počet pater, ... ) A  vše

    Majitel(jméno, ... ) J  vše

    Vlastní (jméno, adresa) JA  nic M : N


    ad