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

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

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

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)

Databázové systémy Tomáš Skopal

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ů 1. cvičení

NORMALIZACE Část 2 1

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

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

5. Formalizace návrhu databáze

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

5. Formalizace návrhu databáze

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

Databáze. Logický model DB. David Hoksza

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

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

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

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

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

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

Teorie zpracování dat

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

Informační systémy ve zdravotnictví. 8. cvičení

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

DBS Normální formy, normalizace

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

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

11. blok Normalizace. Studijní cíl

Informační systémy ve zdravotnictví. 6. cvičení

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

Kvalita relačního schématu, normalizace

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

Návrh databázového modelu

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

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

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

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

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

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

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

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

Databázové systémy Tomáš Skopal

Relační databáze. V dnešní době existuje řada komerčních DBMS, nejznámější jsou:

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

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í

Informační systémy ve zdravotnictví. 10. cvičení

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

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

4IT218 Databáze. 4IT218 Databáze

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

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

TEORIE ZPRACOVÁNÍ DAT

A5M33IZS Informační a znalostní systémy. Relační databázová technologie

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

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

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

Normalizace rela ního schématu

Hierarchický databázový model

Testování a spolehlivost. 1. Laboratoř Poruchy v číslicových obvodech

Databázové systémy. Datová integrita + základy relační algebry. 4.přednáška

RELAČNÍ DATABÁZOVÉ SYSTÉMY

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

Úvod do databázových systémů 2012/2013 IS MHD. Jiří Znoj zno

Databázový systém označuje soubor programových prostředků, které umožňují přístup k datům uloženým v databázi.

Databázové systémy. Vztahy a relace. 3.přednáška

30. března Je možné dle analýzy implementovat systém tak, aby splňoval požadavky zadavatele?

Databázové systémy BIK-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.

Databáze Bc. Veronika Tomsová

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

Relace x vztah (relationship)

5. POČÍTAČOVÉ CVIČENÍ

DATABÁZE A INFORMAČNÍ SYSTÉMY

Terminologie v relačním modelu

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

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

Strukturované metodologie

Jaký je rozdíl v definicicíh VARCHAR2(20 BYTE) a VARCHAR2(20 CHAR):

C8 Relační databáze. 1. Datový model

Úvod do databázových systémů. Ing. Jan Šudřich

8.2 Používání a tvorba databází

Relační model dat (Codd 1970)

S databázemi se v běžném životě setkáváme velmi často. Uvádíme běžné použití databází velkého rozsahu:

A5M33IZS Informační a znalostní systémy. O čem předmět bude? Úvod do problematiky databázových systémů

KMA/PDB. Karel Janečka. Tvorba materiálů byla podpořena z prostředků projektu FRVŠ č. F0584/2011/F1d

Databázové systémy. Ing. Radek Holý

Relační DB struktury sloužící k optimalizaci dotazů - indexy, clustery, indexem organizované tabulky

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

Technické informace. PA152,Implementace databázových systémů 4 / 25. Projekty. pary/pa152/ Pavel Rychlý

2.5 Rovnováha rovinné soustavy sil

Vektorový prostor. d) Ke každému prvku u V n existuje tzv. opačný prvek u, pro který platí, že u + u = o (vektor u nazýváme opačný vektor k vektoru u)

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

Microsoft. Access. Databáze s více tabulkami. Mgr. Jan Veverka Střední odborná škola sociální Evangelická akademie

Databázové a informační systémy

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

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

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

DBS Konceptuální modelování

Transkript:

Vysoká škola báňská Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Úvod do databázových systémů Cvičení 12 Ing. Petr Lukáš petr.lukas@vsb.cz Ostrava, 2014

Opakování Univerzální relační schéma Funkční závislost Armstrongovy axiomy Uzávěry množiny atributů Klíč schématu Minimální neredundantní pokrytí

Opakování Univerzální relační schéma široká nepřehledná tabulka, která obsahuje všechny atributy (např. modelovaného systému) Funkční závislost ze znalosti hodnot nějaké množiny hodnot atributů (a samozřejmě obsahu databáze) znám i množinu hodnot jiných atributů. Armstrongovy axiomy odvozovací pravidla pro funkční závislosti. Uzávěry množiny atributů hodnoty kterých všech atributů jsem schopný získat na základě určité dané množiny atributů Klíč schématu atributy, kterými jednoznačně identifikuji celý záznam, tzn. pokud znám hodnoty těchto atributů, umím v univerzálním schématu dohledat obsah celého záznamu Minimální neredundantní pokrytí rozložím FZ na elementární FZ, z levých stran odstraním nadbytečné atributy a nakonec celé nadbytečné FZ.

