1 / 17

Úvod do databázových systé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é systémy- cvika , skripta ČVUT 2002 Ramakrishnan , Gehrke : Database Systems Management, McGraw - Hill , 2003 Další zdroje - web

camila
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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: DatabaseSystems Management, McGraw-Hill, 2003 • Další zdroje - web • http://nb.vse.cz/~palovska/uds/ • http://siret.ms.mff.cuni.cz/skopal/DBI025.htm Upozornění – informace v této prezentaci nejsou vyčerpávající !!! Databá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([x1, .., xn]) [y1, .., yn], kde xi a yi 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č

  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č

  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č

  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č

  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č

  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č

  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č

  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č

  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íč) X Klíč Y Databázové systémy, Jakub Lokoč

  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č

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

  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č

  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č

  16. Dekompozice - příklad • A = {Adresa, Číslo, PSČ, Barva, RGB} • F = {Adresa PSČ, AdresaČíslo  Barva, Barva RGB} (porušena 2NF, porušena 3NF) • A = {Adresa, Číslo, Barva, RGB} • F = {AdresaČíslo  Barva , Barva  RGB} • A = {Adresa, PSČ} • F = {Adresa PSČ} • A = {Adresa, Číslo, Barva} • F = {AdresaČíslo  Barva} • A = {Barva, RGB} • F = {Barva  RGB} Jakou NF splňují nové tabulky? Je zachována bezeztrátovost? Je zachováno pokrytí závislostí? Databázové systémy, Jakub Lokoč

  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č

More Related