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.
Chlapek, D.: 4IT218 Databáze
Transformace z konceptuálního schématu do logických struktur (technologické úrovně)
Chlapek, D.: 4IT218 Databáze
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.
Chlapek, D.: 4IT218 Databáze
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.
Chlapek, D.: 4IT218 Databáze
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íčů. Chlapek, D.: 4IT218 Databáze
První normální forma Záznam PRACE:
OS_CISLO (PRIMÁRNÍ KLÍČ) JMENO PLAT TYM NAZEV PROGRAMU DAT_ZAH_PRACE PLAN_DOKONC_PRACE VELIKOST PROGRAMU PROGRAMOVACI JAZYK
Chlapek, D.: 4IT218 Databáze
Záznam je v první normální formě, pokud neobsahuje opakující se položku nebo skupinu položek.
nx
První normální forma Záznam PRACE:
OS_CISLO (PRIMÁRNÍ KLÍČ) JMENO PLAT TYM NAZEV PROGRAMU DAT_ZAH_PRACE PLAN_DOKONC_PRACE VELIKOST PROGRAMU PROGRAMOVACI JAZYK
Záznam je v první normální formě, pokud neobsahuje opakující se položku nebo skupinu položek.
nx
Záznam PROGRAMATOR:
Záznam PROGRAM:
OS_CISLO (PRIMÁRNÍ KLÍČ) JMENO PLAT TYM
NAZEV PROGRAMU (PRIMÁRNÍ KLÍČ) DAT_ZAH_PRACE PLAN_DOKONC_PRACE VELIKOST PROGRAMU PROGRAMOVACI JAZYK OS_CISLO
Chlapek, D.: 4IT218 Databáze
První normální forma Záznam PRACE:
OS_CISLO (PRIMÁRNÍ KLÍČ) JMENO PLAT TYM NAZEV PROGRAMU DAT_ZAH_PRACE PLAN_DOKONC_PRACE VELIKOST PROGRAMU PROGRAMOVACI JAZYK
Záznam je v první normální formě, pokud neobsahuje opakující se položku nebo skupinu položek.
nx
Záznam PROGRAMATOR:
Záznam PROGRAM:
OS_CISLO (PRIMÁRNÍ KLÍČ) JMENO PLAT TYM
NAZEV PROGRAMU (PRIMÁRNÍ KLÍČ) DAT_ZAH_PRACE PLAN_DOKONC_PRACE VELIKOST PROGRAMU PROGRAMOVACI JAZYK OS_CISLO
OS_CISLO
PROGRAMATOR
Chlapek, D.: 4IT218 Databáze
NAZEV_PROGRAMU
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 NAZEV PROGRAMU PROGRAMOVACI JAZYK VELIKOST PROGRAMU 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.
Chlapek, D.: 4IT218 Databáze
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 NAZEV PROGRAMU PROGRAMOVACI JAZYK VELIKOST PROGRAMU ODPOVEDNOST ZA UPRAVY PROGRAMU POCET POUZITI
Chlapek, D.: 4IT218 Databáze
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:
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.
ID SLUZBY (PRIMÁRNÍ KLÍČ) ID PROGRAMU (PRIMÁRNÍ KLÍČ) NAZEV SLUZBY DATUM ZAHAJENI PROVOZU SLUZBY PLANOVANE DATUM UKONCENI SLUZBY NAZEV PROGRAMU PROGRAMOVACI JAZYK VELIKOST PROGRAMU ODPOVEDNOST ZA UPRAVY PROGRAMU POCET POUZITI
Záznam SLUZBA: ID SLUZBY (PK) NAZEV SLUZBY DATUM ZAHAJENI PROVOZU SLUZBY PLANOVANE DATUM UKONCENI SLUZBY
Záznam POUZITI:
Záznam PROGRAM:
ID SLUZBY (PK) ID PROGRAMU (PK) POCET POUZITI
ID PROGRAMU (PK) NAZEV PROGRAMU PROGRAMOVACI JAZYK VELIKOST PROGRAMU ODPOVEDNOST ZA UPRAVY PROGRAMU POCET POUZITI
Chlapek, D.: 4IT218 Databáze
Druhá normální forma Záznam 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.
ID SLUZBY (PRIMÁRNÍ KLÍČ) ID PROGRAMU (PRIMÁRNÍ KLÍČ) NAZEV SLUZBY DATUM ZAHAJENI PROVOZU SLUZBY PLANOVANE DATUM UKONCENI SLUZBY NAZEV PROGRAMU PROGRAMOVACI JAZYK VELIKOST PROGRAMU ODPOVEDNOST ZA UPRAVY PROGRAMU POCET POUZITI
Záznam SLUZBA: ID SLUZBY (PK) NAZEV SLUZBY DATUM ZAHAJENI PROVOZU SLUZBY PLANOVANE DATUM UKONCENI SLUZBY
Záznam POUZITI:
OS_CISLO
SLUZBA Chlapek, D.: 4IT218 Databáze
Záznam PROGRAM:
ID SLUZBY (PK) ID PROGRAMU (PK) POCET POUZITI
POCET POUZITI
POUZITI
PROGRAM
ID PROGRAMU (PK) NAZEV PROGRAMU PROGRAMOVACI JAZYK VELIKOST PROGRAMU ODPOVEDNOST ZA UPRAVY PROGRAMU POCET POUZITI ID PROGRAMU
Třetí normální forma Záznam FAKTURA:
CISLO FAKTURY (PRIMÁRNÍ KLÍČ) DATUM VYSTAVENI CASTKA CISLO ZAKAZNIKA ADRESA ZAKAZNIKA BANKOVNI SPOJENI ZAKAZNIKA DATUM SPLATNOSTI
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ů.
Chlapek, D.: 4IT218 Databáze
Třetí normální forma Záznam FAKTURA:
CISLO FAKTURY (PRIMÁRNÍ KLÍČ) DATUM VYSTAVENI CASTKA CISLO ZAKAZNIKA ADRESA ZAKAZNIKA BANKOVNI SPOJENI ZAKAZNIKA DATUM SPLATNOSTI
Chlapek, D.: 4IT218 Databáze
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ů.
Třetí normální forma Záznam FAKTURA:
CISLO FAKTURY (PRIMÁRNÍ KLÍČ) DATUM VYSTAVENI CASTKA CISLO ZAKAZNIKA ADRESA ZAKAZNIKA BANKOVNI SPOJENI ZAKAZNIKA DATUM SPLATNOSTI
Záznam ZAKAZNIK:
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 ZAKAZNIKA (PRIMÁRNÍ KLÍČ) ADRESA ZAKAZNIKA BANKOVNI SPOJENI ZAKAZNIKA
CISLO FAKTURY (PRIMÁRNÍ KLÍČ) DATUM VYSTAVENI CASTKA DATUM SPLATNOSTI CISLO ZAKAZNIKA
Chlapek, D.: 4IT218 Databáze
Třetí normální forma Záznam FAKTURA:
CISLO FAKTURY (PRIMÁRNÍ KLÍČ) DATUM VYSTAVENI CASTKA CISLO ZAKAZNIKA ADRESA ZAKAZNIKA BANKOVNI SPOJENI ZAKAZNIKA DATUM SPLATNOSTI
Záznam ZAKAZNIK:
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 ZAKAZNIKA (PRIMÁRNÍ KLÍČ) ADRESA ZAKAZNIKA BANKOVNI SPOJENI ZAKAZNIKA
CISLO FAKTURY (PRIMÁRNÍ KLÍČ) DATUM VYSTAVENI CASTKA DATUM SPLATNOSTI CISLO ZAKAZNIKA
CISLO ZAKAZNIKA
ZAKAZNIK
Chlapek, D.: 4IT218 Databáze
vystaveni
CISLO FAKTURY
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.
Chlapek, D.: 4IT218 Databáze
Č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
CIL
Rosák
Účetnictví
více peněz
Rosák
Těsnopis
pochvala od vedoucího
Rosák
Účetnictví
pochvala od vedoucího
Rosák
Těsnopis
více peněz
Chlapek, D.: 4IT218 Databáze
Č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
CIL
Rosák
Účetnictví
více peněz
Rosák
Těsnopis
pochvala od vedoucího
Rosák
Účetnictví
pochvala od vedoucího
Rosák
Těsnopis
více peněz
Záznam KVALIFIKACE ZAMESTNANCE:
Záznam CILE ZAMESTNANCE:
ID ZAMESTNANCE (PK) KVALIFIKACE (PK)
ID ZAMESTNANCE (PK) CIL (PK)
ID ZAMESTNANCE
KVALIFIKACE
ID ZAMESTNANCE
CIL
Rosák
Účetnictví
Rosák
více peněz
Rosák
Těsnopis
Rosák
pochvala od vedoucího
Chlapek, D.: 4IT218 Databáze
Čtvrtá normální forma Záznam KVALIFIKACE A CILE ZAMESTNANCU: ID ZAMESTNANCE (PK) KVALIFIKACE (PK) CIL (PK)
Cil
přiřazení
Zaměstnanec
Chlapek, D.: 4IT218 Databáze
Umožňuje rozlišení a oddělení nezávislých vícehodnotových atributů vytvářejících složený primární klíč.
Kvalifikace
Č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í
Chlapek, D.: 4IT218 Databáze
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
Rosák
Potraviny Praha
Becher
MNOZSTVI 100
Novák
Potraviny Praha
Becher
200
Rosák
Potraviny Praha
Chleba
1000
Novák
Tesla Karlín
Televize
50
Rosák
Tesla Karlín
Televize
20
Chlapek, D.: 4IT218 Databáze
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
Rosák
Potraviny Praha
Becher
MNOZSTVI 100
Novák
Potraviny Praha
Becher
200
Rosák
Potraviny Praha
Chleba
1000
Novák
Tesla Karlín
Televize
50
Rosák
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.
Chlapek, D.: 4IT218 Databáze
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ů.
obchodují
Nákupčí
nákup
Prodejce
nakupuje
Zboží
prodává
Chlapek, D.: 4IT218 Databáze
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ů.
obchodují
Nákupčí
nákup
Prodejce
nakupuje
Zboží
prodává
Chlapek, D.: 4IT218 Databáze
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ů.
obchodují MNOZSTVI
Nákupčí
nakoupil
nakupuje
Zboží
Chlapek, D.: 4IT218 Databáze
Prodejce
prodává
Pátá normální forma 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ů.
obchodují MNOZSTVI
Nákupčí
nakoupil
nakupuje
Zboží
Záznam NAKUPUJE:
Prodejce
prodává
Záznam OBCHODUJE:
NÁKUPČÍ (PK) ZBOŽÍ (PK)
NÁKUPČÍ (PK) PRODEJCE (PK)
Záznam PRODAVA: PRODEJCE (PK) ZBOŽÍ (PK)
Záznam NAKOUPIL:
NÁKUPČÍ (PK) PRODEJCE (PK) ZBOŽÍ (PK) MNOŽSTVÍ
Chlapek, D.: 4IT218 Databáze
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
Chlapek, D.: 4IT218 Databáze
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.
Chlapek, D.: 4IT218 Databáze
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). Chlapek, D.: 4IT218 Databáze