5. Formalizace návrhu databáze

Podobné dokumenty
5. Formalizace návrhu databáze

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

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

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

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

Databáze. Logický model DB. David Hoksza

4. Relační model dat. J. Zendulka: Databázové systémy 4 Relační model dat 1

J. Zendulka: Databázové systémy 4 Relační model dat 1

Databázové systémy Tomáš Skopal

NORMALIZACE Část 2 1

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

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

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

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

2 Konceptuální modelování a návrh databáze

2 Konceptuální modelování a návrh databáze

Databáze I. 4. přednáška. Helena Palovská

8. Zpracování dotazu. J. Zendulka: Databázové systémy 8 Zpracování dotazu 1

J. Zendulka: Databázové systémy 8 Zpracování dotazu Podstata optimalizace zpracování dotazu

DBS Normální formy, normalizace

4IT218 Databáze. 4IT218 Databáze

Modely datové. Další úrovní je logická úroveň Databázové modely Relační, Síťový, Hierarchický. Na fyzické úrovni se jedná o množinu souborů.

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

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

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

Teorie zpracování dat

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

Kapitola 2: Entitně-vztahový model (Entity-Relationship model) Množiny entit (entitní množiny) Atributy

Materiál byl vytvořen v rámci projektu Nové výzvy, nové příležitosti, nová škola

Informační systémy 2008/2009. Radim Farana. Obsah. Obsah předmětu. Požadavky kreditového systému. Relační datový model, Architektury databází

2. Konceptuální model dat, E-R konceptuální model

Jiří Mašek BIVŠ V Pra r ha

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

7. Integrita a bezpečnost dat v DBS

7. Integrita a bezpečnost dat v DBS

1 Úvod. J. Zendulka: Databázové systémy - 1 Úvod 1

J. Zendulka: Databázové systémy - 1 Úvod Intuitivní vymezení pojmu databáze

Kvalita relačního schématu, normalizace

11. blok Normalizace. Studijní cíl

Relační databázový model. Vladimíra Zádová, KIN, EF, TUL- DBS

Primární klíč (Primary Key - PK) Je právě jedna množina atributů patřící jednomu z kandidátů primárního klíče.

Hierarchický databázový model

Databázové systémy BIK-DBS

Relační model reprezentuje databázi jako soubor relací. Kaţdá relace představuje tabulku nebo soubor (ve smyslu soubor na nosiči dat).

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

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

Marketingová komunikace. 2. soustředění. Mgr. Pavel Vávra Kombinované studium Skupina N9KMK1aPH/N9KMK1bPH (um1a1ph/um1b1ph)

10. Architektura klient/server a třívrstvá architektura

10. Architektura klient/server a třívrstvá architektura

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

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

Primární klíč, cizí klíč, referenční integrita, pravidla normalizace, relace

Databázové systémy. Tomáš Skopal. - úvod do relačního modelu. - převod konceptuálního schématu do relačního

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

12. Postrelační databázové systémy

Konceptuální modelování. Pavel Tyl

12. Postrelační databázové systémy

Terminologie v relačním modelu

Relační model dat (Codd 1970)

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

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

Střední průmyslová škola Zlín

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

Matematická analýza 1

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

Databáze Bc. Veronika Tomsová

Databázové systémy IDS

Obsah přednášky. Databázové systémy RDBMS. Fáze návrhu RDBMS. Coddových 12 pravidel. Coddových 12 pravidel

Normální formy. Zdeněk Kouba

Strukturované metodologie

DBS Transformace konceptuálního schématu na

Úvod do informatiky. Miroslav Kolařík

UČEBNÍ TEXTY OSTRAVSKÉ UNIVERZITY. Přírodovědecká fakulta RELAČNÍ DATABÁZE (DISTANČNÍ VÝUKOVÁ OPORA) Zdeňka Telnarová. Aktualizovaná verze 2006

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

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

2 Životní cyklus programového díla

Marketingová komunikace. 2. a 3. soustředění. Mgr. Pavel Vávra 9103@mail.vsfs.cz. Kombinované studium Skupina N9KMK3PH (vm3aph)

Predikátová logika. Teoretická informatika Tomáš Foltýnek

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

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

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

Predikátová logika. prvního řádu

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

TEORIE ZPRACOVÁNÍ DAT

Matematika 2 pro PEF PaE

Otázka č. 1 (bodů za otázku: 4)

teorie logických spojek chápaných jako pravdivostní funkce

Návrh databázového modelu

Normalizace rela ního schématu

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

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

Téma 9 Databáze úvod, modelování dat