Pojmy Redundance, konsistence, integrita Normální formy relací Algoritmický návrh databáze

Pojmy Redundance, konsistence, integrita

Redundance, Konzistence login jmeno prijmeni id_fakulty nazev_fakulty kab242 Prokop Kabel 1 FEI bet102 Zdislava Betonová 1 FEI jed135 Tomáš Jedno 2 FBI

Redundance, Konzistence login jmeno prijmeni id_fakulty nazev_fakulty kab242 Prokop Kabel 1 FEI bet102 Zdislava Betonová 1 FEI EKF jed135 Tomáš Jedno 2 FBI Co se stane, když změním název fakulty pro bet102?

Redundance, Konzistence login jmeno prijmeni id_fakulty nazev_fakulty kab242 Prokop Kabel 1 FEI bet102 Zdislava Betonová 1 FEI EKF jed135 Tomáš Jedno 2 FBI Co se stane, když změním název fakulty pro bet102? Stejnému ID fakulty bude pokaždé odpovídat jiný název a to je zjevně nesmysl. Data budou tzv. nekonzistentní.

Redundance, Konzistence login jmeno prijmeni id_fakulty nazev_fakulty kab242 Prokop Kabel 1 FEI bet102 Zdislava Betonová 1 FEI EKF jed135 Tomáš Jedno 2 FBI Co se stane, když změním název fakulty pro bet102? Stejnému ID fakulty bude pokaždé odpovídat jiný název a to je zjevně nesmysl. Data budou tzv. nekonzistentní. Co se stane, když smažu záznam pro jed135?

Redundance, Konzistence login jmeno prijmeni id_fakulty nazev_fakulty kab242 Prokop Kabel 1 FEI bet102 Zdislava Betonová 1 FEI EKF jed135 Tomáš Jedno 2 FBI Co se stane, když změním název fakulty pro bet102? Stejnému ID fakulty bude pokaždé odpovídat jiný název a to je zjevně nesmysl. Data budou tzv. nekonzistentní. Co se stane, když smažu záznam pro jed135? Pokud nebudu mít k dispozici jinou tabulku s fakultami, nadobro ztratím informace o fakultě FBI.

Redundance, Konzistence Redundance Znamená obecně nadbytečnost dat. Stejná data jsou v databázi uchovávána vícekrát a to je obvykle nežádoucí jev. Konzistence Když už redundance nastane (což se prakticky může stát), musíme zajistit, aby data nebyla nekonzistentní (viz příklad na předchozím slidu). Tzn. konzistence je naopak žádoucí jev. Nekonzistence je důsledkem redundance.

Integrita id_republiky nazev hlavni_mesto Prezident 1 Česká republika Praha Václav Havel 2 USA Washington Arnold Schwarzenegger 3 Německo Bonn Richard von Weizsäcker Co je na datech na první pohled v nepořádku?

Integrita id_republiky nazev hlavni_mesto Prezident 1 Česká republika Praha Václav Havel 2 USA Washington Arnold Schwarzenegger 3 Německo Bonn Richard von Weizsäcker Co je na datech na první pohled v nepořádku? Při troše základního vzdělání minimálně víme, že dnes, v roce 2013, Václav Havel určitě už není současný prezident ČR, Arnold není prezidentem USA (i když by si to asi přál) a Bonn není současným hlavním městem Německa. Data nejsou integritní.

Integrita Integrita Integrita dat znamená soulad se zobrazovanou realitou. Integrita je žádoucí jev. Integritou také rozumí, že jsou dodržena všechna definovaná integritní omezení v databázi, tzn. např. neexistuje cizí klíč, který by se odkazoval na neexistující ID. login jmeno prijmeni id_fakulty kab242 Prokop Kabel 1 bet102 Zdislava Betonová 2 jed135 Tomáš Jedno 3 id_faulkty nazev_fakulty 1 FEI 2 FBI?

Normální formy relací Normální formy relací

