NORMALIZACE Část 2 1

Podobné dokumenty
Kvalita relačního schématu, normalizace

DBS Normální formy, normalizace

Relační datový model. Integritní omezení. Normální formy Návrh IS. funkční závislosti multizávislosti inkluzní závislosti

Úvod do databázových systémů 10. cvičení

Teorie zpracování dat

Databázové systémy Tomáš Skopal

UDBS Cvičení 10 Funkční závislosti

Kapitola 7: Návrh relačních databází. Nástrahy relačního návrhu. Příklad. Rozklad (dekompozice)

Úvod do databázových systémů. Cvičení 12 Ing. Martin Zwierzyna

5. Formalizace návrhu databáze

5. Formalizace návrhu databáze

Normalizace rela ního schématu

Úvod do databázových systémů

7. Normální formy. PŘ: POJIŠŤOVNA Povinné ručení relace Platby

TÉMATICKÝ OKRUH Teorie zpracování dat, Databázové a informační systémy a Teorie informačních systémů

Databáze. Logický model DB. David Hoksza

Databázové systémy Tomáš Skopal

Databázové systémy. Úvod do teorie normalizace. Vilém Vychodil

DATABÁZOVÝ SYSTÉM Proč databázový systém? Vrstvy modelování Konceptuální datové modelování

Databázové systémy BIK-DBS

Relační model dat (Codd 1970)

Analýza a modelování dat 3. přednáška. Helena Palovská

Michal Valenta DBS Databázové modely 2. prosince / 35

Inovace tohoto kurzu byla spolufinancována z Evropského sociálního fondu a státního rozpočtu České republiky.

Kapitola 6: Omezení integrity. Omezení domény

Obsah přednášky. Databázové systémy. Normalizace relací. Normalizace relací. Normalizace relací. Normalizace relací

Maticí typu (m, n), kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru:

Pojem binární relace patří mezi nejzákladnější matematické pojmy. Binární relace

Databázové systémy. Cvičení 3

Základy maticového počtu Matice, determinant, definitnost

Pro každé formule α, β, γ, δ platí: Pro každé formule α, β, γ platí: Poznámka: Platí právě tehdy, když je tautologie.

Základní pojmy teorie množin Vektorové prostory

MATICE. a 11 a 12 a 1n a 21 a 22 a 2n A = = [a ij]

Lineární algebra - I. část (vektory, matice a jejich využití)

Vektory a matice. Obsah. Aplikovaná matematika I. Carl Friedrich Gauss. Základní pojmy a operace

DBS relační DB model, relační algebra

Výroková a predikátová logika - VII

Databáze I. Přednáška 3

VI. Maticový počet. VI.1. Základní operace s maticemi. Definice. Tabulku

Princip rozšíření a operace s fuzzy čísly

Databázové systémy. Normálové formy + kandidátní klíče. 2.přednáška

1 Predikátová logika. 1.1 Syntax. jaký mohou mít formule význam (sémantiku). 1. Logických symbolů: 2. Speciálních (mimologických) symbolů:

Úvod do lineární algebry

Úvod do logiky (presentace 2) Naivní teorie množin, relace a funkce

Matematická analýza 1

Úvod do informatiky. Miroslav Kolařík

Operace s maticemi. 19. února 2018

0.1 Úvod do lineární algebry

Bezkontextové jazyky 2/3. Bezkontextové jazyky 2 p.1/27

Úvod do informatiky. Miroslav Kolařík. Zpracováno dle učebního textu R. Bělohlávka: Úvod do informatiky, KMI UPOL, Olomouc 2008.

Úvod do informatiky. Miroslav Kolařík. Zpracováno dle učebního textu prof. Bělohlávka: Úvod do informatiky, KMI UPOL, Olomouc 2008.

NAIVNÍ TEORIE MNOŽIN, okruh č. 5

prof. RNDr. Čestmír Burdík DrCs. prof. Ing. Edita Pelantová CSc. BI-ZMA ZS 2009/2010

Katedra aplikované matematiky FEI VŠB Technická univerzita Ostrava luk76/la1

Marie Duží

VzorTest-1. Prohlídka náhledu

Zjednodušení generativního systému redukcí rozlišení

Fakulta elektrotechniky a informatiky Vysoká škola báňská - Technická univerzita Ostrava. Úvod do databázových systémů 2012/2013 IS MHD

Základy elementární teorie čísel

0.1 Úvod do lineární algebry

Základy elementární teorie čísel

INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ. Modernizace studijního programu Matematika na PřF Univerzity Palackého v Olomouci CZ.1.07/2.2.00/28.

1 Báze a dimenze vektorového prostoru 1

Matematika (CŽV Kadaň) aneb Úvod do lineární algebry Matice a soustavy rovnic

1 Vektorové prostory.

Dijkstrův algoritmus

