carnegie mellon univ. dept. of computer science 15-415 - database applications

76
Carnegie Mellon Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications C. Faloutsos Spatial Access Methods - R- trees

Upload: tarika

Post on 11-Jan-2016

21 views

Category:

Documents


0 download

DESCRIPTION

Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications. C. Faloutsos Spatial Access Methods - R-trees. General Overview. Relational model – SQL; db design Indexing; Q-opt;Transaction processing Advanced topics Distributed Databases RAID Authorization / Stat. DB - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

Carnegie Mellon

Carnegie Mellon Univ.Dept. of Computer Science

15-415 - Database Applications

C. Faloutsos

Spatial Access Methods - R-trees

Page 2: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 2Carnegie Mellon

General Overview

• Relational model – SQL; db design• Indexing; Q-opt;Transaction processing• Advanced topics

– Distributed Databases– RAID– Authorization / Stat. DB– Spatial Access Methods (SAMs)– Multimedia Indexing

Page 3: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 3Carnegie Mellon

SAMs - Detailed outline

• spatial access methods– problem dfn– z-ordering– R-trees

Page 4: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 4Carnegie Mellon

SAMs - more detailed outline

• R-trees– main idea; file structure– (algorithms: insertion/split)– (deletion)– (search: range, nn, spatial joins)– variations (packed; hilbert;...)

Page 5: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 5Carnegie Mellon

Reminder: problem

• Given a collection of geometric objects (points, lines, polygons, ...)

• organize them on disk, to answer spatial queries (range, nn, etc)

Page 6: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 6Carnegie Mellon

R-trees

• z-ordering: cuts regions to pieces -> dup. elim.

• how could we avoid that?

• Idea: Minimum Bounding Rectangles

Page 7: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 7Carnegie Mellon

R-trees

• [Guttman 84] Main idea: allow parents to overlap!– => guaranteed 50% utilization– => easier insertion/split algorithms.– (only deal with Minimum Bounding Rectangles

- MBRs)

Page 8: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 8Carnegie Mellon

R-trees

• eg., w/ fanout 4: group nearby rectangles to parent MBRs; each group -> disk page

A

B

C

DE

FG

H

I

J

Page 9: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 9Carnegie Mellon

R-trees

• eg., w/ fanout 4:

A

B

C

DE

FG

H

I

J

P1

P2

P3

P4

F GD E

H I JA B C

Page 10: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 10Carnegie Mellon

R-trees

• eg., w/ fanout 4:

A

B

C

DE

FG

H

I

J

P1

P2

P3

P4

P1 P2 P3 P4

F GD E

H I JA B C

Page 11: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 11Carnegie Mellon

R-trees - format of nodes

• {(MBR; obj-ptr)} for leaf nodes

P1 P2 P3 P4

A B C

x-low; x-highy-low; y-high

...

objptr ...

Page 12: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 12Carnegie Mellon

R-trees - format of nodes

• {(MBR; node-ptr)} for non-leaf nodes

P1 P2 P3 P4

A B C

x-low; x-highy-low; y-high

...

nodeptr ...

Page 13: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 13Carnegie Mellon

R-trees - range search?

A

B

C

DE

FG

H

I

J

P1

P2

P3

P4

P1 P2 P3 P4

F GD E

H I JA B C

Page 14: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 14Carnegie Mellon

R-trees - range search?

A

B

C

DE

FG

H

I

J

P1

P2

P3

P4

P1 P2 P3 P4

F GD E

H I JA B C

Page 15: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 15Carnegie Mellon

R-trees - range search

Observations:

• every parent node completely covers its ‘children’

• a child MBR may be covered by more than one parent - it is stored under ONLY ONE of them. (ie., no need for dup. elim.)

Page 16: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 16Carnegie Mellon

R-trees - range search

Observations - cont’d

• a point query may follow multiple branches.

• everything works for any dimensionality

Page 17: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 17Carnegie Mellon

SAMs - more detailed outline

• R-trees– main idea; file structure– algorithms: insertion/split– deletion– search: range, nn, spatial joins– performance analysis– variations (packed; hilbert;...)

Page 18: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 18Carnegie Mellon

R-trees - insertion

• eg., rectangle ‘X’

A

B

C

DE

FG

H

I

J

P1

P2

P3

P4

P1 P2 P3 P4

F GD E

H I JA B CX

Page 19: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 19Carnegie Mellon

R-trees - insertion