1. normální forma Relace je v 1. normální formě, jestliže obsahuje pouze atomické (dále nedělitelné) atributy. login jmeno adresa kab242 Prokop Za Mostem 23, Ostrava-Svinov bet102 Zdislava 710 00, Slezská Ostrava, Bohumínská 22 jed135 Tomáš U točny 2, Psojedy, Česká republika Ukázková relace porušuje pravidlo pro 1. normální formu. Pokud bychom např. chtěli hromadně předtisknout obálky, asi bychom s takto uvedenou adresou moc dobře nepořídili. Na druhou stranu co je to atomický atribut není jednoznačně dáno. Co má např. obsahovat atribut ulice? Atomičnost je potřeba citlivě volit podle účelu systému.

2. normální forma Relace je ve 2. normální formě, jestliže je v 1. NF a každý neklíčový atribut (tj. ten, který není součástí žádného klíče) je úplně závislý na každém klíči. Tzn. není závislý na žádném podklíči. hodina ucebna predmet kapacita 10:45 A1033 UDBS 16 7:15 G317a DAIS 20 9:30 A1033 MAIT 16 Ukázka opět porušuje 2. NF, protože platí funkční závislost ucebna kapacita, ale klíčem relace jsou dohromady hodina a ucebna. Tzn. kapacita je závislá na podklíči a to je špatně.

3. normální forma Relace je ve 3. normální formě, jestliže je ve 2. NF a neexistují netriviální závislosti mezi neklíčovými atributy. login jmeno prijmeni id_fakulty nazev_fakulty kab242 Prokop Kabel 1 FEI bet102 Zdislava Betonová 1 FEI jed135 Tomáš Jedno 2 FBI Název fakulty a její id jsou dva neklíčové atributy, mezi kterými existuje funkční závislost id_fakulty nazev_fakulty. Tato relace tedy není ve 3. normální formě.

Boyce-Coddova normální forma Relace je v BCNF, jestliže pro každou netriviální funkční závislost X Y platí, že X je klíč nebo nadklíč. sluzba zakaznik tarif internet Petr 10 GBit/s internet Jan 100 GBit/s telefon Petr SUPER telefon Pavel EXTRA V uvedeném příkladu je problém v tom, že existuje funkční závislost tarif sluzba. Tarify SUPER a EXTRA jsou vždy pro telefonní službu, zatímco 10 GBit/s a 100 GBit/s se vždy týkají internetu. V relaci tedy existuje závislost, kde levá strana netvoří klíč nebo nadklíč.

Algoritmický návrh databáze Algoritmický návrh databáze

Algoritmický návrh databáze Univerzální schéma Ať už zvolíme kterýkoli algoritmus pro návrh databáze, prvním krokem je vždy sestavení univerzálního schématu RU, tj. předpisu pro tabulku s komplet všemi atributy. Dekompozice univerzálního schématu Existují dva základní algoritmy Algoritmus dekompozice do BCNF Algoritmus dekompozice do 3.NF (často též nazýván jako algoritmus syntézy)

Algoritmus dekompozice do BCNF Najdeme FZ X Y, která porušuje podmínku BCNF, a provedeme rozklad schématu R na dvě schémata R 1 a R 2. Schéma R 1 bude obsahovat všechny atributy R bez atributů Y, druhé schéma R 2 bude obsahovat dohromady atributy X a Y. Rozkládáme tak dlouho, dokud existují relace a FZ, které porušují podmínku BCNF. Bohužel, záleží na tom, v jakém pořadí vytahujeme jednotlivé FZ a může dojít ke ztrátě informace nebo ztrátě funkční závislosti.

Algoritmus dekompozice do BCNF R (A, B, C, D, E, F, G) F: {AB C, C D, B E, E F, C G} ABCDEFG

Algoritmus dekompozice do BCNF R (A, B, C, D, E, F, G) F: {AB C, C D, B E, E F, C G} ABCDEFG AB C ABC ABDEFG

Algoritmus dekompozice do BCNF R (A, B, C, D, E, F, G) F: {AB C, C D, B E, E F, C G} ABCDEFG AB C ABC ABDEFG C D Problém, pokud v prvním kroku použiju neuváženě AB C, dostanu se do pasti, protože už nebudu moct nikde uplatnit C D. To znamená, že jsem přišel o funkční závislost a poruším tedy zákon o zachování množiny FZ.

