



Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
This course covers advanced database management system design principles and techniques. Indexing, Advanced Database System, R-trees, R-tree Lookup, R-tree Insertion, R-tree Insertion, R*-tree, R -tree, Structure of GiST, Key Predicates, Index Operations, Key Compression, GiST Over R-tree, GiST Over RD-tree
Typology: Slides
1 / 7
This page cannot be seen from the preview
Don't miss anything!




2
3
30
100
120150180
(–∞, 100)[100, ∞)
(–∞, 30)[30, 100) (^) [100, 120)[120, 150)[150, 180)[180, ∞)
R 7
R 1
R 2
R 3
R 4
R 5 R 6
R 8
R 7
R 1
R 2
R 3
R 4
R (^6) R 5
R 8
5
If none contains R 9 , pick one and grow it to contain R 9 Pick the one that requires the least enlargement (why?)
R 7
R 1
R 2
R 3
R 4
R (^6) R 5
R 8
R 9
R 7 ’
6
Exhaustive: try all possible splits Quadratic: “seed” with the most wasteful pair; iteratively assign regions with strongest “preference” Linear: “seed” with distant regions; iteratively assign others as Quadratic
R 7 ’
R 1
R 2
R 3
R 4
R 5 R 6
R 8
R 9
11
Redundant code: most trees are very similar Concurrency control and recovery especially tricky to get right
Examples: B-trees in Berkeley DB, B- and R-trees in Informix User-defined compare() function
General (covers B-trees, R-trees, etc.) Easy to extend Built-in concurrency control and recovery
12
Return true if an object satisfying query might be found under entry
Return a predicate that holds for all objects found under entries
Return a penalty for inserting entry 2 into the subtree rooted at entry 1
Given M +1 entries, split it into two sets, each of size at least kM
14
Just follow pointer whenever Consistent ( ) is true
Descent tree along least increase in Penalty ( ) If there is room in leaf, insert there; otherwise split according to PickSplit ( ) Propagate changes up using Union ( )
Search for entry and delete it Propagate changes up using Union ( ) On underflow
15
x < b and y > a , i.e., overlap
[min({ x (^) i }), max({ y (^) i }))
max( y 2 – y 1 , 0) + max( x 1 – x 2 , 0), except boundary cases
Sort entries and split evenly