RELACE, OPERACE. Relace

Téma 9 Databáze úvod, modelovánídat

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

DBS Konceptuální modelování

Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od podzimu 2015

4. Základy relačních databází, logická úroveň návrhu

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

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

Transkript:

5. Formalizace návrhu databáze 5.1. Úvod do teorie závislostí... 2 5.1.1. Funkční závislost... 2 5.1.2. Vícehodnotová závislost (multizávislost)... 7 5.1.3. Závislosti na spojení... 9 5.2. Využití teorie závislostí při návrhu databáze... 12 5.2.1. Normalizace... 13 5.2.2. Normální formy... 18 5.2.3. Obecný postup odstranění částečných a tranzitivních závislostí... 27 Literatura... 28 J. Zendulka: Databázové systémy 5 Formalizace návrhu databáze 1

- druhá významná teoretická podpora relačních databází 5.1. Úvod do teorie závislostí 5.1.1. Funkční závislost - hodnota atributu relace určuje jednoznačně hodnotu jiného atributu téže relace - zapisujeme X Y - vyplývá z významu atributů, předuje integritní omezení Př) Klient(, jméno, ulice, město) Hodnota rodného čísla jednoznačně určuje hodnoty ostatních atributů jméno ulice (jméno, ulice, město) město jméno (ulice, město) J. Zendulka: Databázové systémy 5 Formalizace návrhu databáze 2

Nechť X a Y jsou atributy relace R. Řekneme, že Y funkčně závisí na X, zapisujeme X Y, právě když pro libovolné dvě n-tice t 1 a t 2 každého přípustného u relace R platí, že je-li x 1, resp.y 1 hodnota atributu X, resp.y v n-tici t 1 a x 2, resp.y 2 hodnota atributu X,resp.Y v n-tici t 2 a x 1 =x 2, potom i y 1 =y 2. Diagram funkční závislosti Určující atribut (determinant) jméno ulice Závislý atribut město Praktický důsledek (integritní omezení): Opakuje-li se v relaci stejná hodnota determinantu, musí se opakovat i odpovídající stejné hodnoty závislého atributu. Triviální funkční závislost X Y platí pro každý atribut Y X. J. Zendulka: Databázové systémy 5 Formalizace návrhu databáze 3

Plná funkční závislost - atribut je funkčně závislý na celém složeném atributu a není funkčně závislý jen na některé jeho části Př) Disponuje(, jméno, město,,, limit) limit Plná jméno Částečná město Nechť X a Y jsou atributy relace R. Řekneme, že atribut Y je plně funkčně závislý na atributu X, právě když je funkčně závislý na X a není funkčně závislý na žádném atributu Z X. Praktický důsledek: je-li kandidátní klíč relace složený, stejné hodnoty složek se mohou opakovat musí se opakovat i hodnoty atributů, které jsou částečně (ne plně) závislé. J. Zendulka: Databázové systémy 5 Formalizace návrhu databáze 4

Př) jméno limit město 100 600528/0275 100000 Novák 10000 Praha 100 581015/9327 100000 Malá 3000 Brno 130 600528/0275 50000 Novák 5000 Praha 150 450205/3419 150000 Veselý 5000 Ostrava Tranzitivní závislost - atribut je funkčně závislý na jiném funkčně závislém atributu Př) Účet(,,, jméno) jméno Tranzitivní Nechť X a Y jsou atributy relace R a nechť platí X Y, avšak neplatí Y X, a nechť existuje atribut Z relace R, který není v X, ani Y, a platí Y Z. Potom říkáme, že Z je tranzitivně závislý na X. J. Zendulka: Databázové systémy 5 Formalizace návrhu databáze 5

Praktický důsledek: existuje-li funkční závislost na atributu, který není kandidátním klíčem, hodnota se může opakovat musí se opakovat i hodnoty závislého atributu. Př) jméno 100 100000 600528/0275 Novák 120 135000 581015/9327 Malá 130 50000 600528/0275 Novák 150 150000 450205/3419 Veselý J. Zendulka: Databázové systémy 5 Formalizace návrhu databáze 6

