■ PA152: Efektivní využívání DB 1. Úvod Vlastislav Dohnal Poděkování ■ Zdrojem materiálů tohoto předmětu jsou: D Přednášky CS245, CS345, CS345 ■ Hector Garcia-Molina, Jeffrey D. Ullman, Jennifer Widom ■ Stanford University, California D Přednášky dřívější verze PA152 ■ Pavel Rychlý ■ Fakulta informatiky, Masarykova Univerzita PA152, Vlastislav Dohnal, Fl MUNI, 2009 2 Literatura ■ Knihy d Database Systems Implementation ■ Hector Garcia-Molina, Jeffrey D. Ullman, Jennifer Widom ■ Prentice Hall, 2000 ■ Signatura knihovny D89 D Database Systems: The Complete Book ■ Hector Garcia-Molina, Jeffrey D. Ullman, Jennifer Widom ■ 2nd edition, Prentice Hall, 2009 ■ Signatura knihovny D147 PA152, Vlastislav Dohnal, Fl MUNI, 2009 3 Požadavky Ukončení předmětu: dZkouškou ■ Vypracování 2 domácích úloh d zadání pošlu e-mailem d odevzdání v termínu ■ Složení zkouškové písemky d 6 příkladů, každý za 3 body d A > 17, B > 15, C > 13, D > 11, E > 9, F < 9 D Zápočtem ■ Vypracování 2 domácích úloh i a odevzdání v termínu PA152, Vlastislav Dohnal, Fl MUNI, 2009 Základní pojmy ■ „Databáze" d „Programuje" většina programátorů d potřebuje každá firma Dje součástí většiny aplikací ■ Relační model d Struktura - data v relacích (tabulkách) DOperace-dotazování, modifikace ■ SQL, relační algebra PA152, Vlastislav Dohnal, Fl MUNI, 2009 5 Příklad ■ Implementovat databázi je snadné: d relace -> příkaz -> výsledek ■ Relace jsou v souborech na disku d Relace R je v /usr/db/R Novák # 123 # CS Starý ■ ■ ■ # 522 # EE PA152, Vlastislav Dohnal, Fl MUNI, 2009 6 Príklad 2 ■ Seznam platných relací v adresáři d/u s r/d b/d i recto ry R # j meno # STR # id # INT ... R2 # ■ ■ ■ C # STR # A # INT ... PA152, Vlastislav Dohnal, Fl MUNI, 2009 Příklad 3 ■ Dotaz v „SQL" & select A,B from R, S where R.A = S.A and S.C > 100 # A B 123 CAR 522 CAT & PA152, Vlastislav Dohnal, Fl MUNI, 2009 8 Příklad 4 select * from R where podmínka m Zpracování dotazu 1. přečti adresář (dictionary) a zjisti atributy relace R 2. čti soubor R a pro každý řádek: a. vyhodnoť podmínku b. pokud je platná, přidej do výsledku PA152, Vlastislav Dohnal, Fl MUNI, 2009 9 Příklad 5 select A,B from R,S where podmínka m Zpracování dotazu 1. Přečti adresář a získej atributy R a S 2. Čti soubor R a pro každý řádek: a. Čti soubor S a pro každý řádek: i. Spoj oba řádky (n-tice) ii. Vyhodnoť podmínku iii. Pokud je platná, přidej do výsledku PA152, Vlastislav Dohnal, Fl MUNI, 2009 10 Problémy implementace ■ Způsob ukládání d Řádky formátovány pomocí oddělovačů ■ Změna hodnoty vede ke změně v celém souboru D Neúsporné ukládání D Mazání je drahé ■ Vyhledávání je drahé D Nejsou indexy ■ Hledání podle primárního klíče je pomalé ■ Vždy je nutné přečíst celou relaci PA152, Vlastislav Dohnal, Fl MUNI, 2009 11 Problémy implementace ■ Žádné souběžné zpracování ■ Žádná spolehlivost d Možná ztráta dat d Operace nemusí být dokončena ■ Žádná bezpečnost d Přístup na úrovni systému souborů (filesystem) D Práva jsou příliš hrubozrná ■ Není API, není GUI PA152, Vlastislav Dohnal, Fl MUNI, 2009 12 Osnova kurzu ■ Úložiště dat Hierarchie pamětí, RAID, výpadky, ... ■ Struktura ukládání dat Záznamy, bloky, ... ■ Indexování Stromy, hašování, ... ■ Zpracování dotazů Odhad ceny, způsoby spojování relací, ... ■ Optimalizace dotazů Vytváření indexů, problémy pohledů, rozdělování relací, ... PA152, Vlastislav Dohnal, Fl MUNI, 2009 13 Osnova kurzu ■ Optimalizace databáze Úpravy relačního schéma, monitorování db, ... ■ Transakční zpracování Souběžné zpracování, zamykání, logování, uváznutí, ... ■ Bezpečnost Práva, ochrana dat, ... PA152, Vlastislav Dohnal, Fl MUNI, 2009 14 Databázový systém ■ DBMS (Database Management System) D Architektura: viewleve viewl view 2 ... view n logical level physical level PA152, Vl< 3stislav Do hnal, Fl M UNI, 2009 15 Části databázového systému ■ Storage Manager d správa bloků na disku D správa vyrovnávací paměti ■ Query Processor d překlad dotazu, optimalizace dvyhodnocení dotazu ■ Transaction Manager Datomičnost, izolovanost a trvalost transakcí PA152, Vlastislav Dohnal, Fl MUNI, 2009 16 Části databázového systému User/application query/update transaction commands Query Compiler query plan Execution Engine index/record requests! Index/record Manager page commands Buffer Manager read/write pages Storage Manager DB Admin DDL commands Transaction Manager Logging & Recovery log pages Buffers Storage DDL Compiler Concurrency Control Lock Table PA152, Vlastislav Dohnal, Fl MUNI, 2009 17 Hierarchie paměti ■ Primární d vyrovnávací (cache) ■ procesor D hlavní (operační) ■ RAM Sekundární d disk, flash Terciární d záložní ■ pásky, optické disky PA152, Vlastislav Dohnal, Fl MUNI, 2009 Mooreův zákon ■ Zdvojnásobení tranzistorů za cca každé 2 roky d Rychlost procesorů d Kapacita pamětí D Kapacita disků (Kryder's Law) ■ Pozor: neplatí pro rychlost disku PA152, Vlastislav Dohnal, Fl MUNI, 2009 19 Mooreův zákon 204B Technology Growth Rates over 10 years WAN Bandwidth___1 0 mos. Processor Power < 1.5 yrs. LAN Bandwidth_____1.7 yrs. Disk Transfer Rate___Z2_yis. I/O Ri.gRatP________9 Syra Disk Seek Rate 4 5 G 7 8 9 10 PA152, Vlastislav Dohnal, Fl MUNI, 2009 1 Q yrs. 20 Paměťová úložiště ■ Cache d Nejrychlejší a nejdražší, závislé na napájení ■ RAM D Rychlé - 10-100 ns (1 ns = 10"9 s) d Příliš malé nebo drahé pro uložení celé databáze d Závislé na napájení ■ Flash d Rychlé čtení, nezávislé na napájení d Pomalý zápis - nejdříve smazat, pak zápis ■ Zapisuje se celá oblast (banka) d Omezený počet zapisovacích cyklů PA152, Vlastislav Dohnal, Fl MUNI, 2009 21 Diskové uloziste Rotační disk d Velká kapacita, nezávislý na napájení d Čtení a zápis téměř stejně rychlé track ŕ spindle sector s cylinder c platte: arm' ■ arm assembly rotation PA152, Vlastislav Dohnal, Fl MUNI, 2009 Rotační disk ■ Přístupová doba (access time) d Čas mezi požadavkem na čtení/zápis a počátkem přenosu dat ■ Složky: d Vystavení hlaviček (seek time) - 4-10 ms ■ Přesun na správnou stopu disku ■ Average seek time = !4 nejhorší případ seek time D Rotační zpoždění - 4-11 ms (5400-15k rpm) ■ Čas pro otočení disku na správný sektor ■ Average latency = 1/4 nejhorší případ latency PA152, Vlastislav Dohnal, Fl MUNI, 2009 23 Rotační disk (pokrač.) D Přenosová rychlost ■ Rychlost čtení/zápisu dat z/na disk ■ 25-100MB/S, nižší pro vnitřní stopy ■ Rychlost řadiče d Více disků připojených najeden řadič dSATAII (3Gb/s) - 350 MB/s d SCSI Ultra 320 - 320 MB/s system bus disks PA152, Vlastislav Dohnal, Fl MUNI, 2009 24 Rotační disk ■ Vlastnosti d Náhodné čtení je pomalé - access time 20ms D Sekvenční čtení je rychlé! ■ Optimalizace přístupu v HW d Cache ■ Buffery pro zápis, zálohovány baterií nebo flash D Algoritmy pro minimalizaci pohybu hlavičky ■ Algoritmus „výtah" ■ Fungují pouze při velkém počtu požadavku současně PA152, Vlastislav Dohnal, Fl MUNI, 2009 25 Rotační disk ■ Příklad D SATAN disk, 7200rpm, 300MB/S, 8.9ms seek ■ Avg seek time = 8.9ms ■ Avg latency = (1/(7200/60))*0.5=0.00417s=4.17ms D Čtení sektoru (512B) = 13.07ms + 1.63us D10MB souvisle = 13.07ms + 33.3ms D10MB náhodně = 20480*13.07163ms = 268s PA152, Vlastislav Dohnal, Fl MUNI, 2009 26 Diskové operace ■ Přístup po blocích (atomická jednotka) d Skupina sousedních sektorů D Typicky 4KB -16KB ■ Čtení / zápis bloku ■ Modifikace bloku: d Čtení D Změna v paměti d Zápis d Ověření = otočení disku + čtení! PA152, Vlastislav Dohnal, Fl MUNI, 2009 27 Algoritmy v DB ■ Pracují s bloky ■ Minimalizují počet náhodně čtených bloků ■ Náklady na čtení a zápis jsou stejné PA152, Vlastislav Dohnal, Fl MUNI, 2009 28 Databáze na Fl ■ MySQL, PostgreSQL, Oracle ■ PostgreSQL http://www.postgresql.org/ d Zdarma i pro komerční aplikace d Technické informace http://www.fi.muni.cz/tech/unix/databaze.xhtml ■ Podle návodu si vytvořte účet D Pro připojení použijte pgAdmin http://www.pgadmin.org/ d Nebo phpPgAdmin http://phppgadmin.sourceforge.net/ ■ Dostupný na https://lsd.fi.muni.cz/phppgadmin/ d Zvolte server DB Fl MUNI, d databázi pgdb, i schéma podle Vašeho loginu PA152, Vlastislav Dohnal, Fl MUNI, 2009 29