(Cramerovo pravidlo, determinanty, inverzní matice)

Databázové systémy. * relační kalkuly. Tomáš Skopal. - relační model

Číselné vektory, matice, determinanty

1 Pravdivost formulí v interpretaci a daném ohodnocení

Automaty a gramatiky(bi-aag) Motivace. 1. Základní pojmy. 2 domácí úkoly po 6 bodech 3 testy za bodů celkem 40 bodů

Vyhodnocování dotazů slajdy k přednášce NDBI001. Jaroslav Pokorný MFF UK, Praha

Matice. Přednáška MATEMATIKA č. 2. Jiří Neubauer. Katedra ekonometrie FEM UO Brno kancelář 69a, tel

Výroková a predikátová logika - VII

Lineární algebra. Matice, operace s maticemi

Katedra kybernetiky skupina Inteligentní Datové Analýzy (IDA) 9. dubna Filip Železný (ČVUT) Vytěžování dat 9.

Lineární algebra Operace s vektory a maticemi

Výroková a predikátová logika - II

Množiny, relace, zobrazení

Matematická logika. Rostislav Horčík. horcik

Lineární algebra : Násobení matic a inverzní matice

Jednoznačné a nejednoznačné gramatiky

Základy matematiky pro FEK

Výroková a predikátová logika - VIII

6. Vektorový počet Studijní text. 6. Vektorový počet

Výroková a predikátová logika - VIII

Cvičení 5 - Inverzní matice

Operace s maticemi

Databáze I. Přednáška 2

Lineární algebra : Násobení matic a inverzní matice

3 Lineární kombinace vektorů. Lineární závislost a nezávislost

Hranová konzistence. Arc consistency AC. Nejprve se zabýváme binárními CSP. podmínka odpovídá hraně v grafu podmínek

Lineární algebra : Báze a dimenze

Normální formy. Zdeněk Kouba

Základy matematiky pro FEK

Bezkontextové jazyky. Bezkontextové jazyky 1 p.1/39

PŘEDNÁŠKA 7 Kongruence svazů

Návrh databázového modelu

Databázové systémy. Cvičení 2

Teorie množin. Čekají nás základní množinové operace kartézské součiny, relace zobrazení, operace. Teoretické základy informatiky.

Transkript:

NORMALIZACE Část 2 1

Úprava relačního schématu databáze NORMALIZACE Eliminaci aktualizačních anomálií zajišťujeme převedením relačního schématu do 3NF, resp. BCNF. (Normalizovat lze pomocí) DEKOMPOZICE Původní schéma: R(U, F) Dekomponované schéma: Kvalita dekompozice (požadavky): { R i (U i,f i ) } n i=1 kde U i = U P1: Výsledná schémata by měla mít "stejnou" sémantiku. P2: Nové relace by měly obsahovat "stejná" data, jaká by obsahovala původní relace. 2

Pokrytí původní množiny závislostí F (P1) Cílem bude, aby původní schéma a schémata získaná dekompozicí nějak odrážela stejné závislosti. F + = ( F i ) + zpět k příkladu: ADRESÁŘ(MĚSTO, ULICE, DUM, PSČ). F: {MĚSTO, ULICE} PSČ, PSČ MĚSTO Dekompozice: SEZNAM_POŠT(PSČ, MĚSTO) POŠTOVNÍ_RAJON(PSČ, ULICE, DUM) Ve schématu SEZNAM_POŠT lze kontrolovat původní funkční závislost PSČ MĚSTO. Původní závislost {MĚSTO, ULICE} PSČ pokryta není. 3

Pokrytí původní množiny závislostí F Příklad: FILM1(JMÉNO_F, ROK, HEREC, PŘÍSLUŠNOST) F: HEREC PŘÍSLUŠNOST, JMÉNO_F HEREC, JMÉNO_F PŘÍSLUŠNOST Dekompozice podle HEREC PŘÍSLUŠNOST: OSOBNÍ_ÚDAJE(HEREC, PŘÍSLUŠNOST), HEREC PŘÍSLUŠNOST FILM2(JMÉNO_F, ROK, HEREC), JMÉNO_F HEREC Závislost JMÉNO_F PŘÍSLUŠNOST je pokryta, protože je odvoditelná ze závislostí, které platí na schématech OSOBNÍ_ÚDAJE a FILM2. 4

Pokrytí původní množiny závislostí F Definice: Mějme schéma databáze R = {S(A,F)} a dekompozici R D = {(R i (A i ),F i ), 1 i n, n 1}. Řekneme, že R D má vlastnost pokrytí závislostí, jestliže n F + = ( F i ) + i=1 5

