Stromové struktury v relační databázi

Podobné dokumenty
Stromové struktury v relační databázi

SQL tříhodnotová logika

Prostorové indexační techniky. Zdeněk Kouba

Algoritmy výpočetní geometrie

autoři: Rudolf Bayer, Ed McCreight všechny vnější uzly (listy) mají stejnou hloubku ADS (abstraktní datové struktury)

Algoritmizace prostorových úloh

Stromy, haldy, prioritní fronty

GIS Geografické informační systémy

Algoritmizace prostorových úloh

Datové struktury pro prostorové vyhledávání

7. Geografické informační systémy.

ÚLOHY S POLYGONEM. Polygon řetězec úseček, poslední bod je totožný s prvním. 6 bodů: X1, Y1 až X6,Y6 Y1=X6, Y1=Y6 STANOVENÍ PLOCHY JEDNOHO POLYGONU

Základní datové struktury III: Stromy, haldy

Náplň. v Jednoduché příklady na práci s poli v C - Vlastnosti třídění - Způsoby (algoritmy) třídění

GIS Geografické informační systémy

PROGRAMY PRO GIS. Formovat/formulovat problém pro aplikaci v počítači. Fungování GIS programů na základní úrovni - "uvažovat" jako počítač

Jana Dannhoferová Ústav informatiky, PEF MZLU

Stromy. Strom: souvislý graf bez kružnic využití: počítačová grafika seznam objektů efektivní vyhledávání výpočetní stromy rozhodovací stromy

Voronoiův diagram. RNDr. Petra Surynková, Ph.D. Univerzita Karlova v Praze Matematicko-fyzikální fakulta

k-dimenzionálním prostoru. problém: Zkonstruovat strom, který rozděluje prostor polorovinami

TGH07 - Chytré stromové datové struktury

6. Fyzická (interní) úroveň databázového systému

GIS Geografické informační systémy

6. Fyzická (interní) úroveň databázového systému

Adresní vyhledávání (přímý přístup, zřetězené a otevřené rozptylování, rozptylovací funkce)

KMA/PDB. Karel Janečka. Tvorba materiálů byla podpořena z prostředků projektu FRVŠ č. F0584/2011/F1d

Lekce 6 - Správa prostorových dat

STRUKTURA RASTROVÝCH DAT

Složitosti základních operací B + stromu

2 Datové struktury. Pole Seznam Zásobník Fronty FIFO Haldy a prioritní fronty Stromy Hash tabulky Slovníky

Rastrová reprezentace

Organizace a zpracování dat I

Strojové učení se zaměřením na vliv vstupních dat

Paměti. Paměť je zařízení, které slouží k ukládání programů a dat, s nimiž počítač pracuje

INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA

Kapitola 11: Indexování a hešování. Základní představa

Algoritmy a datové struktury

GEOGRAFICKÉ INFORMAČNÍ SYSTÉMY 10

Tvorba nových dat. Vektor. Geodatabáze. Prezentace prostorových dat. Základní geometrické objekty Bod Linie Polygon. Vektorová

IB111 Úvod do programování skrze Python

Databázové a informační systémy Jana Šarmanová

1. Databázové systémy (MP leden 2010)

GIS Prostorové modely. Obsah přednášky Rastrový model Pravidelné, nepravidelné buňky Způsoby uložení Komprese dat

TÉMATICKÝ OKRUH Počítače, sítě a operační systémy

2. přednáška z předmětu GIS1 Data a datové modely

Datové struktury Úvod

DATABÁZOVÉ SYSTÉMY. Metodický list č. 1

Algoritmy pro shlukování prostorových dat

Vyvažování a rotace v BVS, všude se předpokládá AVL strom

a) b) c) Radek Mařík

1. Vektorové algoritmy jejich výstupem je soubor geometrických prvků, např.

DobSort. Úvod do programování. DobSort Implementace 1/3. DobSort Implementace 2/3. DobSort - Příklad. DobSort Implementace 3/3

TEORIE ZPRACOVÁNÍ DAT

TGH07 - Chytré stromové datové struktury

bin arn ı vyhled av an ı a bst Karel Hor ak, Petr Ryˇsav y 23. bˇrezna 2016 Katedra poˇ c ıtaˇ c u, FEL, ˇ CVUT

3 Algoritmy řazení. prvku a 1 je rovněž seřazená.

Wichterlovo gymnázium, Ostrava-Poruba, příspěvková organizace. Maturitní otázky z předmětu INFORMATIKA A VÝPOČETNÍ TECHNIKA

Datové struktury. Zuzana Majdišová

Základy algoritmizace c2005, 2007 Michal Krátký, Jiří Dvorský1/39