• eg., rectangle ‘X’

A

B

C

DE

FG

H

I

J

P1

P2

P3

P4

P1 P2 P3 P4

F GD E

H I JA B CX

X

Page 20: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 20Carnegie Mellon

R-trees - insertion

• eg., rectangle ‘Y’

A

B

C

DE

FG

H

I

J

P1

P2

P3

P4

P1 P2 P3 P4

F GD E

H I JA B CY

Page 21: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 21Carnegie Mellon

R-trees - insertion

• eg., rectangle ‘Y’: extend suitable parent.

A

B

C

DE

FG

H

I

J

P1

P2

P3

P4

P1 P2 P3 P4

F GD E

H I JA B CY

Y

Page 22: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 22Carnegie Mellon

R-trees - insertion

• eg., rectangle ‘Y’: extend suitable parent.

• Q: how to measure ‘suitability’?

Page 23: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 23Carnegie Mellon

R-trees - insertion

• eg., rectangle ‘Y’: extend suitable parent.

• Q: how to measure ‘suitability’?

• A: by increase in area (volume) (more details: later, under ‘performance analysis’)

• Q: what if there is no room? how to split?

Page 24: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 24Carnegie Mellon

R-trees - insertion

• eg., rectangle ‘W’

A

B

C

DE

FG

H

I

J

P1

P2

P3

P4

P1 P2 P3 P4

F GD E

H I JA B C

W

K

K

Page 25: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 25Carnegie Mellon

R-trees - insertion

• eg., rectangle ‘W’ - focus on ‘P1’ - how to split?

A

B

C

P1

W

K

Page 26: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 26Carnegie Mellon

R-trees - insertion

• eg., rectangle ‘W’ - focus on ‘P1’ - how to split?

A

B

C

P1

W

K • (A1: plane sweep,

until 50% of rectangles)

• A2: ‘linear’ split

• A3: quadratic split

• A4: exponential split

Page 27: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 27Carnegie Mellon

R-trees - insertion & split

• pick two rectangles as ‘seeds’;

• assign each rectangle ‘R’ to the ‘closest’ ‘seed’

seed1

seed2

R

Page 28: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 28Carnegie Mellon

R-trees - insertion & split

• pick two rectangles as ‘seeds’;

• assign each rectangle ‘R’ to the ‘closest’ ‘seed’

• Q: how to measure ‘closeness’?

Page 29: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 29Carnegie Mellon

R-trees - insertion & split

• pick two rectangles as ‘seeds’;

• assign each rectangle ‘R’ to the ‘closest’ ‘seed’

• Q: how to measure ‘closeness’?

• A: by increase of area (volume)

Page 30: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 30Carnegie Mellon

R-trees - insertion & split

• pick two rectangles as ‘seeds’;

• assign each rectangle ‘R’ to the ‘closest’ ‘seed’

seed1

seed2

R

Page 31: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 31Carnegie Mellon

R-trees - insertion & split

• pick two rectangles as ‘seeds’;

• assign each rectangle ‘R’ to the ‘closest’ ‘seed’

seed1

seed2

R

Page 32: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 32Carnegie Mellon

R-trees - insertion & split

• pick two rectangles as ‘seeds’;

• assign each rectangle ‘R’ to the ‘closest’ ‘seed’

• smart idea: pre-sort rectangles according to delta of closeness (ie., schedule easiest choices first!)

Page 33: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 33Carnegie Mellon

R-trees - insertion - pseudocode

• decide which parent to put new rectangle into (‘closest’ parent)

• if overflow, split to two, using (say,) the quadratic split algorithm– propagate the split upwards, if necessary

• update the MBRs of the affected parents.

Page 34: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 34Carnegie Mellon

R-trees - insertion - observations

• many more split algorithms exist (next!)

Page 35: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 35Carnegie Mellon

SAMs - more detailed outline

• R-trees– main idea; file structure– algorithms: insertion/split– deletion– search: range, nn, spatial joins– performance analysis– variations (packed; hilbert;...)

Page 36: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 36Carnegie Mellon

R-trees - deletion

• delete rectangle

• if underflow– ??

Page 37: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 37Carnegie Mellon

R-trees - deletion

• delete rectangle

• if underflow– temporarily delete all siblings (!);– delete the parent node and– re-insert them

Page 38: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 38Carnegie Mellon

SAMs - more detailed outline