Pokrytí původní množiny závislostí F Příklad: JIZDA(C_AUTA, RIDIC, TYP,OBSAH_M) F: C_AUTA TYP... nevyhovuje 2NF TYP OBSAH_M... nevyhovuje 3NF žádná FZ není pokryta Dekompozice1: R1(TYP,RIDIC), R2(C_AUTA,RIDIC,OBSAH_M) obě původní FZ jsou pokryty Dekompozice3 (začneme podle 2. FZ ): R1(TYP, OBSAH_M ), TYP OBSAH_M R2(C_AUTA, RIDIC, TYP),C_AUTA TYP 2. původní FZ není pokryta Dekompozice2 ( podle 1. FZ ): R1(C_AUTA,TYP),C_AUTA TYP R2(C_AUTA, RIDIC, OBSAH_M) 6

Bezztrátové spojení (P2) Nové relace by měly obsahovat "stejná" data, jaká by obsahovala původní relace. Dekompozici schématu lze považovat za několik projekcí původní relace na množiny atributů nových schémat. Kvalitní dekompozice bude taková, která bude mít vlastnost zpětného bezztrátového spojení. Pro každou přípustnou relaci S* by mělo platit n S * = S i* [A i ] i=1 7

Příklad špatné dekompozice není bezztrátová! Proveďme dekompozici Z* ZAPIS(PŘEDN, STUD) HODN (PŘEDN, ZN) ZAPIS * :=Z * [PŘEDN, STUD] ZAPIS Z PŘEDN STUD Programování Novák Programování Volák Systémy Zíka Systémy Tupý Systémy Bílý Systémy Novák Z PŘEDN STUD ZN Programování Novák 2 Programování Volák 3 Systémy Zíka 1 Systémy Tupý 2 Systémy Novák 2 Systémy Bílý 1 HODN HODN:=Z * [PŘEDN, ZN] Z2 PŘEDN ZN Programování 2 Programování 3 Systémy 1 Systémy 2 Systémy 1 Zpětné spojení bude "větší" než původní Z*. Bude např. obsahovat n-tici (Programování, Novák, 3). Zpětné spojení není bezztrátové. Přestože obdržíme více n-tic, informace je méně, nevíme, co platí a co ne. 8

Bezztrátové spojení (P2) Tvrzení: Nechť S(A) je schéma relace a {S i (A i )}, i <1,n>, n>1, určuje jeho dekompozici. Pak pro každou relaci S* platí Aby platila rovnost, je třeba provést dekompozici dostatečně smysluplně. n S * S * i [A i ] i=1 Tvrzení: Mějme schéma R(A,B,C), kde A,B,C jsou disjunktní množiny atributů, a funkční závislost B C. Rozložíme-li R na schémata R1(B,C) a R2(A,B), je takto provedená dekompozice bezztrátová. Naopak, je-li dekompozice R1(B,C) a R2(A,B) bezztrátová, musí platit buď B C nebo B A. 9

Bezztrátové dekompozice - příklad Dekompozice může mít vlastnost bezztrátového spojení, nemusí však mít vlastnost pokrytí závislostí. ADRESÁŘ(MĚSTO, ULICE, DUM, PSČ). F: (MĚSTO,ULICE) PSČ, PSČ MĚSTO Dekompozice (bezztrátová) : SEZNAM_POŠT(PSČ, MĚSTO) POŠTOVNÍ_RAJON(PSČ, ULICE, DUM) PSČ MĚSTO (platí dále) {MĚSTO, ULICE} PSČ (tuto FZ jsme ztratili) 10

Bezztrátová dekompozice - úvaha Má-li dekompozice vlastnost pokrytí závislostí, nemusí být bezztrátová. Například: R(A,C,B,D) F: A B,C D (R1 R2) * R * jak to napravíme? R1(A,B), A B R2(C,D), C D R3(A,C) (R3 R1 R2) * = R * 11

Pokrytí závislostí a bezztrátové spojení Důsledek porušení pokrytí závislostí (P1): CHUDŠÍ SÉMANTIKA Důsledek porušení bezeztrátovosti (P2): NEJDE O STEJNÁ DATA 12

Algoritmus dekompozice postup: Schémata se rozkládají binárně dle tvrzení o bezeztrátové dekompozici Strategie: nalomit tranzitivitu, dekomponovat podle FZ, která způsobuje, že schéma není v 3NF. Každé nové schéma se testuje na 3NF výsledek: R(K, C, D), C D je ve 3NF je zachována bezeztrátovost obecně nejsou pokryty závislosti R1(C, D), R2(K,C) 13

Algoritmus dekompozice řešení 1 Příklad univerzita: F: P U, HM P, HU M, PS Z, HS M výsledek RIII ={ PSZ, PU, PHM, HSM } 14

Algoritmus dekompozice řešení 2 Příklad univerzita: F: P U, HM P, HU M, PS Z, HS M Dekompozice do BCNF varianta 2 výsledek RIV ={ PSZ, PU, PHM, HSP} PH M je odvoditelná z F 15