5.1.2. Vícehodnotová závislost (multizávislost) - hodnota atributu relace určuje jednoznačně množinu hodnot jiného atributu téže relace nezávisle na hodnotách ostatních atributů - zapisujeme X >> Y Př) Účet značí vlastníka, klient může mít více adres - nejsou funkční závislosti, ale informace se opakuje město 100 600528/0275 Praha 100 600528/0275 Brno 130 620726/1234 Praha 150 450205/3419 Ostrava Nechť A je množina atributů relace R a X, Y, Z jsou atributy R takové, že Z = A - (X Y). Řekneme, že relace R splňuje vícehodnotovou závislost Y na X (zapisujeme X >> Y), právě když množina hodnot atributu Y odpovídající libovolné dvojici (x, z), kde x je hodnota atributu X a z je hodnota atributu Z, závisí pouze na hodnotě x a nezávisí na z. J. Zendulka: Databázové systémy 5 Formalizace návrhu databáze 7

Věta (integritní omezení plynoucí z vícehodnotové závislosti): Relace R splňuje vícehodnotovou závislost X >> Y, právě když jsou-li {x, y, z} a {x, y', z'} n-tice relace R, potom i {x, y', z} a {x, y, z'} jsou n-tice R. Př) Vložení informace o novém účtu klienta s RČ 600528/0275 Triviální vícehodnotová závislost X >> Y platí pro každý atribut Y takový, že Y X nebo X Y = A Pravidlo doplňku V relaci R s množinou atributů A platí vícehodnotová závislost X >> Y, právě když platí i závislost X >> A - Y. J. Zendulka: Databázové systémy 5 Formalizace návrhu databáze 8

5.1.3. Závislosti na spojení - relaci lze získat spojením relací, jejichž schéma je dekompozici schématu původní relace - zapisujeme *(R 1, R 2,, R n ), kde R 1, R 2,, R n tvoří dekompozici R Př) Dodavatel Produkt Projekt Sémantika: Dodává-li dodavatel Sx produkt Py a Py je používán v projektu Gz a dodavatel Px dodává pro projekt Gz, pak Sx dodává Py pro Gz (tzv. 3D omezení). dodavatel produkt projekt S1 P1 G2 S1 P2 G1 S2 P1 G1 S1 P1 G1 Relace R splňuje závislost na spojení *(X, Y,..., Z), právě když je relace R rovna spojení projekcí na X, Y,..., Z, kde X, Y,..., Z jsou podmnožiny atributů relace R. J. Zendulka: Databázové systémy 5 Formalizace návrhu databáze 9

Triviální závislost na spojení Závislost na spojení *(X, Y,..., Z) platí vždy, je-li některá z podmnožin atributů X, Y,..., Z rovna množině atributů A relace R. - závislost na spojení opět vede na integritní omezení Př) Problémy aktualizace: vložení (S2, P3, G2) nutnost vložení i (S2, P1, G2) zrušení (S1, P1, G1) nutnost zrušit i některou ze zbývajících tří n-tic J. Zendulka: Databázové systémy 5 Formalizace návrhu databáze 10

dodavatel S1 S1 S2 S1 produkt P1 P2 P1 P1 projekt G2 G1 G1 G1 dodavatel produkt produkt projekt dodavatel projekt S1 S1 S2 P1 P2 P1 P1 P2 P1 G2 G1 G1 S1 S1 S2 G2 G1 G1 dodavatel produkt projekt S1 P1 G2 S1 P1 G1 S1 S2 P2 P1 G1 G2 S2 P1 G1 Původní relace J. Zendulka: Databázové systémy 5 Formalizace návrhu databáze 11

5.2. Využití teorie závislostí při návrhu databáze - proces návrhu založený na teorii závislostí se nazývá normalizace. Postup návrhu: seznam atributů (univerzální relace) postupná dekompozice na schéma v dostatečně vysoké normální formě Praktický postup: datový model (ER diagram) transformace na schéma relační databáze zjemnění využitím normalizace resp. normalizace ER modelu před transformací. Hlavní problémy špatného návrhu: opakující se informace (redundance), nemožnost reprezentovat určitou informaci, ztráta informace, složitá kontrola integritních omezení. Př) Účet1(,,,, jmění) Předpokládejme, že s účtem může disponovat více osob. jmění 100 600528/0275 100000 Jánská 10000000 100 581015/9327 100000 Jánská 10000000 130 600528/0275 50000 Palackého 5000000 150 450205/3419 150000 Palackého 5000000 J. Zendulka: Databázové systémy 5 Formalizace návrhu databáze 12

5.2.1. Normalizace - postupná transformace tabulky do vhodnějšího tvaru (postupná dekompozice) Nechť R(A) je schéma relace R. Množina schémat {R 1 (A 1 ), R 2 (A 2 ),..., R n (A n )} je dekompozicí schématu R(A), jestliže A = A 1 A 2... A n R(A) R 1 (A 1 ) R 2 (A 2 ) Žádoucí vlastnosti dekompozice: bezeztrátovost při zpětném spojení zachování závislostí odstranění opakování informace (redundance) Bezeztrátová dekompozice (Lossless-Join/Nonloss decomp.) - spojení tabulek, které vzniknou dekompozicí musí dát přesně původní tabulku J. Zendulka: Databázové systémy 5 Formalizace návrhu databáze 13