• R-trees– main idea; file structure– algorithms: insertion/split– deletion– search: range, nn, spatial joins– performance analysis– variations (packed; hilbert;...)

Page 39: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 39Carnegie Mellon

R-trees - range search

pseudocode:

check the root

for each branch,

if its MBR intersects the query rectangle

apply range-search (or print out, if this

is a leaf)

Page 40: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 40Carnegie Mellon

R-trees - nn search

A

B

C

DE

FG

H

I

J

P1

P2

P3

P4q

Page 41: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 41Carnegie Mellon

R-trees - nn search

• Q: How? (find near neighbor; refine...)

A

B

C

DE

FG

H

I

J

P1

P2

P3

P4q

Page 42: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 42Carnegie Mellon

R-trees - nn search

• A1: depth-first search; then, range query

A

B

C

DE

FG

H

I

J

P1

P2

P3

P4q

Page 43: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 43Carnegie Mellon

R-trees - nn search

• A1: depth-first search; then, range query

A

B

C

DE

FG

H

I

J

P1

P2

P3

P4q

Page 44: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 44Carnegie Mellon

R-trees - nn search

• A1: depth-first search; then, range query

A

B

C

DE

FG

H

I

J

P1

P2

P3

P4q

Page 45: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 45Carnegie Mellon

R-trees - nn search

• A2: [Roussopoulos+, sigmod95]:– priority queue, with promising MBRs, and their

best and worst-case distance

• main idea:

Page 46: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 46Carnegie Mellon

R-trees - nn search

A

B

C

DE

FG

H

I

J

P1

P2

P3

P4q

consider only P2 and P4, for illustration

Page 47: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 47Carnegie Mellon

R-trees - nn search

DE

H

J

P2P4q

worst of P2

best of P4=> P4 is useless

for 1-nn

Page 48: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 48Carnegie Mellon

R-trees - nn search

DE

P2q

worst of P2

• what is really the worst of, say, P2?

Page 49: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 49Carnegie Mellon

R-trees - nn search

P2q

• what is really the worst of, say, P2?

• A: the smallest of the two red segments!

Page 50: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 50Carnegie Mellon

R-trees - nn search

• variations: [Hjaltason & Samet] incremental nn:– build a priority queue– scan enough of the tree, to make sure you have

the k nn– to find the (k+1)-th, check the queue, and scan

some more of the tree

• ‘optimal’ (but, may need too much memory)

Page 51: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 51Carnegie Mellon

SAMs - more detailed outline

• R-trees– main idea; file structure– algorithms: insertion/split– deletion– search: range, nn, spatial joins– performance analysis– variations (packed; hilbert;...)

Page 52: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 52Carnegie Mellon

R-trees - spatial joins

Spatial joins: find (quickly) all counties intersecting lakes

Page 53: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 53Carnegie Mellon

R-trees - spatial joins

Assume that they are both organized in R-trees:

Page 54: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 54Carnegie Mellon

R-trees - spatial joins

for each parent P1 of tree T1 for each parent P2 of tree T2 if their MBRs intersect, process them recursively (ie., check their children)

Page 55: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 55Carnegie Mellon

R-trees - spatial joins

Improvements - variations:- [Seeger+, sigmod 92]: do some pre-filtering; do

plane-sweeping to avoid N1 * N2 tests for intersection

- [Lo & Ravishankar, sigmod 94]: ‘seeded’ R-trees(FYI, many more papers on spatial joins, without R-

trees: [Koudas+ Sevcik], e.t.c.)

Page 56: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 56Carnegie Mellon

SAMs - more detailed outline

• R-trees– main idea; file structure– algorithms: insertion/split– deletion– search: range, nn, spatial joins– variations (packed; hilbert;...)

Page 57: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 57Carnegie Mellon

R-trees - variationsGuttman’s R-trees sparked much follow-up

work• can we do better splits?• what about static datasets (no ins/del/upd)?• what about other bounding shapes?

Page 58: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 58Carnegie Mellon

R-trees - variationsGuttman’s R-trees sparked much follow-up work• can we do better splits?

– i.e, defer splits?

Page 59: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 59Carnegie Mellon

R-trees - variations

A: R*-trees [Kriegel+, SIGMOD90]• defer splits, by forced-reinsert, i.e.: instead

of splitting, temporarily delete some entries, shrink overflowing MBR, and re-insert those entries

• Which ones to re-insert?• How many?

Page 60: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 60Carnegie Mellon

