4IT218 Databáze Osmá přednáška Dušan Chlapek (katedra informačních technologií, VŠE Praha) 4IT218 Databáze Osmá přednáška Normalizace dat - dokončení Transakce v databázovém zpracování
Program přednášek (12 přednášek) Týden Kalendář Program 1. 39 Cíle předmětu, základní pojmy, relační algebra. 2. 40 Databázové jazyky. SQL - Přehled norem jazyka SQL. SQL příkaz Select. Vlastnosti relačních databázových systémů. 3. 41 SQL - dokončení manipulačních příkazů, definiční příkazy. 4. 42 Nástroje dbs ORACLE pro zadávání a ladění příkazů SQL. 5. 43 Vlastnosti relačních databázových systémů. Datové modelování úvod. 6. 44 Datové modelování. 7. 45 Transformace datového modelu do relačních datových struktur. Normalizace dat. 8. 46 Transakční zpracování, ochrana a bezpečnost v databázovém zpracování. 9. 47 Odpadá - státní svátek 10. 48 Fyzické struktury implementační úroveň návrhu datové základy. Optimalizace v databázových systémech. 11. 49 Architektury databázového zpracování. Další databázové modely objektově relační, hierarchické a síťové dbs. 12. 50 Objektové dbs. Trendy a kritéria hodnocení a výběru dbs. 13. 51 Demonstrace vybraného databázového systému. Transformace z konceptuálního schématu do logických struktur (technologické úrovně)
Normalizace dat Technika datové analýzy. Zabývá se vztahy na úrovni datových položek (atributů) typů záznamů. Cílem je: vytvořit co nejvěrnější obraz v modelovaném světě existujících entitních množin, zajistit interní konzistenci datového modelu, resp. databáze, minimalizovat redundance, maximalizovat stabilitu datových struktur. Technika vytvořena pro ověření správnosti struktury relačních tabulek v relační databázi. Technika je ale použitelná i pro ověření správnosti navrženého konceptuálního modelu. Normalizace dat Co se dá normalizovat? struktura tabulek v existující relační databázi, struktura tabulek v navrhované relační databázi, entitní množiny z konceptuálního datového modelu, jakákoliv množina datových položek, např. obsah nějakého formuláře. S využitím automatizovaných nástrojů (CASE) lze techniku využít i pro návrh části databáze. Pozn.: Data získaná normalizací nemusí být optimalizovaná z hlediska výkonnosti provozovaného databázového systému.
Normalizace dat Sada normálních norem - podmínek, které musí splňovat normalizovaný záznam: První normální forma, Druhá normální forma, Třetí normální forma, Boyce / Coddova normální forma, Čtvrtá normální forma, Pátá normální forma. Pozn.: Nejčastěji uváděny pouze první tři normální formy. První čtyři normální formy zkoumají vztah neklíčových položek na primárním klíči. Poslední dvě normy zkoumají vztahy uvnitř složených primárních klíčů. První normální forma Záznam PRACE: OS_CISLO (PRIMÁRNÍ KLÍČ) JMENO PLAT TYM DAT_ZAH_PRACE PLAN_DOKONC_PRACE n x Záznam je v první normální formě, pokud neobsahuje opakující se položku nebo skupinu položek.
Záznam PRACE: OS_CISLO (PRIMÁRNÍ KLÍČ) JMENO PLAT TYM DAT_ZAH_PRACE PLAN_DOKONC_PRACE První normální forma n x Záznam je v první normální formě, pokud neobsahuje opakující se položku nebo skupinu položek. Záznam PROGRAMATOR: OS_CISLO (PRIMÁRNÍ KLÍČ) JMENO PLAT TYM Záznam PROGRAM: (PRIMÁRNÍ KLÍČ) DAT_ZAH_PRACE PLAN_DOKONC_PRACE OS_CISLO Záznam PRACE: OS_CISLO (PRIMÁRNÍ KLÍČ) JMENO PLAT TYM DAT_ZAH_PRACE PLAN_DOKONC_PRACE První normální forma n x Záznam je v první normální formě, pokud neobsahuje opakující se položku nebo skupinu položek. Záznam PROGRAMATOR: OS_CISLO (PRIMÁRNÍ KLÍČ) JMENO PLAT TYM Záznam PROGRAM: (PRIMÁRNÍ KLÍČ) DAT_ZAH_PRACE PLAN_DOKONC_PRACE OS_CISLO OS_CISLO NAZEV_PROGRAMU PROGRAMATOR RESI PROGRAM
Druhá normální forma Záznam POUZITI: ID SLUZBY (PRIMÁRNÍ KLÍČ) ID PROGRAMU (PRIMÁRNÍ KLÍČ) NAZEV SLUZBY DATUM ZAHAJENI PROVOZU SLUZBY PLANOVANE DATUM UKONCENI SLUZBY ODPOVEDNOST ZA UPRAVY PROGRAMU POCET POUZITI Záznam je v druhé normální formě, pokud je v první normální formě a pokud všechny neklíčové položky závisí na celém složeném primárním klíči. Druhá normální forma Záznam POUZITI: ID SLUZBY (PRIMÁRNÍ KLÍČ) ID PROGRAMU (PRIMÁRNÍ KLÍČ) NAZEV SLUZBY DATUM ZAHAJENI PROVOZU SLUZBY PLANOVANE DATUM UKONCENI SLUZBY ODPOVEDNOST ZA UPRAVY PROGRAMU POCET POUZITI Záznam je v druhé normální formě, pokud je v první normální formě a pokud všechny neklíčové položky závisí na celém složeném primárním klíči.
Druhá normální forma Záznam POUZITI: ID SLUZBY (PRIMÁRNÍ KLÍČ) ID PROGRAMU (PRIMÁRNÍ KLÍČ) NAZEV SLUZBY DATUM ZAHAJENI PROVOZU SLUZBY PLANOVANE DATUM UKONCENI SLUZBY ODPOVEDNOST ZA UPRAVY PROGRAMU POCET POUZITI Záznam je v druhé normální formě, pokud je v první normální formě a pokud všechny neklíčové položky závisí na celém složeném primárním klíči. Záznam SLUZBA: ID SLUZBY (PK) NAZEV SLUZBY DATUM ZAHAJENI PROVOZU SLUZBY PLANOVANE DATUM UKONCENI SLUZBY Záznam POUZITI: ID SLUZBY (PK) ID PROGRAMU (PK) POCET POUZITI Záznam PROGRAM: ID PROGRAMU (PK) ODPOVEDNOST ZA UPRAVY PROGRAMU POCET POUZITI Druhá normální forma Záznam POUZITI: ID SLUZBY (PRIMÁRNÍ KLÍČ) ID PROGRAMU (PRIMÁRNÍ KLÍČ) NAZEV SLUZBY DATUM ZAHAJENI PROVOZU SLUZBY PLANOVANE DATUM UKONCENI SLUZBY ODPOVEDNOST ZA UPRAVY PROGRAMU POCET POUZITI Záznam je v druhé normální formě, pokud je v první normální formě a pokud všechny neklíčové položky závisí na celém složeném primárním klíči. Záznam SLUZBA: ID SLUZBY (PK) NAZEV SLUZBY DATUM ZAHAJENI PROVOZU SLUZBY PLANOVANE DATUM UKONCENI SLUZBY OS_CISLO Záznam POUZITI: ID SLUZBY (PK) ID PROGRAMU (PK) POCET POUZITI POCET POUZITI Záznam PROGRAM: ID PROGRAMU (PK) ODPOVEDNOST ZA UPRAVY PROGRAMU POCET POUZITI ID PROGRAMU SLUZBA POUZITI PROGRAM
Záznam FAKTURA: CISLO FAKTURY (PRIMÁRNÍ KLÍČ) DATUM VYSTAVENI CASTKA CISLO ZAKAZNIKA ADRESA ZAKAZNIKA BANKOVNI SPOJENI ZAKAZNIKA DATUM SPLATNOSTI Třetí normální forma Záznam je ve třetí normální formě, pokud je ve druhé a pokud neobsahuje tranzitivní závislosti. Tranzitivní závislost je funkční závislost dvou neklíčových atributů. Záznam FAKTURA: CISLO FAKTURY (PRIMÁRNÍ KLÍČ) DATUM VYSTAVENI CASTKA CISLO ZAKAZNIKA ADRESA ZAKAZNIKA BANKOVNI SPOJENI ZAKAZNIKA DATUM SPLATNOSTI Třetí normální forma Záznam je ve třetí normální formě, pokud je ve druhé a pokud neobsahuje tranzitivní závislosti. Tranzitivní závislost je funkční závislost dvou neklíčových atributů.
Záznam FAKTURA: CISLO FAKTURY (PRIMÁRNÍ KLÍČ) DATUM VYSTAVENI CASTKA CISLO ZAKAZNIKA ADRESA ZAKAZNIKA BANKOVNI SPOJENI ZAKAZNIKA DATUM SPLATNOSTI Třetí normální forma Záznam je ve třetí normální formě, pokud je ve druhé a pokud neobsahuje tranzitivní závislosti. Tranzitivní závislost je funkční závislost dvou neklíčových atributů. Záznam ZAKAZNIK: CISLO ZAKAZNIKA (PRIMÁRNÍ KLÍČ) ADRESA ZAKAZNIKA BANKOVNI SPOJENI ZAKAZNIKA Záznam FAKTURA: CISLO FAKTURY (PRIMÁRNÍ KLÍČ) DATUM VYSTAVENI CASTKA DATUM SPLATNOSTI CISLO ZAKAZNIKA Záznam FAKTURA: CISLO FAKTURY (PRIMÁRNÍ KLÍČ) DATUM VYSTAVENI CASTKA CISLO ZAKAZNIKA ADRESA ZAKAZNIKA BANKOVNI SPOJENI ZAKAZNIKA DATUM SPLATNOSTI Třetí normální forma Záznam je ve třetí normální formě, pokud je ve druhé a pokud neobsahuje tranzitivní závislosti. Tranzitivní závislost je funkční závislost dvou neklíčových atributů. Záznam ZAKAZNIK: CISLO ZAKAZNIKA (PRIMÁRNÍ KLÍČ) ADRESA ZAKAZNIKA BANKOVNI SPOJENI ZAKAZNIKA Záznam FAKTURA: CISLO FAKTURY (PRIMÁRNÍ KLÍČ) DATUM VYSTAVENI CASTKA DATUM SPLATNOSTI CISLO ZAKAZNIKA CISLO ZAKAZNIKA CISLO FAKTURY ZAKAZNIK vystaveni FAKTURA
Boyce / Coddova normální forma Eliminuje potencionální redundance v záznamu, kde existuje více variant primárních klíčů (kandidátů primárního klíče). Závislosti na vybraném primárním klíči nemusí postihovat všechny možné problémy. Pokud existuje jiná varianta primárního klíče, je zvolena a opětovně je provedeno prověření, že záznam splňuje podmínku třetí normální formy. Čtvrtá normální forma Záznam KVALIFIKACE A CILE ZAMESTNANCU: ID ZAMESTNANCE (PK) KVALIFIKACE (PK) CIL (PK) Umožňuje rozlišení a oddělení nezávislých vícehodnotových atributů vytvářejících složený primární klíč. ID ZAMESTNANCE KVALIFIKACE Účetnictví Těsnopis Účetnictví Těsnopis CIL více peněz pochvala od vedoucího pochvala od vedoucího více peněz
Čtvrtá normální forma Záznam KVALIFIKACE A CILE ZAMESTNANCU: ID ZAMESTNANCE (PK) KVALIFIKACE (PK) CIL (PK) Umožňuje rozlišení a oddělení nezávislých vícehodnotových atributů vytvářejících složený primární klíč. ID ZAMESTNANCE KVALIFIKACE Účetnictví Těsnopis Účetnictví Těsnopis CIL více peněz pochvala od vedoucího pochvala od vedoucího více peněz Záznam KVALIFIKACE ZAMESTNANCE: ID ZAMESTNANCE (PK) KVALIFIKACE (PK) Záznam CILE ZAMESTNANCE: ID ZAMESTNANCE (PK) CIL (PK) ID ZAMESTNANCE KVALIFIKACE ID ZAMESTNANCE CIL Účetnictví více peněz Těsnopis pochvala od vedoucího Čtvrtá normální forma Záznam KVALIFIKACE A CILE ZAMESTNANCU: ID ZAMESTNANCE (PK) KVALIFIKACE (PK) CIL (PK) Umožňuje rozlišení a oddělení nezávislých vícehodnotových atributů vytvářejících složený primární klíč. Cil přiřazení Kvalifikace Zaměstnanec
Čtvrtá normální forma Záznam KVALIFIKACE A CILE ZAMESTNANCU: ID ZAMESTNANCE (PK) KVALIFIKACE (PK) CIL (PK) Umožňuje rozlišení a oddělení nezávislých vícehodnotových atributů vytvářejících složený primární klíč. Cil přiřazení Kvalifikace stanovení Zaměstnanec získání Pátá normální forma Záznam o VZTAHU MEZI NÁKUPČÍMI, PRODEJCI A ZBOŽÍ: NÁKUPČÍ (PK) PRODEJCE (PK) ZBOŽÍ (PK) MNOŽSTVÍ Umožňuje rozlišení a oddělení párových cyklických závislostí, které se objevují v primárním klíči složeném ze tří a více atributů. NAKUPCI PRODEJCE ZBOZI MNOZSTVI Potraviny Praha Becher 100 Novák Potraviny Praha Becher 200 Potraviny Praha Chleba 1000 Novák Tesla Karlín Televize 50 Tesla Karlín Televize 20
Pátá normální forma Záznam o VZTAHU MEZI NÁKUPČÍMI, PRODEJCI A ZBOŽÍ: NÁKUPČÍ (PK) PRODEJCE (PK) ZBOŽÍ (PK) MNOŽSTVÍ Umožňuje rozlišení a oddělení párových cyklických závislostí, které se objevují v primárním klíči složeném ze tří a více atributů. NAKUPCI PRODEJCE ZBOZI MNOZSTVI Potraviny Praha Becher 100 Novák Potraviny Praha Becher 200 Potraviny Praha Chleba 1000 Novák Tesla Karlín Televize 50 Tesla Karlín Televize 20 Předpokládejme: jestliže nákupčí A nakupuje od prodejce B a současně prodejce B prodává zboží C a současně nákupčí A potřebuje nakoupit zboží C, pak zboží C nakoupí od prodejce B. Záznam o VZTAHU MEZI NÁKUPČÍMI, PRODEJCI A ZBOŽÍ: NÁKUPČÍ (PK) PRODEJCE (PK) ZBOŽÍ (PK) MNOŽSTVÍ Pátá normální forma obchodují Umožňuje rozlišení a oddělení párových cyklických závislostí, které se objevují v primárním klíči složeném ze tří a více atributů. Nákupčí nákup Prodejce nakupuje Zboží prodává
Pátá normální forma Záznam o VZTAHU MEZI NÁKUPČÍMI, PRODEJCI A ZBOŽÍ: NÁKUPČÍ (PK) PRODEJCE (PK) ZBOŽÍ (PK) MNOŽSTVÍ obchodují Umožňuje rozlišení a oddělení párových cyklických závislostí, které se objevují v primárním klíči složeném ze tří a více atributů. Nákupčí nákup Prodejce nakupuje Zboží prodává Záznam o VZTAHU MEZI NÁKUPČÍMI, PRODEJCI A ZBOŽÍ: NÁKUPČÍ (PK) PRODEJCE (PK) ZBOŽÍ (PK) MNOŽSTVÍ Pátá normální forma obchodují Umožňuje rozlišení a oddělení párových cyklických závislostí, které se objevují v primárním klíči složeném ze tří a více atributů. MNOZSTVI Nákupčí nakoupil Prodejce nakupuje Zboží prodává
Pátá normální forma obchodují MNOZSTVI Umožňuje rozlišení a oddělení párových cyklických závislostí, které se objevují v primárním klíči složeném ze tří a více atributů. Nákupčí nakoupil Prodejce nakupuje Zboží prodává Záznam NAKUPUJE: NÁKUPČÍ (PK) ZBOŽÍ (PK) Záznam OBCHODUJE: NÁKUPČÍ (PK) PRODEJCE (PK) Záznam PRODAVA: PRODEJCE (PK) ZBOŽÍ (PK) Záznam NAKOUPIL: NÁKUPČÍ (PK) PRODEJCE (PK) ZBOŽÍ (PK) MNOŽSTVÍ Konceptuální schéma = model obsahu datové základny na konceptuální úrovni KSR = Konceptuální schéma reality KSD = Konceptuální schéma dat OBRAZ PROVOZOVANÉ DZ
4IT218 Databáze Osmá přednáška Normalizace dat - dokončení Transakce v databázovém zpracování Databázová zpracování rozlišujeme databázová zpracování: OLTP - Online TRANSACTION Processing zpracování velkého počtu relativně malých transakcí; pojem transakce odvozen z bankovnictví; výkonnost v počtu transakcí za minutu. OLAP - Online ANALYTICAL Processing zpracování vícedimensionálních dotazů (OLAP kostky); používá se zejména pro aplikace na podporu rozhodování, aplikace BI (Business Intelligence); výkonnost v počtu dotazů za hodinu. Pozn.: Setkáme se i s pojmem ROLAP, "R" znamená, že se jedná o OLAP zpracování na relačním databázovým systémem. Existují však i další druhy OLAP zpracování, napš. WOLAP -Web-based OLAP, RTOLAP - Real-Time OLAP.
Transakce v databázovém zpracování logická posloupnost operací, která je promítána do databáze jako celek, slouží k zajištění konzistence databáze a k řízení víceuživatelského přístupu k datům. Vlastnosti transakce (ACID): Atomicity (transakce se tváří jako jeden celek, musí proběhnout celá nebo vůbec ne), Consistency (transakce transformuje databázi z jednoho konzistentního stavu do jiného konzistentního stavu), Independence (transakce jsou nezávislé, změny prováděné jednou transakcí nejsou viditelné ostatním transakcím), Durability (efekty potvrzené transakce jsou uloženy do databáze).