slide1
Download
Skip this Video
Download Presentation
Teorie zpracování dat

Loading in 2 Seconds...

play fullscreen
1 / 54

Teorie zpracování dat - PowerPoint PPT Presentation


  • 111 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
slide1

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