Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Úvod do databázových systémů Jakub Lokoč. Literatura POKORNÝ, J., HALAŠKA, J.: Databázové systémy, skripta FEL ČVUT 2003 HALAŠKA, J., POKORNÝ, J.: Databázové.

Podobné prezentace


Prezentace na téma: "Úvod do databázových systémů Jakub Lokoč. Literatura POKORNÝ, J., HALAŠKA, J.: Databázové systémy, skripta FEL ČVUT 2003 HALAŠKA, J., POKORNÝ, J.: Databázové."— Transkript prezentace:

1 Úvod do databázových systémů Jakub Lokoč

2 Literatura POKORNÝ, J., HALAŠKA, J.: Databázové systémy, skripta FEL ČVUT 2003 HALAŠKA, J., POKORNÝ, J.: Databázové systémy-cvika, skripta ČVUT 2002 Ramakrishnan, Gehrke: Database Systems Management, McGraw-Hill, 2003 Další zdroje - web ◦ ◦ Upozornění – informace v této prezentaci nejsou vyčerpávající !!! 2Databázové systémy, Jakub Lokoč

3 Univerzální relace Jiný přístup – všechny atributy se slijí do jedné tabulky ◦ Není třeba řešit vztahy, vše na jednom řádku ◦ Formulace dotazu triviální ◦ Má ale i spoustu nevýhod – redundance, ztráta informace, … Funkční závislosti mezi atributy A relace R ◦ Formálně: f([x 1,.., x n ])  [y 1,.., y n ], kde x i a y i jsou atributy z A ◦ Budeme zapisovat bez f, např. Adresa  PSČ nebo AdresaČíslo  Vše Relace se pak určuje nejen atributy A ale i závislostmi F Databázové systémy, Jakub Lokoč3 AdresaPSČČísloBarva Estonská123451Modrá Estonská123452Červená Vltavská456781Modrá Vltavská456782Zelená Vltavská456783Bílá

4 Funkční závislosti (FZ) Pomáhají určit redundance v datech Dají se odvodit z jiných FZ - Armstrongova pravidla Nechť X, Y, Z jsou podmnožiny atributů z relace R = (A, F) 1) jestliže Y  X, potom X  Y(triviální FZ, axiom) 2) jestliže X  Y a Y  Z, potom X  Z (tranzitivita, pravidlo) 3) jestliže X  Y a X  Z, pak X  YZ(kompozice, pravidlo) 4) jestliže X  YZ, pak X  Y a X  Z (dekompozice,pravidlo) Používají se při ◦ Dekompozici – odvození DB schéma splňujícího danou NF ◦ Hledání klíčů – min. skupina atributů K taková, že K  Vše Databázové systémy, Jakub Lokoč4

5 Funkční závislosti (FZ) Dekompozice se dá odvodit z prvních tří ◦ Předpoklad X  YZ ◦ Máme odvodit X  Y a X  Z Odvození ◦ Triviálně : YZ  Y a YZ  Z (první axiom) ◦ Tranzitivitou spojíme X  YZ s YZ  Y ◦ Tranzitivitou spojíme X  YZ s YZ  Z ◦ Získáme požadované X  Y a X  Z Množina všech FZ odvoditelných z F pomocí Armstrongových pravidel tvoří funkční uzávěr F+ Databázové systémy, Jakub Lokoč5

6 Funkční uzávěr F+ R = (A = {a, b, c}, F = {a  b} ) F+ = {a  a, b  b, a  b, c  c, ab  a, ab  b, ab  ab, ac  a, ac  c, ac  b, ac  ac, ac  abc, bc  b, bc  c, abc  a, abc  b, abc  c, abc  ab, abc  ac, abc  bc, abc  abc} Co tvoří klíč relace R? Databázové systémy, Jakub Lokoč6

7 Atributový uzávěr Klíčový algoritmus na hledání klíče Nechť R = (A, F) a X je podmnožina A Atributový uzávěr značíme X+ X+ je množina všech atributů z A, které jsou funkčně závislé na všech atributech z X Databázové systémy, Jakub Lokoč7

8 Atributový uzávěr Příklad s relací Dům = (A, F) ◦ A = {Adresa, PSČ, Číslo, barva} ◦ F = {Adresa  PSČ, AdresaČíslo  Barva} {Adresa}+ = {Adresa, PSČ} {Adresa, Barva}+ = {Adresa, PSČ, Barva} {Adresa, Číslo}+ = Vše (klíč relace Dům) Databázové systémy, Jakub Lokoč8

9 Klíč tabulky Co tvoří klíč tabulky? Je klíčů více? ◦ Klíč je minimální skupina atributů určující vše ◦ Klíčů obecně může být více ◦ Pokud ke klíči přidáme atribut  nadklíč ◦ Najít jeden klíč je lehké ◦ Najít všechny klíče – problém z třídy NP ◦ Znalost klíče důležitá při zajištění NF ◦ Klíčový atribut nesmí být většinou NULL Databázové systémy, Jakub Lokoč9

10 Nalezení prvního klíče Z A+ se postupně odebírají ty atributy, které jsou odvoditelné ze zbývajících atributů Příklad s relací Dům = (A, F) ◦ A = {Adresa, Majitel, PSČ, Číslo, barva} ◦ F = {Adresa  MajitelPSČ, Majitel  Adresa, AdresaČíslo  Barva} {Adresa, Majitel, Číslo, PSČ, Barva}+ = Vše {Adresa, Majitel, Číslo, PSČ}+ = Vše {Adresa, Majitel, Číslo}+ = Vše {Adresa, Číslo}+ = Vše (již nelze odebrat žádný) Databázové systémy, Jakub Lokoč10