Volné stromy. Úvod do programování. Kořenové stromy a seřazené stromy. Volné stromy

Zadání druhého zápočtového projektu Základy algoritmizace, 2005

Lekce 4 - Vektorové a rastrové systémy

Vyhodnocování dotazů slajdy k přednášce NDBI001. Jaroslav Pokorný MFF UK, Praha

Úvod do GIS. Prostorová data II. část. Pouze podkladová prezentace k přednáškám, nejedná se o studijní materiál pro samostatné studium.

2. úkol MI-PAA. Jan Jůna (junajan)

autorovu srdci... Petr Hliněný, FI MU Brno 1 FI: MA010: Průnikové grafy

Profilová část maturitní zkoušky 2013/2014

Mapový server Marushka. Technický profil

ADT STROM Lukáš Foldýna

Přijímací zkouška - informatika

Operátory ROLLUP a CUBE

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 12.

Dynamické datové struktury III.

bfs, dfs, fronta, zásobník, prioritní fronta, halda

Inovace a zkvalitnění výuky prostřednictvím ICT Databázové systémy MySQL základní pojmy, motivace Ing. Kotásek Jaroslav

8.2 Používání a tvorba databází

Prohledávání do šířky = algoritmus vlny

TGH09 - Barvení grafů

Časová a prostorová složitost algoritmů

Úvod do databázových systémů

KMA/PDB. Karel Janečka. Tvorba materiálů byla podpořena z prostředků projektu FRVŠ č. F0584/2011/F1d

Hledání prostorových asociačních pravidel v prostorových databázích. Discovery of Spatial Association Rules in Geographic Information Databases

Hardware ZÁKLADNÍ JEDNOTKA

Amortizovaná složitost. Prioritní fronty, haldy (binární, d- regulární, binomiální, Fibonacciho), operace nad nimi a jejich složitost

Lekce 10 Analýzy prostorových dat

Zdůvodněte, proč funkce n lg(n) roste alespoň stejně rychle nebo rychleji než než funkce lg(n!). Symbolem lg značíme logaritmus o základu 2.

GIS Geografické informační systémy

Sítě SFN Systém pro analýzu a vizualizaci pokrytí a rušení vysílacích sítí

Úvod do mobilní robotiky AIL028

Hanojská věž. T2: prohledávání stavového prostoru. zadání [1 1 1] řešení [3 3 3] dva možné první tahy: [1 1 2] [1 1 3]

Maturitní otázky z předmětu PROGRAMOVÁNÍ

x 2 = a 2 + tv 2 tedy (a 1, a 2 ) T + [(v 1, v 2 )] T A + V Příklad. U = R n neprázdná množina řešení soustavy Ax = b.

Informační systémy 2008/2009. Radim Farana. Obsah. Obsah předmětu. Požadavky kreditového systému. Relační datový model, Architektury databází

Úvod do databázových systémů

Vyplňování souvislé oblasti

Technické informace. PA152,Implementace databázových systémů 4 / 25. Projekty. pary/pa152/ Pavel Rychlý

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.

PROSTOROVÉ DOTAZOVACÍ JAZYKY. (Maroš Kasinec, Jakub Kúdela)

Geometrické vyhledání.

Algoritmizace prostorových úloh

Transkript:

Stromové struktury v relační databázi

Stromové struktury a relační databáze Zboží Procesory Intel Pentium IV Celeron Paměti AMD Duron DDR DIMM Athlon http://interval.cz/clanky/metody-ukladani-stromovych-dat-v-relacnich-databazich/

Stromové struktury a relační databáze Konceptuální model

Stromové struktury a relační databáze Logický model

Stromové struktury a relační databáze Hledání všech uzlů z podstromu daného uzlu - rekurze void gettree(int parent) { ResultSet rsdata = statement.executequery( SELECT * FROM TREE WHERE Parent_Id=?1 ).setparameter(parent); while (rsdata.next()) { System.out.println(); System.out.println(rsData.getString( Name )); parent = rsdata.getstring( Parent_Id ); gettree(parent); } }

Stromové struktury a relační databáze Zboží 22 1 Procesory 2 15 Intel 8 3 Pentium IV 4 AMD 9 14 Celeron 5 6 Paměti 16 21 7 Duron 10 DDR DIMM 17 18 19 20 Athlon 11 12 13

Stromové struktury a relační databáze

Stromové struktury a relační databáze Zboží 22 1 Procesory 2 15 Intel 8 3 Pentium IV 4 AMD 9 14 Celeron 5 6 Paměti 16 21 7 Duron 10 DDR DIMM 17 18 19 20 Athlon 11 12 13

Indexace pomocí B-stromů

