Databázy 2 - Prednáška č. 5
Created: 2009-03-17 - 17:27
/* Fyzická implementácia DB - typy súborov - stránka / PAGE - tabuľka - indexy - stromy a B-stromy SQL server mapuje databázu na systémové súbory - primárny dátový súbor - sekundárny dátový súbor - log súbor 1.) Primárny dátový súbor - každá DB má len 1 - prípona ".mdf" - obsahuje odkazy na ďalšie súbory + master DB 2.) Sekundárny dátový - prípona .ndf 3.) Log súbor - prípona .ldf - do transakcie vkladáme viac operácií - treba zabezpečiť, že keď sa niečo naruší, tak treba vrátiť všetko do pôvodného stavu - Úlohou log súboru je to, aby po transakciách bolo možné v prípade potreby obnoviť databázu. ---------------------------------- Stránka / PAGE - základná jednotka ukladania riadkov tabľky - 1 stránka má 8 kB - každá stránka má hlavičku a za ňou nasledujú riadky - 8 typov strán: - samotné dáta - indexová stránka - obrázky / veľké texty - prehľad o voľných miestach v rámci stránky Tabuľka - delí sa na partície - jedna partícia sa skladá z riadkov, ktoré môžu byť uložené na základe stránky: 1. Štruktúra klastrového indexu - dáta sú usporiadané - pre tabuľku sa vytvorí index a ukladá sa dvojica index - pole (kt. obsahuje odkaz na miesto kde je riadok alebo samotný riadok) 2. Heap štruktúra (halda) - http://en.wikipedia.org/wiki/Heap_(data_structure) Indexy - indexový súbor je dvojica polí: 1. Index 2. Dáta (riadok tabľky) Stromy - uzol - korenovy, vnutorny (nelistovy), vonkajsi (listovy) - rodic (predok) / potomok - hĺbka (výška) stromu - podstrom B-stromy - http://en.wikipedia.org/wiki/B-tree - 1972 - Bayer, McCreight - def: B-strom stupňa n je strom, ktorý spĺňa podmienky: 1. Koreň má minimálne 2 potomkov alebo list 2. Každý vnútorný uzol má minimálne m/2 potomkov alebo maximálne m potomkov 3. Každý list musí byť v tej istej hĺbke 4. Vnútorný uzol s j+1 potomkami má j kľúčov (tvoria obsah uzla) 5. V každom uzle kľúče sú usporiadané ... k0 < k1 < ... < ki-1 < ki < ... < kj-1 Vnútorné < p_0, p_1, [k_1, q_1 ] , ... ,p_i-1, [k_i-1, q_i-1], p_i, [k_i, q_i], ..., p_j-1, [k_j-1,q_j-1], p_j > < k_1, .. , k_i-1 ,k_i,...,k_j-1> PS_0, .. , PS_i-1 ,PS_i, kde pi je ukazovateľ (smerník) na iný uzol v strome, ki je kľúč, qi je pointer na dáta 6. Pre ľubovoľný kľúč k_i podstromu platí: k_i-1 < k < k_i - pre B-stromy sú najdôležitejšie: vyhľadaj, vlož, vymaž */