Algoritmus dekompozice do BCNF R (A, B, C, D, E, F, G) F: {AB C, C D, B E, E F, C G} ABCDEFG C D ABCEFG CD

Algoritmus dekompozice do BCNF R (A, B, C, D, E, F, G) F: {AB C, C D, B E, E F, C G} ABCDEFG C D ABCEFG CD E F ABCEG EF

Algoritmus dekompozice do BCNF R (A, B, C, D, E, F, G) F: {AB C, C D, B E, E F, C G} ABCDEFG C D ABCEFG CD E F ABCEG EF B E ABCG BE

Algoritmus dekompozice do BCNF R (A, B, C, D, E, F, G) F: {AB C, C D, B E, E F, C G} ABCDEFG C D ABCEFG CD E F ABCEG EF B E ABCG BE C G ABC CG

Algoritmus dekompozice do BCNF R (A, B, C, D, E, F, G) F: {AB C, C D, B E, E F, C G} ABCDEFG C D ABCEFG CD E F ABCEG EF B E ABCG BE C G ABC CG AB C ABC

Algoritmus dekompozice do BCNF Získali jsme tedy rozklad R 1 (CD), R 2 (EF), R 3 (BE), R 4 (CG), R 5 (ABC) Je jasné, že výsledná schémata musí být v BCNF, protože jestliže existovala FZ, která porušovala BCNF, pak podle této FZ musel proběhnout rozklad.

Algoritmus dekompozice do 3. NF 1. Sestavíme minimální neredundantní pokrytí množiny FZ a nalezneme klíč. Pro každou FZ vytvoříme zvlášť relaci. V prvním kroku je přesně tolik tabulek, kolik je FZ v min. nered. pokrytí. 2. Spojíme relace které vznikly z FZ se stejnými levými stranami. 3. Spojíme relace s ekvivalntními klíči, tzn. těmi klíči, jejichž uzávěr je stejný. V tomto kroku může dojít k porušení podmínek pro BCNF! 4. Pokud existuje atribut univerzálního schématu, který dosud není zařazen v žádné ze vzniklých relací (tzn. nebyl obsažen v žádné FZ), pak jej přidáme do libovolné vzniklé relace. 5. Pokud žádná z relací neobsahuje celý klíč univerzálního schématu, pak vytvoříme novou relaci, která se bude skládat z atributů tohoto klíče.

Algoritmus dekompozice do 3. NF R (A, B, C, D, E, F, G) F: {AB C, C D, B E, E F, C G} 1. Minimální neredundantní pokrytí a vytvoření mnoha malých relací. Klíč schématu je AB. RO 1 = (R 1 (ABC), R 2 (CD), R 3 (BE), R 4 (EF) R 5 (CG)) 2. Spojíme relace, které vznikly z FZ se stejnými levými stranami. Žádné takové nejsou, takže RO 2 = RO 1 3. Spojíme relace s ekvivalntními klíči Opět žádné nejsou, takže RO 3 = RO 2 4. Pokud zbyl nějaký nezpracovaný atribut, přidáme jej do kterékoli z relací. Nezbyl, takže nic, RO 4 = RO 3 5. Není-li klíč obsažen v žádné z relací, pak vytvoříme novou relaci obsahující atributy klíče. Klíč AB je obsažen v R 1, talže RO 5 = RO 4 a máme výsledek R 1 (ABC), R 2 (CD), R 3 (BE), R 4 (EF) R 5 (CG)

Shrnutí Redundance Nadbytečnost dat, stejná data jsou uchována vícekrát Konsistence Když už k redundanci dojde, musíme zajistit konzistenci dat Integrita Znamená soulad se zobrazovanou realitou 1. Normální forma Všechny atributy jsou atomické 2. Normální forma Každý neklíčový atribut je úplně závislý na klíči 3. Normální forma Neexistují netriviální závislosti mezi neklíčovými atributy BCNF Pro každou FZ platí, že levá strana je klíč nebo nadklíč Dekompozice Musí obsahovat všechny atributy, nesmí dojít ke ztrátě informace nebo funkční závislosti Algoritmus dekompozice do BCNF Algoritmus dekompozice do 3.NF

Cvičení www.dbedu.cs.vsb.cz Přihlášení přes jednotný login a heslo Vpravo sloupec -> České kurzy -> UDBS