1.13k likes | 1.14k Views
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. Obsah (nestihneme).
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
Obsah (nestihneme) • Transakčné spracovanie • Paralelné spracovanie • Zotavenie po chybách
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 Partially based on presentation of Simonas Šaltenis - Advanced Algorithm Design and Analysis
Purpose of Algorithm • Sorting of very large collection of data (Data>Memory) • Classic algorithm – With’s sort-merge algorithm (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 • Phase 1: O(n), Phase 2: O(n) • Total: O(n) I/Os! • Files only of “limited” size can be sorted • Phase 2 can merge a maximum of m-1 runs (m – number of buffers). • Which means: N/M(number of runs) < 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
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)
Storage Record Formats • A fixed-length record • A record with variable-length fields • A variable-field record with separator characters.
Fixed length record • Size of items is recorded in the system catalog
Variable length records • Result of item(s) of variable length
NULL value representation • 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 – hashovanie • 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é hashovanie • Ako interné hashovanie • Konflikty sa riešia blokmi pretečenia (viď ďalší slajd )
Zhodnotenie – ext. hashing • Ako externé hashovanie • Plusom je možnosť dynamického rozširovania „veľkosti hashovacieho 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
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
Primárny index • Indexuje „usporiadavajúci“ (ordering) atribút • Riedky (sparse) index • „Kotviaci“ záznam • INSERT problém