1.53k likes | 1.54k Views
Explore RAID, sort-merge algorithms, physical data organization, indexing, and query optimization in Database Management Systems. Learn about RAID levels, performance, and advanced algorithm design in data sorting.
E N D
Systém riadenia bázy dát(Database Management System) Ján GENČI PDT 2009
Obsah • RAID • 2-phase multiway sort-merge • Fyzická organizácia dát • Indexovanie • Systémový katalóg • Operácie relačnej algebry (krátko) • Implementácia operácií relačnej algebry • Query plány – optimalizácia dotazov
Literatúra [1] • Hector Garcia-Molina, Jeffrey D. Ullman, Jennifer D. Widom: Database System Implementation, Prentice Hall, 1999. ISBN-10: 0130402648, pp.653 • Database Systems: The Complete Book, 2001
Literatúra [2] • Elmasri R., NavatheS. B. : Fundamentals of database systems. 4th ed., Pearson Education, 2001.5th ed. – 2006, pp. 1030 (ch. 13-15 -19; 120 resp. 220 str.)
Literatúra [3] • Ramakrishnan R., Gehrke J.: Database Management Systems. McGraw-Hill Science/Engineering/Math; 3rd ed., 2002, pp. 906 (ch. 7-14; 220 str.)
Literatúra [4] • Abraham Silberschatz, Henry Korth, S. Sudarshan: Database System Concepts. McGraw-Hill Science/Engineering/Math; 5th ed., 2005. pp.~920 (ch. 11-14-17; 170 resp. 290 str.
RAID Obrázky (väčšina) z [2]
RAID • Originally - Redundant Arrays of Inexpensive Disks. • Currently - Redundant Array of Independent Disks • Chen, Lee, Gibson, Katz, and Patterson (1994), ACM Computing Survey, Vol. 26, No.2 (June 1994). • http://sk.wikipedia.org/wiki/RAID (pekne názorne spracované)
RAID – ďalšie kombinácie • 10, 01 - Kombinácie základných RAIDov • Performance: • Block-interleaved distributed-parity disk arrays (RAID 5) have the bestsmall read, large read, andlarge writeperformance of any redundantdisk array. • Small write requests aresomewhat inefficient compared with redundancyschemes such as mirroring.
Two phase,multiway sort-merge Na základe prezentácie Simonas Šaltenis: Advanced Algorithm Design and Analysis
Purpose of Algorithm • Triedenie veľkých súborov dát (Data>Memory) • Klasický algoritmus – Wirthov sort-merge algoritmus (Wirth C.: Algoritmy a dátové štruktúry.)
Princíp – 1. fáza • Vytvoriť maximálne možné veľké „behy“ (utriedené postupnosti elementov) – najlepšie načítaním do dostupnej pamäte a zotriedením napr. quick-sortom • Spájanie behov (mergovanie)
Bf1 p1 min(Bf1[p1], Bf2[p2], …, Bfk[pk]) Bf2 Read, when pi = B Bfo p2 po Bfk pk Write, when Bfo full Current page Current page Current page File Y: EOF Run 1 Run 2 Run k=n/m File X: Princíp – 2. fáza
Zhodnotenie • Fáza 1: O(n), Fáza 2: O(n) • Celkom: O(n) I/Os! • Dajú sa triediť iba súbory obmedzenej veľkosti • Fáza 2 môže spájať (merge) maximálnem-1 behov (m – počet vyrovnávacích pamätí). • Čo znamená: N/M(počet behov) ≤m-1
(m-1)3M = N Phase 2 . . . . . . (m-1)2M . . . (m-1)M (m-1)M (m-1)M . . . … … … M M M M M M Phase 1 . . . … … … M M M M M M M M M M M M Triedenie veľmi veľkých súborov
Zdroj:Paul Beynon-Davies: DATABASE SYSTEMS.3RD ED. PALGRAVE MACMILLAN,2004
O čom budeme hovoriť • Podporované dátové typy • Formovanie záznamov • Organizácia (radenie) záznamov • fyzická • logická • „Umiestnenie“ DBMS v rámci OS
Podporované dátové typy • Tzv. built-in dátové typy • Pre účely ukladania dát, je pre nás zaujímavá veľkosť dátového typu (sizeof(typ)) • „Sémantika“ typu je podporená implementáciou (HW alebo SW) relevantných operácií (out of scope)
Formáty ukladaných záznamov • Záznamy s pevnou dĺžkou (A fixed-length record) • Záznamy s premenlivou dĺžkou (A record with variable-length fields) • Záznamy s premenlivou dĺžkous oddelľovačmi (A variable-field record with separator characters).
Fixed length record • Veľkosť záznamu je uložená v systémovom katalógu
Variable length records • Záznamy s premenlivou dĺžkou
Reprezentácia NULL hodnôt • Prakticky väčšina zdrojov o spôsobe implementácie „mlčí“ • Pri záznamoch premenlivej dĺžky sa dá využiť null pointer na prvok záznamu • ORACLE v dokumentácii pre ORA7 prezentoval ukladanie NULL hodnoty cez bitmapový prefix záznamu
Umiestňovanie záznamov do fyzických blokov • Spanned • Unspanned
Logické organizácie záznamov • Sekvenčná • Hašovaná • Heap (hromada) • Zhodnotenie z pohľadu operácií insert, find a delete
Zhodnotenie – sekvenčná org. • Insert – drahá operácia (potreba posunúť priemerne N/2 záznamov) – oblasti pretečenia (overflow areas) • Find – možnosť binárneho vyhľadávania podľa usporiadavajúceho atribútu - O(log2N), ináč O(N) = N/2 alebo N • Delete – drahá operácia (potreba posunúť priemerne N/2 záznamov) – možnosť označovať záznamy ako zmazané pack
Zhodnotenie – hašovanie • Insert – O(1) ak neuvažujeme konflikty; ak uvažujeme - najhorší prípad O(N) • Find – O(1) – hashovací atribút, O(N) ostatné atribúty • Delete – O(1) • Štruktúra musí byť dimenzovaná na maximálny počet záznamov
Zhodnotenie - externé hašovanie • Ako interné hašovanie • Konflikty sa riešia blokmi pretečenia (viď ďalší slajd )
Zhodnotenie – rozšíriteľné hašovanie • Ako externé hašovanie • Plusom je možnosť dynamického rozširovania „veľkosti hašovacieho poľa“
Heap (hromada) • Záznamy sú neusporiadané – nie je usporiadavací atrubút • Strácame možnosť - binárne vyhľadávanie; primárny index (ale iba pre usporiad. atr.) • Veľmi efektívna operácia INSERT
Miesto DBMS v rámci OS Cooked files Raw devices • NTFS
Indexovanie Z podstatnej časti podľa [2] Všetky obrázky z [2]
Index • Alternatívny spôsob prístupu k dátam • Lokalizácia záznamu podľa obsahu
Počet úrovní Kategorizácia indexov Indexované záznamy Indexovaný atribút Kategorizácia indexov Primárne Klastrovacie Jednoúrovňové Sekundárne Viacúrovňové Hustý Riedky
Kategorizácia indexov • Podľa počtu úrovní: • Jedno-úrovňové • Viac-úrovňové • Podľa indexovaného atribútu: • Primárne • Klastrovacie (clustering) • Sekundárne • Podľa počtu indexovaných záznamov: • Hustý (dense) – všetky záznamy v indexe • Riedky (sparse) – len časť záznamov v indexe