R-trees - variations

A: R*-trees [Kriegel+, SIGMOD90]• defer splits, by forced-reinsert, i.e.: instead

of splitting, temporarily delete some entries, shrink overflowing MBR, and re-insert those entries

• Which ones to re-insert?• How many? A: 30%

Page 61: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 61Carnegie Mellon

R-trees - variations

Q: Other ways to defer splits?

Page 62: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 62Carnegie Mellon

R-trees - variations

Q: Other ways to defer splits?A: Push a few keys to the closest sibling node (closest = ??)

Page 63: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 63Carnegie Mellon

R-trees - variations

R*-trees: Also try to minimize area AND perimeter, in their split.

Performance: higher space utilization; faster than plain R-trees. One of the most successful R-tree variants.

Page 64: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 64Carnegie Mellon

R-trees - variationsGuttman’s R-trees sparked much follow-up

work• can we do better splits?• what about static datasets (no ins/del/upd)?

– Hilbert R-trees

• what about other bounding shapes?

Page 65: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 65Carnegie Mellon

R-trees - variations• what about static datasets (no ins/del/upd)?• Q: Best way to pack points?

Page 66: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 66Carnegie Mellon

R-trees - variations• what about static datasets (no ins/del/upd)?• Q: Best way to pack points?• A1: plane-sweep great for queries on ‘x’; terrible for ‘y’

Page 67: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 67Carnegie Mellon

R-trees - variations• what about static datasets (no ins/del/upd)?• Q: Best way to pack points?• A1: plane-sweep great for queries on ‘x’; bad for ‘y’

Page 68: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 68Carnegie Mellon

R-trees - variations• what about static datasets (no ins/del/upd)?• Q: Best way to pack points?• A1: plane-sweep great for queries on ‘x’; terrible for ‘y’• Q: how to improve?

Page 69: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 69Carnegie Mellon

R-trees - variations• A: plane-sweep on HILBERT curve!

Page 70: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 70Carnegie Mellon

R-trees - variations• A: plane-sweep on HILBERT curve!• In fact, it can be made dynamic (how?), as

well as to handle regions (how?)• A: [Kamel+, VLDB94]

Page 71: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 71Carnegie Mellon

R-trees - variationsGuttman’s R-trees sparked much follow-up

work• can we do better splits?• what about static datasets (no ins/del/upd)?• what about other bounding shapes?

Page 72: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 72Carnegie Mellon

R-trees - variations• what about other bounding shapes? (and

why?)• A1: arbitrary-orientation lines (cell-tree,

[Guenther]• A2: P-trees (polygon trees) (MB polygon: 0,

90, 45, 135 degree lines)

Page 73: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 73Carnegie Mellon

R-trees - variations• A3: L-shapes; holes (hB-tree)• A4: TV-trees [Lin+, VLDB-Journal 1994]• A5: SR-trees [Katayama+, SIGMOD97] (used

in Informedia)

Page 74: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 74Carnegie Mellon

R-trees - conclusions• Popular method; like multi-d B-trees• guaranteed utilization• good search times (for low-dim. at least)• R*-, Hilbert- and SR-trees: still used• Informix ships DataBlade with R-trees

Page 75: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 75Carnegie Mellon

References

• Guttman, A. (June 1984). R-Trees: A Dynamic Index Structure for Spatial Searching. Proc. ACM SIGMOD, Boston, Mass.

• Jagadish, H. V. (May 23-25, 1990). Linear Clustering of Objects with Multiple Attributes. ACM SIGMOD Conf., Atlantic City, NJ.

• Lin, K.-I., H. V. Jagadish, et al. (Oct. 1994). “The TV-tree - An Index Structure for High-dimensional Data.” VLDB Journal 3: 517-542.

Page 76: Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications

15-415 - C. Faloutsos 76Carnegie Mellon

References, cont’d

• Pagel, B., H. Six, et al. (May 1993). Towards an Analysis of Range Query Performance. Proc. of ACM SIGACT-SIGMOD-SIGART Symposium on Principles of Database Systems (PODS), Washington, D.C.

• Robinson, J. T. (1981). The k-D-B-Tree: A Search Structure for Large Multidimensional Dynamic Indexes. Proc. ACM SIGMOD.

• Roussopoulos, N., S. Kelley, et al. (May 1995). Nearest Neighbor Queries. Proc. of ACM-SIGMOD, San Jose, CA.