Př) Účet1(,,,, jmění) viz předchozí Stav jmění 100 600528/0275 100000 Jánská 10000000 100 581015/9327 100000 Jánská 10000000 130 600528/0275 50000 Palackého 5000000 150 450205/3419 150000 Palackého 5000000 Účet_v_pob(,,, jmění), jmění 100 600528/0275 Jánská 10000000 100 581015/9327 Jánská 10000000 130 600528/0275 Palackého 5000000 150 450205/3419 Palackého 5000000 Stav(, ) 600528/0275 100000 581015/9327 100000 600528/0275 50000 450205/3419 150000 jmění 100 600528/0275 100000 Jánská 10000000 100 600528/0275 50000 Jánská 10000000 100 581015/9327 100000 Jánská 10000000 130 600528/0275 50000 Palackého 5000000 130 600528/0275 100000 Palackého 5000000 150 450205/3419 50000 Palackého 5000000 J. Zendulka: Databázové systémy 5 Formalizace návrhu databáze 14

Podmínka bezeztrátové dekompozice: Pro relacemi se schématy R1(A1) a R2(A2): A1 A2 A1 nebo A1 A2 A2, tj. společný atribut musí být kandidátním klíčem alespoň jedné z tabulek. Př) Účet_a_pob jmění Disponuje Stav jmění 100 100000 Jánská 10000000 130 50000 Palackého 5000000 150 150000 Palackého 5000000 100 600528/0275 100 581015/9327 130 600528/0275 150 450205/3419 J. Zendulka: Databázové systémy 5 Formalizace návrhu databáze 15

Zachování závislostí - všechny původní závislosti musí být zachovány a snadno kontrolovatelné (v rámci jedné tabulky) Př) jmění jmění Odstranění opakování informace Př) jmění 100 100000 Jánská 10000000 130 50000 Palackého 5000000 150 150000 Palackého 5000000 J. Zendulka: Databázové systémy 5 Formalizace návrhu databáze 16

jmění jmění Účet 100 100000 Jánská 130 50000 Palackého 150 150000 Palackého Pobočka jmění Jánská 10000000 Palackého 5000000 Boyce-Coddova normální forma (BCNF) - odstraňuje opakování informace - všechny netriviální funkční závislosti jsou dány závislostí na kandidátních klíčích - ne každá dekompozice do BCNF zachovává závislosti potom stačí 3NF J. Zendulka: Databázové systémy 5 Formalizace návrhu databáze 17

5.2.2. Normální formy - definuje požadavek na vlastnosti schématu relace z pohledu závislostí mezi atributy - hierarchie normálních forem (Codd: 1NF až 3NF, BCNF, 4NF, 5NF), tj. n-tá normální forma musí splňovat podmínky (n-1) normální formy a něco navíc. Požadavky na návrh založený na normalizaci: bezeztrátovost dekompozice zachování závislostí dosažení minimálně BCNF, resp. 3NF První normální forma (1NF) Relace je v první normální formě, právě když všechny její jednoduché domény obsahují pouze atomické hodnoty. Př) Účet1(,,,, jmění) J. Zendulka: Databázové systémy 5 Formalizace návrhu databáze 18

Druhá normální forma (2NF) Relace je ve druhé normální formě, právě když je v 1NF a každý její neklíčový atribut, je plně funkčně závislý na každém kandidátním klíči. Př) Účet2 Disponuje jmění Disponuje Účet2 jmění Účet1 jmění Účet2 jmění Disponuje J. Zendulka: Databázové systémy 5 Formalizace návrhu databáze 19

jmění 100 100000 Jánská 10000000 130 50000 Palackého 5000000 150 150000 Palackého 5000000 600528/0275 100 581015/9327 100 600528/0275 130 450205/3419 150 Třetí normální forma (3NF) Relace je ve třetí normální formě, právě když je ve 2NF a neexistuje žádný neklíčový atribut, který je tranzitivně závislý na některém kandidátním klíči. Př) Pobočka jmění Účet3 jmění Pobočka Účet3 J. Zendulka: Databázové systémy 5 Formalizace návrhu databáze 20