Indexace jako prostředek optimalizace výkonu

Indexace jako prostředek optimalizace výkonu

Princip B-stromu B-strom má definovánu: maximální kapacitu uzlu (max. počet záznamů v uzlu) minimální kapacitu uzlu (min. počet záznamů v uzlu) Záznamy uvnitř uzlu jsou setříděné podle hodnoty klíče.

Princip B-stromu max(min) maximální (minimální) počet záznamů v uzlu n... počet záznamů v databázi K Každý uzel stránka v databázi Smysl minimalizace počtu přístupů do databáze Hloubka B-stromu v nejlepším případě (všechny uzly naplněny na 100%)... v nejhorším případě (všechny uzly naplněny na min)...

Vkládání do B-stromu Každý uzel stránka v databázi Při prvotní konstrukci stromu se uzly naplňují pouze částečně, 25% - 30% kapacity uzly se nechávají volné jako rezerva pro nově vkládané uzly Je-li uzel zcela zaplněn a je třeba do něj přidat další záznam, uzel se rozštěpí na 2 zaplněné z 50%. V takovém případě se musí přidat záznam i do příslušného uzlu o patro výš

Vkládání záznamu do B-stromu Triviální, není-li kapacita daného uzlu naplněna 50 100 10 20 40 50 100 30 Nově vkládaný klíč 10 20 30 40

Vkládání záznamu do B-stromu Je-li kapacita daného uzlu naplněna, musí dojít k rozdělení uzlů: 50 100 Separátor. Hodnota jeho klíče je medián z hodnot 10, 20, 40, 42 a 44 10 20 40 44 40 50 100 42 Nově vkládaný klíč 10 20 42 44

Vkládání záznamu do B-stromu

Rušení záznamu v listu B-stromu

Rušení záznamu v listu B-stromu Přesun uzlu Min... 2 uzly Max... 4 uzly 40 50 100 10 20 30 42 44 30 50 100 Rušený klíč 10 20 40 44

Rušení záznamu v listu B-stromu Spojení uzlů Min... 2 uzly Max... 4 uzly 40 50 100 10 20 42 44 50 100 Rušený klíč 10 20 40 44

Rušení záznamu v nelistovém uzlu B-stromu Rušený klíč 40 50 100 Min... 2 uzly Max... 4 uzly 10 20 30 42 44 48 42 50 100 Klíč označený? bude nejmenší klíč fialového podstromu. 10 20 30 Může následovat: spojení uzlů přesun od sourozence? 44 48

Rušení záznamu v nelistovém uzlu B-stromu Tento přístup znamená, že při rušení uzlu smažeme rušený klíč a poté uvádíme strom znovu do vyváženého stavu. Není to jediný možný algoritmus, existují i jiné.

Prostorové indexační techniky Zdeněk Kouba

Geografické informační systémy Data strukturovaná Relační databáze Dotazy SQL Data nestrukturovaná Mapové podklady rastrová data Geometrické objekty vektorová data Geometrické závislosti Prostorové dotazy

Hlavní typy prostorových dotazů Dotaz na úplnou shodu vrátí všechny shodné objekty Dotaz na bod nalézt všechny objekty o takové, že daný bod b leží uvnitř objektu o Dotaz na oblast k dané oblasti (typicky polygonu) P nalézt všechny objekty o takové, že o má s P neprázdný průnik Dotaz na okolí oblasti k dané oblasti P najít množinu objektů o takových, že P o Dotaz na obsah oblasti k dané oblasti P najít množinu objektů o takových, že o P Detaily: Jaroslav Pokorný: Prostorové datové struktury, GIS Ostrava 99, Technická univerzita Ostrava, 1999

Prostorové dotazy Leží daný bod v daném polygonu? Efektivní algoritmus

Prostorové dotazy Leží daný bod v daném polygonu? Efektivní algoritmus Bod ležící zcela jistě mimo daný polygon Lichý počet průsečíků s hranicí polygonu => bod leží uvnitř polygonu Sudý počet => bod leží vně polygonu

Jak prostorové dotazy urychlit?

Prostorová indexace

Reprezentace prostoru Možnost: rozdělení prostoru do disjunktních buněk, objekty umistěny v těchto buňkách Hierarchie buněk: 4 - stromy (quad-tree) pro 2D, 8 stromy pro 3D

Reprezentace prostoru Číslování buněk: využití křivek vyplňujících prostor princip Hilbertovy křivky Mortonův rozklad (Z-order curve) viz obrázek výhoda: zachovává sousedství (sousední buňky na křivce = sousední buňky v prostoru) nevýhoda: výpočetní složitost Z curve: http://en.wikipedia.org/wiki/file:four-level_z.svg