11 Nalezení všech klíčů Složité – musí se vyzkoušet všechny permutace atributů z předchozího slajdu (klíčů může být hodně) Používají se heuristiky ◦ Pokud existuje X  Y ( kde Y je klíčový atribut) ◦ Pak se může zkusit (klíč – Y)  X Z předchozího příkladu ◦ AdresaČíslo je klíč a existuje závislost Majitel  Adresa ◦ (AdresaČíslo - Adresa)  Majitel je kandidát na klíč ◦ {Majitel, Číslo}+ = Vše (bingo, máme nový klíč) Databázové systémy, Jakub Lokoč11 Klíč Y X

12 Normální formy, normalizace Slouží k zlepšení „kvality“ DB Snižuje množství redundancí Vhodné pro DB, kde dochází často ke změnám Nejjednodušší je 1NF ◦ Data jsou v atomické formě ◦ Nelze dát do buňky třeba pole či strom ◦ Porušeno až v Objektově-Relačních DB 4NF a 5NF nebude u zkoušky požadována Databázové systémy, Jakub Lokoč12

13 Normální formy 2NF ◦ Neexistuje funkční závislost neklíčových atributů na části klíče 3NF ◦ Neexistuje tranzitivní závislost na klíči ◦ Alternativní definice 1.Závislost je jen triviální 2.Levá část závislosti je nadklíč 3.Pravá část závislosti je součástí klíče BCNF ◦ Podobné jako 3NF ◦ Jen neplatí 3. bod definice 3NF Databázové systémy, Jakub Lokoč13 Klíč Y X Y X Y X Y X

14 Bezeztrátovost Relaci nelze rozštěpit libovolně (viz. příklad) Z normalizovaných tabulek by měla jít rekonstruovat původní relace Databázové systémy, Jakub Lokoč14 AdresaPSČČísloBarva Estonská123451Modrá Estonská123452Červená Vltavská456781Modrá Vltavská456782Zelená Evropská123453Bílá AdresaPSČ Estonská12345 Vltavská45678 Evropská12345 PSČČísloBarva Modrá Červená Modrá Zelená Bílá AdresaPSČČísloBarva Estonská123451Modrá Estonská123452Červená Estonská123453Bílá Vltavská456781Modrá Vltavská456782Zelená Evropská123451Modrá Evropská123452Červená Evropská123453Bílá

15 Dekompozice Metoda rozdělení univerzální relace na menší tabulky, které splňují ◦ Bezeztrátovost ◦ BCNF nebo 3NF Jak na to? ◦ Rekurzivní proces ◦ V aktuálně dělené relaci se musí určit klíče ◦ Dělení relace na dvě podle nevyhovující závislosti ◦ Do nových tabulek se delegují i všechny platné funkční závislosti (konstrukce funkčního uzávěru!) Nezachovává obecně pokrytí závislostí Databázové systémy, Jakub Lokoč15

16 Dekompozice - příklad Databázové systémy, Jakub Lokoč16 AdresaPSČČísloBarvaRGB Estonská123451Modrá0; 0; 255 Estonská123452Červená255; 0; 0 Vltavská456781Modrá0; 0; 255 Vltavská456782Zelená0; 255; 0 Vltavská456783Bílá255; 255; 255 AdresaPSČ Estonská12345 Vltavská45678 AdresaČísloBarvaRGB Estonská1Modrá0; 0; 255 Estonská2Červená255; 0; 0 Vltavská1Modrá0; 0; 255 Vltavská2Zelená0; 255; 0 Vltavská3Bílá255; 255; 255 A = {Adresa, Číslo, PSČ, Barva, RGB} F = {Adresa  PSČ, AdresaČíslo  Barva, Barva  RGB} (porušena 2NF, porušena 3NF) A = {Adresa, PSČ} F = {Adresa  PSČ} A = {Adresa, Číslo, Barva, RGB} F = {AdresaČíslo  Barva, Barva  RGB} Jakou NF splňují nové tabulky? Je zachována bezeztrátovost? Je zachováno pokrytí závislostí? AdresaČísloBarva Estonská1Modrá Estonská2Červená Vltavská1Modrá Vltavská2Zelená Vltavská3Bílá A = {Adresa, Číslo, Barva} F = {AdresaČíslo  Barva} BarvaRGB Červená255; 0; 0 Modrá0; 0; 255 Zelená0; 255; 0 Bílá255; 255; 255 A = {Barva, RGB} F = {Barva  RGB}

17 Rekapitulace Modelování relačního schéma DB – dva přístupy ◦ Intuitivní konceptuální modelování a konverze ◦ Algoritmická dekompozice V praxi spíše intuitivní přístup – diagramy Dekompozice se používá na „škaredé“ tabulky Máme obecně popsané tabulky, potřebujeme silný a současně jednoduchý formální dotazovací jazyk Databázové systémy, Jakub Lokoč17


Stáhnout ppt "Úvod do databázových systémů Jakub Lokoč. Literatura POKORNÝ, J., HALAŠKA, J.: Databázové systémy, skripta FEL ČVUT 2003 HALAŠKA, J., POKORNÝ, J.: Databázové."

Podobné prezentace


Reklamy Google