Účet1 jmění Účet2 jmění Disponuje Účet3 Disponuje Pobočka jmění jmění Jánská 10000000 Palackého 5000000 1035853 100000 Jánská 1348427 50000 Palackého 1529054 150000 Palackého J. Zendulka: Databázové systémy 5 Formalizace návrhu databáze 21

Boyce - Coddova normální forma (BCNF) Př) Disponuje(, č_klienta, ) č_zákazníka Zákazník č_zákazníka Disponuje č_zákazníka - může existovat několik kandidátních klíčů, - kandidátní klíče mohou být složené, - kandidátní klíče se mohou překrývat - 3NF připouští tranzitivní závislosti mezi klíčovými atributy Relace je v Boyce-Codově normální formě, jestliže pro každou netriviální funkční závislost X Y je X superklíčem. J. Zendulka: Databázové systémy 5 Formalizace návrhu databáze 22

Př) Student_předmět_učitel(student, předmět, učitel) Sémantika: - každého studenta učí z daného předmětu jen jeden učitel, každý učitel učí jen jeden předmět, - jeden předmět může učit několik učitelů student předmět učitel Novák matematika Prof.Adam Novák fyzika Doc.Kovář Veselý matematika Prof.Adam Veselý fyzika Doc.Zelený student předmět učitel - dekompozice Učí_předmět(učitel, předmět) a Učí_studenta(student, učitel) nezachovává závislosti v rámci relací (relace nejsou nezávislé) zachování závislostí a dosažení BCNF není vždy splnitelné J. Zendulka: Databázové systémy 5 Formalizace návrhu databáze 23

Př) Zkoušky (student, předmět, pozice) Sémantika: Dva studenti nemohou být na stejné pozici v jednom předmětu. student předmět pozice Novák matematika 10 Veselý matematika 7 Novák fyzika 5 Veselý fyzika 2 překrývající se kandidátní klíče ještě nemusí způsobovat problémy J. Zendulka: Databázové systémy 5 Formalizace návrhu databáze 24

Čtvrtá normální forma (4NF) Př) Účet je r.čésůo vlastníka, klient může mít více účtů i adres. Relace je v BCNF, ale obsahuje redundanci. město 100 600528/0275 Praha 100 600528/0275 Brno 130 620726/1234 Praha 150 450205/3419 Ostrava Relace je ve čtvrté normální formě, jestliže pro každou netriviální vícehodnotovou závislost X >> Y je X superklíčem v R. Př) Účet(,, město) Účet4(, ), Adresa(, město) - je ve BCNF a všechny vícehodnotové závislosti jsou ve skutečnosti závislostmi funkčními. J. Zendulka: Databázové systémy 5 Formalizace návrhu databáze 25

Př) Učebnice pro předmět je předepsaná, neurčuje učitel předmět učitel učebnice fyzika Doc.Kovář Fyzika I fyzika Doc.Kovář Sbírka úloh z fyziky fyzika Doc.Zelený Fyzika I fyzika Doc.Zelený Sbírka úloh z fyziky Pátá normální forma (5NF, PJ/NF) Relace je v páté normální formě, jestliže pro každou netriviální závislost na spojení *(R 1, R 2,, R n ) je každá množina atributů R i (i=1, 2,, n) superklíčem v R. J. Zendulka: Databázové systémy 5 Formalizace návrhu databáze 26

Normální forma schématu databáze Návrh databáze je v n-té normální formě, je-li každá jeho relace (schéma) alespoň v n-té normální formě. 5.2.3. Obecný postup odstranění částečných a tranzitivních závislostí Převod do 2NF R(A, B, C, D, E) R1(A, C, D, E) PRIMARY KEY (A,B) PRIMARY KEY (A) A C R2(A, B) A D PRIMARY KEY(A,B) A E FOREIGN KEY(A) REFERENCES R1 Převod do 3NF R(A, B, C, D) R1(C, D) PRIMARY KEY (A) PRIMARY KEY (C) C D R2(A, B, C) PRIMARY KEY(A) FOREIGN KEY(C) REFERENCES R1 J. Zendulka: Databázové systémy 5 Formalizace návrhu databáze 27

Literatura 1. Silberschatz, A., Korth H.F, Sudarshan, S.:Database System Concepts. Fourth Edition. McGRAW-HILL. 2001, str. 79 131. 2. Pokorný, J.: Dotazovaci jazyky. Science, Veletiny, 1994, str. 21 46. 3. Pokorný, J.: Databazová abeceda. Science, Veletiny, 1998, str. 35 38, 53 57, 201 204. J. Zendulka: Databázové systémy 5 Formalizace návrhu databáze 28