Úprava množiny FZ - pojmy V Algoritmu normalizace jsme mlčky předpokládali, že empiricky zjištěná F je v prvním kroku konsolidovaná. Chtěli bychom nějaké rozumné pokrytí F jedním takovým je minimální pokrytí. Závislost, která má na pravé straně jeden atribut, nazýváme elementární funkční závislost. Množina všech funkčních závislostí odvoditelných z F se nazývá uzávěr F. Značíme: F +. 16

Úprava množiny funkčních závislostí - pojmy Pokrytí množiny funkčních závislostí F je množina funkčních závislostí G, taková, že G + = F + Je-li F' množina elementárních závislostí, která vznikne z F dekompozicí jejích neelementárních závislostí, platí F + = F' +. Vzniklo tak kanonické pokrytí Závislost f je redundantní v F, jestliže je odvoditelná ze zbytku F (F - { f }) + = F + Odstraněním všech redundancí vznikne neredundantní pokrytí F Nereduntnantních pokrytí může být více. 17

Úprava množiny funkčních závislostí - motivace Příklad: První den jsme empiricky odhalili F = {AC B, BC D} Druhý den odhalíme AC D Ověřme, zda přináší novou informaci. 1. AC Β 2. AC C } AC BC } AC D 3. BC D Úloha: Zjistit, zda f je redundantní v F, tj. zda (F - { f }) + = F + Neredundantní pokrytí není dáno jednoznačně {AC D} F + Přidáním by vznikla redundance Nered. pokrytí nemusí být podmnožinou F, může vzniknout z F + 18

Úprava množiny funkčních závislostí Uzávěr množiny atributů X + vzhledem k F je množina všech atributů funkčně závislých na X. Označujeme jej X + Obsahuje-li F závislost X Y a existuje atribut A X takový, že platí (X-A) + = X +, říkáme, že A je na levé straně dané závislosti redundantním atributem Př.: AB Y F; jestliže B + F = AB + F, potom A je redundantní Závislost, u které neexistují na levé straně žádné redundantní atributy se nazývá redukovaná závislost 19

Úprava množiny FZ konstrukce min. pokr. příklad Příklad : F: AB C, C Α, BC D, ACD B, D EG, BE C, CG BD, CE AG x do kanonického tvaru F : AB C, C Α, BC D, ACD B, D E, D G, BE C, CG B, CG D, CE A, CE G redukce redundantních atributů F : AB C, C Α, BC D, CD B, D E, D G, BE C, CG B, CG D, CE A, CE G redukce redundantních FZ F : AB C,C Α,BC D,CD B, D E, D G, BE C, CG D, CE G 20

Úprava množiny funkčních závislostí Algoritmus nalezení neredundantního pokrytí pro množinu elementárních funkčních závislostí F'. Vstup: F' nad množinou atributů A relace R(A) Výstup: neredundantní pokrytí G begin G := F for each f G do if f (G - { f }) + then G := G - { f } end 21

Úprava množiny FZ konstrukce min. pokr. Algoritmus nalezení minimálního pokrytí pro množinu funkčních závislostí. Vstup: F nad množinou atributů A relace R(A) Výstup: minimální pokrytí G begin 1. Dekomponuj pravé strany funkčních závislostí, tedy převeď FZ do elementárního tvaru, sestroj pro F kanonické pokrytí F. 2. Odstraň redundantní atributy, tedy uprav F' na F tak, aby všechny f byly redukované. 3. Odstraň redundantní funkční závislosti, tedy pro F vytvoř neredundantní pokrytí F end 22

Úprava množiny FZ konstrukce min. pokr. - příklad 2 Příklad 3.4.3. Nechť je dáno schéma R(A,B,C,D) a F = {A AC, B ABC, D ABC} Spočti minimální pokrytí Krok 1: převedení na elementární závislosti: F'= {A A, A C, B A, B B, B C, D A, D B, D C} Krok 2: redukce levých stran: Všechny závislosti jsou již redukované Krok 3: eliminace redundantních FZ A A, B Β jsou triviální A C? B A? B C? (platí B A a A C, tedy B C F + ) D A? (když ji vyřadíme, stále bude platit D+= DABC) D B? D C? Výsledné neredundantní pokrytí G pro F' ( minimální) je G = {A C, B A, D B} Co je klíč? Je R(A,B,C,D),G ve 3NF? 23

Bernsteinův algoritmus syntézy Vypočti minimální pokrytí Rozděl závislosti podle levých stran do skupin Každá skupina vytvoří jednu relaci Zkontroluj, aby v jedné relaci byl celý klíč univerzálního schématu, pokud není přidej takovou relaci do výsledku. Výsledek je ve 3NF. Algorigmus zachovává obě vlastnosti bezztrátovou dekompozici a pokrytí množiny funkčních závislostí. 24