Reprezentace prostoru Z curve číslování prolnutí bitů souřadnic x a y v binárním vyjádření http://en.wikipedia.org/wiki/file:z-curve.svg

Prostorová indexace Vyplňující křivka (Z curve) nám n-dimenzionální problém převádí na jednorozměrný Pro jednorozměrné problémy máme efektivní indexační techniky, hashování,...

Prostorová indexace Vyplňující křivka (Z curve) převádí n-dimenzionální problém na jednorozměrný Pro jednorozměrné problémy máme efektivní indexační techniky (B-stromy), hashování,... Máme tedy prostorovou indexaci vyřešenu?

Prostorová indexace Vyplňující křivka (Z curve) převádí n-dimenzionální problém na jednorozměrný Pro jednorozměrné problémy máme efektivní indexační techniky, hashování,... Máme tedy prostorovou indexaci vyřešenu? Držíme-li všechny prostorové objekty v operační paměti, pak ano (malé úlohy). Jsou-li prostorové objekty uloženy na disku, pak tento přístup nezohledňuje potřebu minimalizovat počet přístupů na disk. Co tedy potřebujeme

Prostorová indexace Co tedy potřebujeme Buňky sousedící v prostoru by měly být uloženy v téže stránce externí paměti.

Prostorová indexace Nepřekrývající se oblasti: Prostor P je rozdělen do navzájem disjunktních podprostorů. Tyto podprostory mohou být dále rekurzivně děleny do disjunktních podprostorů => vznikne hierarchická struktura Nechť je prostor P rozdělen do dvou disjunktních podprostorů P 1 a P 2. Co když máme objekt o takový, že má neprázdný průnik jak s P 1 tak s P 2? o 1 o P 1 o P 2 2

Prostorová indexace Nepřekrývající se oblasti: Co když máme objekt o takový, že má neprázdný průnik jak s P 1 tak s P 2? o A P 1 o P 2 o B 1. možnost: duplikace objektů: P P 1 P 2 o A o o o B

Prostorová indexace Nepřekrývající se oblasti: Co když máme objekt o takový, že má neprázdný průnik jak s P 1 tak s P 2? o A P 1 o 1 o 2 P 2 o B 2. možnost: rozdělení objektu o na 2: (clipping) P P 1 P 2 o A o 1 o 2 o B

Prostorová indexace Nepřekrývající se oblasti: Co když máme objekt o takový, že má neprázdný průnik jak s P 1 tak s P 2? o A P 1 o 1 o 2 P 2 o B 2. možnost: rozdělení objektu o na 2: (clipping) P P 1 P 2 o A o 1 o 2 o B

Prostorové struktury pro indexaci bodů 4-stromy (quad-trees) 4-stromy jsou obecně nevyvážené. Obrázek převzat z: Jaroslav Pokorný: Prostorové datové struktury a jejich použití k indexaci prostorových objektů http://gis.vsb.cz/gis_ostrava/gis_ova_2000/sbornik/pokorny/referat.htm

Prostorové struktury pro indexaci bodů k-d-stromy (k-d-trees) Ukázka 2-d stromu k-d-stromy jsou obecně vyvážené. Obrázek převzat z: Jaroslav Pokorný: Prostorové datové struktury a jejich použití k indexaci prostorových objektů http://gis.vsb.cz/gis_ostrava/gis_ova_2000/sbornik/pokorny/referat.htm

R - strom R 1 d c R 3 R 4 b a M R 1 R 2 R 3 R 4 R 5 R 6 e c d e a b f g i h R 2 R 5 f g i h MBR minimal bounding rectangle R 6

R - strom R 1 d c R 3 R 4 b a M R 1 R 2 R 3 R 4 R 5 R 6 e c d e a b f g i h R 2 R 5 f i g h R 6 Heuristika: aby byl minimalizován hluchý prostor, volí takový MBR, který má minimální plochu.

R - strom MBR se mohou překrývat Heuristika: aby byl minimalizován hluchý prostor, volí takový MBR, který má minimální plochu. Insert: možnost dělení uzlu (překročení max. kapacity uzlu) objekt může být přidán do více uzlů Delete: možnost slučování uzlů (pokles počtu uzlů pod minimální kapacitu uzlu)

R* - strom Heuristika: aby byl minimalizován hluchý prostor, volí takový MBR, který má minimální plochu + minimalizace obvodu + minimalizace překryvu Výkon R* stromů prudce klesá se stoupající dimenzí

R + - strom kompromis mezi R-trees a k-d-trees MBR se nepřekrývají Clipping nebo jsou jsou objekty vkládány do více listů stromu Nepoužívá se minimální kapacita