Fyzické uložení dat a indexy Michal Valenta Katedra softwarového inženýrství Fakulta informaˇcních technologií ˇ Ceské vysoké uˇcení technické v Praze c
Michal Valenta, 2016
BI-DBS, LS 2015/16 https://edux.fit.cvut.cz/courses/BI-DBS/
ˇ Michal Valenta (FIT CVUT)
Fyzické uložení dat a indexy
Databázové systémy 2016
1 / 18
Ruzné ˚ úrovneˇ pohledu na data
ˇ Michal Valenta (FIT CVUT)
Fyzické uložení dat a indexy
Databázové systémy 2016
2 / 18
Oracle – fyzická a logická struktura databáze
ˇ Michal Valenta (FIT CVUT)
Fyzické uložení dat a indexy
Databázové systémy 2016
3 / 18
Oracle – fyzická struktura databáze
ˇ Michal Valenta (FIT CVUT)
Fyzické uložení dat a indexy
Databázové systémy 2016
4 / 18
Dvou a vícevrstvá architektura
ˇ Michal Valenta (FIT CVUT)
Fyzické uložení dat a indexy
Databázové systémy 2016
5 / 18
Oracle – fyzická organizace relaˇcní tabulky
ˇ Michal Valenta (FIT CVUT)
Fyzické uložení dat a indexy
Databázové systémy 2016
6 / 18
Adresa ˇrádku (Oracle, ale podobneˇ i jinde)
ˇ Michal Valenta (FIT CVUT)
Fyzické uložení dat a indexy
Databázové systémy 2016
7 / 18
Index typu B*-Tree CREATE INDEX nazev_idx on Titul (nazev); CREATE UINIQUE INDEX titul_id_idx on Titul (titul_id);
ˇ Michal Valenta (FIT CVUT)
Fyzické uložení dat a indexy
Databázové systémy 2016
8 / 18
Index typu B-Tree - charakteristika ˇ B - strom (ˇrádu m) je m-ární strom, splnující následující omezení Koˇren má nejméne 2 potomky, pokud není listem každý uzel kromeˇ koˇrene a listu má nejméneˇ [m/2] a nejvýše m potomku˚ každý uzel ma nejméneˇ dm/2e − 1 a nejvíce m − 1 datových záznamu˚ ˇ (vetšinou jen klíˇcu) ˚ všechny cesty ve stromeˇ jsou stejneˇ dlouhé data v nelistovém ulzu jsou organizována p0 (k1 , p1 ), (k2 , p2 ), ..., (kn , pn ), u I kde p , p , ..., p jsou ukazatele na potomky n 0 1 I k , k , ..., k jsou klíˇ ce n 0 1 I u je nevyužitý prostor I záznamy(k , p ) jsou uspoˇ rádany vzestupneˇ podle klíˇcu˚ i i I dm/2e − 1 <= n <= m − 1 odpovídá-li ukazateli pi , kde i ∈< 1, n > podstrom U(pi ) platí: I (i) pro každé k ∈ U(p i−1 ) je k <= ki I (ii) pro každé k ∈ U(p ) je k > k i i listy obsahují úplnou množinu klíˇcu˚ a mohou se lišit strukturou. ˇ Michal Valenta (FIT CVUT)
Fyzické uložení dat a indexy
Databázové systémy 2016
9 / 18
Bitmapové indexy
ˇ Michal Valenta (FIT CVUT)
Fyzické uložení dat a indexy
Databázové systémy 2016
10 / 18
Použití bitmapového indexu pˇri vyhodnocení dotazu
ˇ Michal Valenta (FIT CVUT)
Fyzické uložení dat a indexy
Databázové systémy 2016
11 / 18
Použití bitmapového indexu pˇri vyhodnocení dotazu ˇ Výberová podmínka s operátorem IN Výberová podmínka s operátorem AND/OR
ˇ Michal Valenta (FIT CVUT)
Fyzické uložení dat a indexy
Databázové systémy 2016
12 / 18
Porovnání indexu˚ B-strom a Bitmap
ˇ Michal Valenta (FIT CVUT)
Fyzické uložení dat a indexy
Databázové systémy 2016
13 / 18
Indexoveˇ organizovaná tabulka (Index-organized table)
ˇ Michal Valenta (FIT CVUT)
Fyzické uložení dat a indexy
Databázové systémy 2016
14 / 18
Shluk (Cluster)
ˇ Michal Valenta (FIT CVUT)
Fyzické uložení dat a indexy
Databázové systémy 2016
15 / 18
Pˇrístup k SQL z aplikace fáze zpracování dotazu I I I I I
parse bind execute fetch + struktura pro návrat chybového kódu
standardizované API a drivery (ODBC, JDBC, ...) specifické knihovny (PHP, ...) ˇ vetšinou API kopíruje fáze zpracování SQL dotazu ˇ používání databáze: ... a pˇrístupy, které odstinují hibernate, tapestry, .... Ruby on Rails, JAXB, ....
ˇ Michal Valenta (FIT CVUT)
Fyzické uložení dat a indexy
Databázové systémy 2016
16 / 18
Další techniky zrychlení pˇrístupu k datum ˚ Pˇripomenutí pojmu: ˚ OLTP versus DSS systémy ˇ plán, cena dotazu optimalizace dotazu, provádecí fáze zpracování dotazu (pˇríkazu) Používané techniky: zavedení redundance, materializované pohledy ˇ pro data, ale také pro parsované využítí vyrovnávacích pametí SQL pˇríkazy a kurzory Optimalizace aplikace a databáze: návrh struktury (normalizace vs. denormalizace) speciální struktury pro uložení dat ˇ dotazu, optimalizace dotazu˚ (zjištení ˚ které je tˇreba optimalizovat) ˇ - velikost a struktura) systémové zdroje (pamet’ konfigurace serveru (disky, parametry databáze, zálohování) ˇ Michal Valenta (FIT CVUT)
Fyzické uložení dat a indexy
Databázové systémy 2016
17 / 18
K zapamatování (relaˇcní) databáze bez indexu˚ nefungují rozumneˇ – indexy jsou ˇ data) nutné (pro vetší ˇ DB stroj cˇ asto nekteré indexy vytváˇri automaticky kvuli ˚ kontrole IO (PK, UK) ˇ používají indexy na bázi B-stromu˚ (tam, kde v OLTP se nejˇcasteji jsou data (skoro) unikátní) kde jsou data velmi neunikátní (napˇr. pohlaví) a potˇrebuji indexovat, tam se používají bitmapové indexy indexy je tˇreba udržovat (zjednodušeneˇ – ušetˇrím na dotazech, platím více pˇri DML) klíˇc indexu (indexované atributy) muže ˚ být složený / jednoduchý index muže ˚ být unikátní / neunikátní. Kromeˇ tzv “heap table” máme k dispozici další fyzické struktury – v Oracle IOT a cluster ˇ Michal Valenta (FIT CVUT)
Fyzické uložení dat a indexy
Databázové systémy 2016
18 / 18