Σχεδίαση Βάσεων Δεδομένων. Χωρικές Βάσεις Δεδομένων και Μέθοδοι Προσπέλασης Μανώλης Μαραγκουδάκης

Σχετικά έγγραφα
ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΙI

Βάσεις Δεδομένων ΙΙ Ενότητα 12

R-Trees, kd-trees, QuadTrees. Εαρινό Εξάμηνο Τμήμα Μηχανικών Η/Υ και Πληροϕορικής Πολυτεχνική Σχολή, Πανεπιστήμιο Πατρών

Οργάνωση Βάσεων Βιοϊατρικών Δεδομένων Εξόρυξη Γνώσης Βιοϊατρικών Δεδομένων. Σεμινάριο 6, μέρος 2 ο : Δομές ευρετηρίων για αρχεία

Οργάνωση Βάσεων Βιοϊατρικών Δεδομένων Εξόρυξη Γνώσης Βιοϊατρικών Δεδομένων. Σεμινάριο 6: Δομές ευρετηρίων για αρχεία

Κεφ.11: Ευρετήρια και Κατακερματισμός

MBR Ελάχιστο Περιβάλλον Ορθογώνιο (Minimum Bounding Rectangle) Το µικρότερο ορθογώνιο που περιβάλλει πλήρως το αντικείµενο 7 Παραδείγµατα MBR 8 6.

Διάλεξη 14: Δέντρα IV - B-Δένδρα

Χωρικές και Πολυμεσικές Βάσεις Δεδομένων (ΠΜΣ) Ενδεικτικές ερωτήσεις-θέματα για την εξέταση της θεωρίας

Τεχνικές Προσπέλασης σε Πολυδιάστατες Βάσεις εδοµένων µε χρήση ένδρων (R-trees,

ΗΥ360 Αρχεία και Βάσεις εδοµένων

Multimedia IR. εικτοδότηση και Αναζήτηση. Ανάκτηση Πληροφορίας

Multimedia IR. Εισαγωγή. Εισαγωγή. εικτοδότηση και Αναζήτηση

Διάλεξη 14: Δέντρα IV B Δένδρα. Διδάσκων: Παναγιώτης Ανδρέου

Βάσεις Δεδομένων ΙΙ Ενότητα 6

«ΣΥΓΚΡΙΤΙΚΗ ΜΕΛΕΤΗ ΜΕΘΟ ΩΝ ΚΑΤΑΣΚΕΥΗΣ ΤΟΥ R* TREE ΜΕ ΟΡΟΥΣ ΑΠΟ ΟΤΙΚΟΤΗΤΑΣ ΓΙΑ ΕΡΩΤΗΜΑΤΑ ΚΟΝΤΙΝΟΤΕΡΟΥ ΓΕΙΤΟΝΑ ΣΕ ΠΟΛΥ ΙΑΣΤΑΤΟΥΣ ΧΩΡΟΥΣ Ε ΟΜΕΝΩΝ»

Τµήµα Πληροφορικής. Δοµές Δεδοµένων - Εργασία 3. Φθινοπωρινό Εξάµηνο Διδάσκων: E. Μαρκάκης. Εφαρµογές των Δέντρων Δυαδικής Αναζήτησης

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

Αναζήτηση σε Γράφους. Μανόλης Κουμπαράκης. ΥΣ02 Τεχνητή Νοημοσύνη 1

ΛΥΣΗ ΤΗΣ ΔΕΥΤΕΡΗΣ ΑΣΚΗΣΗΣ Όλγα Γκουντούνα

Αλγόριθμοι και πολυπλοκότητα: 4 η σειρά ασκήσεων ΣΗΜΜΥ - Ε.Μ.Π.

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Κατακερματισμός (Hashing)

Ενότητες 3 & 4: Δένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Παράλληλοι Αλγόριθμοι: Ανάλυση Εικόνας και Υπολογιστική Γεωμετρία. Πέτρος Ποτίκας CoReLab 4/5/2006

Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή

Διάλεξη 11: Δέντρα Ι - Εισαγωγή σε Δενδρικές Δομές Δεδομένων

Επεξεργασία Ερωτήσεων

ΠΡΟΧΩΡΗΜΕΝΑ ΘΕΜΑΤΑ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ

Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα)

Δομές Δεδομένων & Αλγόριθμοι

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Επίλυση Προβληµάτων µε Greedy Αλγόριθµους

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Αποθήκες Δεδομένων και Εξόρυξη Δεδομένων:

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Θέμα: Ανάπτυξη Βασικής Πλατφόρμας για Υπηρεσίες με Βάση το Προφίλ και τη Θέση (Profile & Location Based Services)

Πελάτες φθάνουν στο ταμείο μιας τράπεζας Eνα μόνο ταμείο είναι ανοικτό Κάθε πελάτης παρουσιάζεται με ένα νούμερο - αριθμός προτεραιότητας Όσο ο

Διάλεξη 23: Τεχνικές Κατακερματισμού II (Hashing)

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Δέντρα Αναζήτησης. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Εισαγωγή στην. Εισαγωγή Σ Β. Αρχεία ευρετηρίου Κατάλογος. συστήματος. Αρχεία δεδομένων

Κεφάλαιο 14. Δομές Ευρετηρίων για Αρχεία. Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Ελληνική Έκδοση,

Κεφάλαιο 6. Μέθοδοι επίλυσης προβλημάτων ακέραιου προγραμματισμού

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX. Συστήματα Αρχείων. Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη

Αλγόριθμοι Ταξινόμησης Μέρος 4

Αποθήκες Δεδομένων και Εξόρυξη Δεδομένων

Διδάσκων: Παναγιώτης Ανδρέου

Δοµές Δεδοµένων. 11η Διάλεξη Ταξινόµηση Quicksort και Ιδιότητες Δέντρων. Ε. Μαρκάκης

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ

Φροντιστήριο Αποθήκευση σε δίσκο, βασικές οργανώσεις αρχείων κατακερματισμός και δομές ευρετηρίων για αρχεία

ΑΛΓΟΡΙΘΜΟΙ ΜΕ C. ΝΙΚΟΛΑΟΣ ΣΑΜΑΡΑΣ Αναπληρωτής Καθηγητής. CMOR Lab. Computational Methodologies and Operations Research

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Δομές Δεδομένων. Ενότητα 13: B-Δέντρα/AVL-Δέντρα. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων

Τεχνητή Νοημοσύνη. 3η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

Δομές Δεδομένων & Αλγόριθμοι

Δυναμικός Κατακερματισμός

6η Διάλεξη Διάσχιση Γράφων και Δέντρων

Προηγμένη Ευρετηρίαση Δεδομένων (ΠΜΣ) Ενδεικτικές ερωτήσεις-θέματα για την εξέταση της θεωρίας

Gemini, FastMap, Applications. Εαρινό Εξάμηνο Τμήμα Μηχανικών Η/Υ και Πληροϕορικής Πολυτεχνική Σχολή, Πανεπιστήμιο Πατρών

Διάλεξη 11: Δέντρα Ι Εισαγωγή σε Δενδρικές Δομές Δεδομένων

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Επίλυση προβλημάτων με αναζήτηση

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Διάλεξη 22: Δυαδικά Δέντρα. Διδάσκων: Παναγιώτης Ανδρέου

Advanced Data Indexing

Συστήματα Ανάκτησης Πληροφοριών ΗΥ-463

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Γραφήματα. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Τα δεδομένα (περιεχόμενο) μιας βάσης δεδομένων αποθηκεύεται στο δίσκο

Β Ομάδα Ασκήσεων "Λογικού Προγραμματισμού" Ακαδημαϊκού Έτους

auth Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ -4ο εξάμηνο 1

Διάλεξη 18: B-Δένδρα

Βάσεις Δεδομένων. Αποθήκευση σε δίσκο, βασικές οργανώσεις αρχείων, κατακερματισμός και δομές ευρετηρίων για αρχεία. Φροντιστήριο 7 o

Στοιχεία Θεωρίας Γράφων (Graph Theory)

Ενότητα 3: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ

Δομές Δεδομένων και Αλγόριθμοι

Advanced Data Indexing

Ουρές προτεραιότητας

13/5/2015 ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ. Δομές Δεδομένων. Ουρές Προτεραιότητας

Ταξινόμηση κάδου και ταξινόμηση Ρίζας Bucket-Sort και Radix-Sort

ΠΑΙΓΝΙΑ Παιχνίδια Γενική Θεώρηση μεγιστοποιήσει την πιθανότητά

Θέματα Υπολογισμού στον Πολιτισμό - Δένδρα. Δένδρα

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

Προγραμματισμός Ι (ΗΥ120)

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΙI

Δομές δεδομένων και ψηφιακή αναπαράσταση χωρικών φαινομένων

Προγραμματισμός Ι (ΗΥ120)

ΠΛΗ111. Ανοιξη Μάθηµα 7 ο. έντρο. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

Union Find, Λεξικό. Δημήτρης Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Εθνικό Μετσόβιο Πολυτεχνείο

Red-black δέντρα (Κεφ. 5)

Κατ οίκον Εργασία 5 Σκελετοί Λύσεων

Διδάσκων: Παναγιώτης Ανδρέου

Πρόβληµα (ADT) Λεξικού. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Λεξικό, Union - Find 2

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΙI

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ

Δομές Δεδομένων. Ενότητα 1 - Εισαγωγή. Χρήστος Γκουμόπουλος. Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων

Transcript:

Σχεδίαση Βάσεων Δεδομένων Χωρικές Βάσεις Δεδομένων και Μέθοδοι Προσπέλασης Μανώλης Μαραγκουδάκης

Τι είναι μια Χωρική Βάση Δεδομένων Ένα ΣΔΒΔ που είναι βελτιστοποιημένο για να αποθηκεύει και να αναζητά αντικείμενα τύπου: Σημείο: ένα ξενοδοχείο, ένα αυτοκίνητο, ένα εστιατόριο Γραμμή: ένα οδικό τμήμα Πολύγωνο: τοπογραφική περιοχή, VLSI σχέδιο 2 Οδικό Δίκτυο Δορυφορική Εικόνα VLSI Σχέδιο

Είναι οι Χωρικές Βάσεις Δεδομένων (ΧΒΔ) Χρήσιμες; Geographical Information Systems 3 Π.χ. Δεδομένα: οδικόδίκτυοκαιμέρηενδιαφέροντος. Π.χ. Χρήση: οδηγίες κίνησης, επείγουσες κλήσεις, προτάσεις διασκέδασης. Περιβαλλοντολογικά Συστήματα Π.χ.. Δεδομένα: κάλυψη του εδάφους, κλίμα, βροχόπτωση, πυρκαγιές σε δάση. Π.χ. χρήση: βρες τη συνολική βροχόπτωση του έτους. Συστήματα Υποστήριξης Αποφάσεων Π.χ. Δεδομένα: Τοποθεσίες καταστημάτων και πελατών. Π.χ. Χρήση: προσδιόρισε τη βέλτιστη τοποθεσία για ένα νέο κατάστημα. Συστήματα Επίβλεψης Στρατιωτικού Δυναμικού Π.χ. Δεδομένα: ακριβής τοποθεσία και ειδικότητα κάθε στρατιώτη/υλικού). Π.χ. Χρήση: Επισκόπηση της καλύτερης οργάνωσης μιας αποστολής με βάση τις ειδικότητες και την απόσταση που έχουν μεταξύ τους

Ερώτηση Κοντινότερο μονοπάτι Γρηγορότερο Μονοπάτι MapQuest.com 4

Οδηγίες Πλοήγησης Βρες το πλησιέστερο νοσοκομείο. NN Query 5

Ερώτηση Εύρους ArcGIS 6 9.2, SRI

Είναι οι Χωρικές Βάσεις Δεδομένων (ΧΒΔ) Χρήσιμες; Geographical Information Systems Π.χ. Δεδομένα: οδικό δίκτυο και μέρη ενδιαφέροντος. Π.χ. Χρήση: οδηγίες κίνησης, επείγουσες κλήσεις, προτάσεις διασκέδασης. Περιβαλλοντολογικά Συστήματα 7 Π.χ.. Δεδομένα: κάλυψη του εδάφους, κλίμα, βροχόπτωση, πυρκαγιές σε δάση. Π.χ. χρήση: βρες τη συνολική βροχόπτωση του έτους. Συστήματα Υποστήριξης Αποφάσεων Π.χ. Δεδομένα: Τοποθεσίες καταστημάτων και πελατών. Π.χ. Χρήση: προσδιόρισε τη βέλτιστη τοποθεσία για ένα νέο κατάστημα. Συστήματα Επίβλεψης Στρατιωτικού Δυναμικού Π.χ. Δεδομένα: ακριβής τοποθεσία και ειδικότητα κάθε στρατιώτη/υλικού). Π.χ. Χρήση: Επισκόπηση της καλύτερης οργάνωσης μιας αποστολής με βάση τις ειδικότητες και την απόσταση που έχουν μεταξύ τους

Ερώτηση Συνάθροισης 8

Είναι οι Χωρικές Βάσεις Δεδομένων (ΧΒΔ) Χρήσιμες; Geographical Information Systems Π.χ. Δεδομένα: οδικόδίκτυοκαιμέρηενδιαφέροντος. Π.χ. Χρήση: οδηγίες κίνησης, επείγουσες κλήσεις, προτάσεις διασκέδασης. Περιβαλλοντολογικά Συστήματα Π.χ.. Δεδομένα: κάλυψη του εδάφους, κλίμα, βροχόπτωση, πυρκαγιές σε δάση. Π.χ. χρήση: βρες τη συνολική βροχόπτωση του έτους. Συστήματα Υποστήριξης Αποφάσεων Π.χ. Δεδομένα: Τοποθεσίες καταστημάτων και πελατών. Π.χ. Χρήση: προσδιόρισε τη βέλτιστη τοποθεσία για ένα νέο κατάστημα. Συστήματα Επίβλεψης Στρατιωτικού Δυναμικού Π.χ. Δεδομένα: ακριβής τοποθεσία και ειδικότητα κάθε στρατιώτη/υλικού). Π.χ. Χρήση: Επισκόπηση της καλύτερης οργάνωσης μιας αποστολής με βάση τις ειδικότητες και την απόσταση που έχουν μεταξύ τους 9

Ερώτημα Βέλτιστης Τοποθεσίας 10

Είναι οι Χωρικές Βάσεις Δεδομένων (ΧΒΔ) Χρήσιμες; Geographical Information Systems Π.χ. Δεδομένα: οδικόδίκτυοκαιμέρηενδιαφέροντος. Π.χ. Χρήση: οδηγίες κίνησης, επείγουσες κλήσεις, προτάσεις διασκέδασης. Περιβαλλοντολογικά Συστήματα Π.χ.. Δεδομένα: κάλυψη του εδάφους, κλίμα, βροχόπτωση, πυρκαγιές σε δάση. Π.χ. χρήση: βρες τη συνολική βροχόπτωση του έτους. Συστήματα Υποστήριξης Αποφάσεων Π.χ. Δεδομένα: Τοποθεσίες καταστημάτων και πελατών. Π.χ. Χρήση: προσδιόρισε τη βέλτιστη τοποθεσία για ένα νέο κατάστημα. Συστήματα Επίβλεψης Στρατιωτικού Δυναμικού Π.χ. Δεδομένα: ακριβής τοποθεσία και ειδικότητα κάθε στρατιώτη/υλικού). Π.χ. Χρήση: Επισκόπηση της καλύτερης οργάνωσης μιας αποστολής με βάση τις ειδικότητες και την απόσταση που έχουν μεταξύ τους 11

George Bill Bob John Mike NN(Bob) = George ΝΝ=Nearest Neighbor 12

George Ποιος θα χρειαστεί βοήθεια; Bill Bob John Mike K-NN ερώτημα Κ-NN(Bob) = {John, Mike} 13

Ερωτήματα τύπου Skyline Παράδειγμα: υποθέστε ότι ένας φοιτητής θέλει να βρει ξενοδοχείο κοντά στην παραλία. Ποιες είναι οι καλύτερες επιλογές; ΞΕΝΟΔΟΧΕΙΑ Τιμή Απόσταση t 1 3 2 t 2 4 7 t 3 9 5 t 4 4 6 t 5 2 3 t 6 6 1 t 7 1 4 Όσο μικρότερο τόσο καλύτερο! Απόσταση 1 2 3 4 5 6 7 8 t 7 Skyline αντικείμενα t 5 t 1 t 2 t 4 1 2 3 4 5 6 7 8 9 Ta t 2, t 3 και t 4 επισκιάζονται(dominated) t 6 t 3 Τιμή 14

Ερωτήματα τύπου Skyline 2004 NBA dataset*: κάθε παίκτης έχει 17 ιδιότητες Χωρικά Δεδομένα : ένα αντικείμενο είναι ένα σημείο σε έναν 17 διάστατο χώρο Ποιοι είναι οι καλύτεροι παίκτες? Δηλ που δεν «επισκιάζονται» από κανέναν άλλο. Ερώτημα Skyline Name Points Rebounds Assists Steals Tracy McGrady 2003 484 448 135 Kobe Bryant 1819 392 398 86 Shaquille O'Neal 1669 760 200 36 Yao Ming 1465 669 61 34 Dwyane Wade 1854 397 520 121 Steve Nash 1165 249 861 74 15 * www.databasebasketball.com

ΤΕΛΕΣΤΕΣ 16

ΤΕΛΕΣΤΕΣ 17

Ερευνητικοί Στόχοι Να υποστηρίζουμε ερωτήματα σε χωρικές βάσεις δεδομένων αποτελεσματικά! range query, aggregation query, NN query, κ NN query, optimal-location query, fastest-path query, skyline query, Ποια πρόταση είναι η σωστότερη για μια μεγάλη ΧΒΔ; (a) Ένας O(n 2 ) αλγόριθμος και ένας O(n) αλγόριθμος είναι αποτελεσματικοί. (b) Ένας O(n 2 ) αλγόριθμος δεν είναι αποτελεσματικός, αλλά ένας O(n) είναι. (c) Ούτε ο O(n 2 ) αλγόριθμος ούτε και ο O(n) αλγόριθμος είναι. Απάντηση: (c)! Ακόμη και ένας γραμμικός αλγόριθμος είναι ΑΝΑΠΟΤΕΛΕΣΜΑΤΙΚΟΣ! 18

Ερευνητικοί Στόχοι Παράδειγμα γραμμικού αλγορίθμου: Για να βρεις το πλησιέστερο Pizza Hut, συνέκρινετομεόλατα Pizza Hut του κόσμου Παράδειγμα τετραγωνικού αλγορίθμου: Για να βρεις τα καλύτερα ξενοδοχεία, συνέκρινε κάθε ξενοδοχείο με όλα τα υπόλοιπα Σενάριο: Disk page: 8KB. Μέγεθος Βάσης: 1GB = 131,072 disk page. Έστω κάθε disk I/O κάνει 10-3 second. O(n): 131 seconds 2 minutes. (ΑΝΑΠΟΤΕΛΕΣΜΑΤΙΚΟ!) O(n 2 ): 200 ημέρες! (ΕΚΤΟΣ ΠΡΑΓΜΑΤΙΚΟΤΗΤΑΣ!) 19

Γιατί δεν βάζουμε παραδοσιακές μεθόδους δεικτοδότησης; Hash Tables: Δεν είναι χρήσιμοι μιας και δεν επιτρέπουν ερωτήσεις τύπου range B-Trees: είναι μονοδιάστατα. Quad Trees & k-d Trees: δεν λαμβάνουν υπόψη τη σελιδοποίηση της δευτερεύουσας μνήμης

Μπορούμε καλύτερα από O(n)? Απάντηση: Χρησιμοποίησε (disk-based) δομές δεικτοδότησης Ωστόσο, οι μονοδιάστατες δομές όπως τα B+δέντρα, δεν είναι χρήσιμα. Π.χ. ΓιαναβρωξενοδοχείαστηΡώμη 21

Οι Μονοδιάστατοι Δείκτες ΔΕΝ αρκούν 22 Έστω ένα B+-tree στη διάσταση Χ.

Οι Μονοδιάστατοι Δείκτες ΔΕΝ αρκούν 23 Έστω ένα B+-tree στη διάσταση Χ.

R-Trees Επέκταση των B+-trees. Συλλογή από δ διάστατα ορθογώνια. Ένα σημείο θεωρείται ένα στοιχειώδες ορθογώνιο.

R-trees [Guttman 84] Κεντρική ιδέα: επιτρέπει στους γονείς να επικαλύπτουν! => εγγυημένη 50% αξιοποίηση => ευκολότεροι αλγόριθμοι εισαγωγής/split. (χειρίζεται μόνο Minimum Bounding Rectangles - MBRs)

R-trees πχ., με fanout 4: ομαδοποίησε κοντινά ορθογώνια στους γονείς MBRs. Κάθε ομάδα -> σελίδα δίσκου B A C D F G J H I

R-trees πχ., με fanout 4: P1 A B P2 C D P3 G F P4 J H I A B C D H I J F G

R-trees πχ., με fanout 4: P1 A B P2 C D P3 G F P4 J H I A B C D P1 P2 P3 P4 H I J F G

R-trees οργάνωσηκόμβων {(MBR; obj-ptr)} για φύλλα P1 P2 P3 P4 x-low; x-high y-low; y-high... obj ptr... A B C

R-trees οργάνωσηκόμβων {(MBR; node-ptr)} για μη φύλλα x-low; x-high node y-low; y-high ptr...... P1 P2 P3 P4 A B C

R-Trees Δομή R-tree τάξης M. Κάθε κόμβος εκτός της ρίζας έχει μεταξύ m <= ceil(m/2) και M ορθογώνια/mbrs. Από εδώ και πέρα m = ceil(m/2). Η ρίζα έχει μεταξύ 1 και Μ ορθογώνια/mbrs. Κάθε κόμβος δεικτοδότησης έχει μέχρι Μ MBRs ως παιδιά. Όλοι οι κόμβοι δεδομένων είναι στο ίδιο επίπεδο.

Παράδειγμα R-tree τάξης 4. Κάθε κόμβος μπορεί να έχει έως 4 ορθογώνια/mbrs.

Παράδειγμα Πιθανός διαχωρισμός των δεδομένων μας σε 12 φύλλα.

Παράδειγμα Πιθανό R-tree τάξης 4 με 12 φύλλα. mnop a b cd ef g h i j kl Τα φύλλα είναι κόμβοι δεδομένων που περιέχουν 4 ορθογώνια (και τα σημεία θεωρούνται ορθογώνια) το καθένα Τα a-p είναι MBRs

mn o p Παράδειγμα Πιθανή αντιστοιχία ομαδοποίησης. a b cd e f g h i jkl a m b c d

mn o p Παράδειγμα Πιθανή αντιστοιχία ομαδοποίησης. a b cd e f g h i jkl a m e n f b c d

mn o p Παράδειγμα Πιθανή αντιστοιχία ομαδοποίησης. a b cd e f g h i jkl a m e n f b g c d h i o p

Ερωτήσεις Επέστρεψε όλα τα ορθογώνια που τέμνουν ένα δοσμένο ορθογώνιο.

Ερωτήσεις Ξεκίνα από τη ρίζα και βρες όλα τα MBRs που τέμνουν (επικαλύπτουν) το ορθογώνιο του ερωτήματος. Αναζήτησε στο αντίστοιχο υπο δέντρο επαναληπτικά. m n a a o x p a

Ερωτήσεις Ψάξε στο m. Επανέλαβε για τα n,o (το p έχει απορριφθεί από πριν) a m n a b a o p c x d x

R-tree, Παράδειγμα ενός Range Query y 10 m g h 8 l e f k 6 2 i j d 1 4 b a 2 c x 0 2 4 6 8 10 Ρίζα 1 2 1 3 4 5 6 7 2 a b c d e f g h i j k l m 3 4 5 6 7

R-tree, Παράδειγμα ενός Range Query y 10 m g h 8 l e f k 6 2 i j d 1 4 b a 2 c x 0 2 4 6 8 10 Ρίζα 1 2 1 3 4 5 6 7 2 a b c d e f g h i j k l m 3 4 5 6 7

Ερωτήσεις Πλησιέστερου Γείτονα Nearest Neighbor (NN) Δεδομένηςμιαςτοποθεσίας(ερώτησης) q, βρες τα πλησιέστερα αντικείμενα. a q Depth First και Best-First Search με χρήση R-trees Ο σκοπός μας: αποφυγή επισκέψεων σε κόμβους που δεν μπορεί να έχουν χρήσιμα αποτελέσματα

Βασικός Δείκτης Απαλοιφής: MINDIST Η ελάχιστη απόσταση μεταξύ του q και ενός MBR. 1 mindist( 1,q) q p Η mindist( 1,q) είναι ένα κατώτερο όριο της απόστασης d(o,q) για κάθε αντικείμενο o στο MBR 1. Αν έχουμε βρει έναν υποψήφιο NN p, μπορούμε να απαλείψουμε (Prune) κάθε MBR που έχει mindist > d(p, q).

Depth-First (DF) NN Αλγόριθμος 10 8 6 4 2 y e b c f d g 4 5 1 3 h a 2 6 0 2 4 6 8 10 i query Ρίζα 1 2 m 3 4 1 5 6 7 5 9 2 2 13 a b c d e f g h i j k 5 l m 2 10 13 3 4 5 6 7 j k 7 l x Σημείωση: Οι αποστάσεις δ αποθηκεύονται πραγματικά στους κόμβους.

DF Search Επιλογή του κόμβου 1 10 8 6 4 2 y e m 2 g h 6 f 4 5 1 d b c 3 a 0 2 4 6 8 10 i query 7 l k j Ρίζα 1 2 3 4 1 5 6 7 5 9 2 2 13 a b c d e f g h i j k 5 l m 2 3 4 5 6 7 x

DF Search Βρες υποψήφιο NN a 10 8 6 4 2 y e m 2 g h 6 f 4 5 1 d b c 3 a 0 2 4 6 8 10 i query 7 l k j Ρίζα Πρώτος υποψήφιος ΝΝ 1 2 a με απόσταση5 3 4 1 5 6 7 5 9 2 2 13 a b c d e f g h i j k 5 l m 2 3 4 5 6 7 x

Επιστροφή στη ρίζα και επιλογή του Ε 2 10 8 6 4 2 y e m 2 g h 6 f 4 5 1 d b c 3 a 0 2 4 6 8 10 Ρίζα 1 2 3 4 1 5 6 7 5 9 2 2 13 a b c d e f g h i j k 5 l m 2 3 4 5 6 7 i query 7 l k j x

DF Search Find Actual NN i 10 8 6 4 2 y e b c f d g 3 h 4 5 1 a 0 2 4 6 8 10 Ρίζα 1 2 2 6 3 4 1 5 6 7 5 9 2 2 13 a b c d e f g h i j k 5 l m 2 3 4 5 6 7 i query m j k 7 l x Πραγματικός NN: i με απόσταση 2

Βελτιστοποίηση 10 8 6 4 2 y e b c f d g 3 h 4 5 1 a 2 6 0 2 4 6 8 10 i query Ερώτηση: Ποιο είναι το ελάχιστο σύνολο κόμβων που πρέπει να επισκευθεί ο κάθε αλγόριθμος ΝΝ; Απάντηση: Το σύνολο των κόμβων που έχουν MINDIST μικρότερη ή ίση από την απόσταση μεταξύ της q και των ΝΝ της (π.χ, 1, 2, 6 ). m j k 7 l x

Best-First (BF) NN Αλγόριθμος (Βέλτιστος) Κράτα μια λίστα δεικτών και αντικειμένων, ταξινομημένη κατά MINDIST. Αρχικά η H περιέχει τη ρίζα. While H φ Εξαγωγή του στοιχείου με ελάχιστη MINDIST Εάν είναι δείκτης, βάλε τα παιδιά του στην Η Εάν είναι αντικείμενο, επέστρεψε το σαν ΝΝ. nd while

BF Αναζήτηση Εκκίνηση από τη ρίζα 10 8 6 4 2 y e b c f d g 3 h 4 5 1 a 2 6 0 2 4 6 8 10 i query m j k 7 l x Ρίζα 1 2 Ενέργεια Heap Ξεκίνα από 1 1 2 τη ρίζα 3 4 1 5 6 7 5 9 2 2 13 a b c d e f g h i j k l m 2 10 13 3 4 5 6 7 2

BF Αναζήτηση Πήγαινε στο 1 10 8 6 4 2 y e b c f d g 3 h 4 5 1 a 2 6 0 2 4 6 8 10 i query m j k 7 l Ενέργεια Heap Ρίζα Πήγαινε στο 1 x Ρίζα 1 2 3 4 1 5 6 7 5 9 2 2 13 a b c d e f g h i j k l m 2 10 13 3 4 5 6 7 1 2 1 2 2 3 2 5 5 5 4 9

BF Αναζήτηση Πήγαινε στο 2 10 8 6 4 2 y e m 2 g h 6 f 4 5 1 d b c 3 a 0 2 4 6 8 10 i query k j 7 Action Ρίζα Πήγαινε στο 1 Πήγαινε στο 2 l x Heap 1 2 6 1 2 2 2 3 3 2 5 5 5 5 4 9 5 5 4 9 7 13 Ρίζα 1 2 3 4 1 5 6 7 5 9 2 2 13 a b c d e f g h i j k l m 2 10 13 3 4 5 6 7

BF Αναζήτηση Πήγαινε στο 6 10 8 6 4 y e b f d g 3 h 4 5 1 a 2 6 i query m j k 7 l Ενέργεια Heap 1 1 Ρίζα 2 Πήγαινε στο 1 2 2 3 Πήγαινε στο 2 6 2 3 Πήγαινε στο 6 2 5 5 i 2 5 3 5 5 5 5 5 5 4 4 4 9 9 9 7 j 13 10 7 13 k 13 2 c 0 2 4 6 8 10 x Ρίζα 1 2 3 4 1 5 6 7 5 9 2 2 13 a b c d e f g h i j k l m 2 10 13 3 4 5 6 7

DF Αναζήτηση Πραγματικός NN i 10 8 6 4 2 y e m 2 g h 6 f 4 5 1 d b c 3 a 0 2 4 6 8 10 i query k j 7 l Ενέργεια Heap 1 1 Ρίζα 2 2 Πήγαινε στο 1 2 2 3 5 5 5 4 9 Πήγαινε στο 2 6 2 3 5 5 5 4 9 7 13 Πήγαινε στο 6 i j 2 3 5 5 5 4 9 10 7 13 k Επέστρεψε το i και τερμάτισε x Ρίζα 1 2 3 4 1 5 6 7 5 9 2 2 13 a b c d e f g h i j k l m 2 10 13 3 4 5 6 7 13

Παρατηρήσεις για ερωτήσεις ΝΝ Τόσο ο DF όσο και ο BF μπορούν εύκολα να αλλάξουν για να Βρίσκουν αντικείμενα αντί για σημεία Επιστρέφουν Κ (>1) ΝΝ. Ο BF είναι αυξητικός, δηλαδή μπορεί να επιστρέφει ΝΝ με αύξουσα σειρά χωρίς να του δώσουμε τιμή στο Κ. Π.χ. βρες τις 3 πλησιέστερες πόλεις στην Αθήνα > θα μας επιστρέψει πολλές πόλεις (>>3) αλλάησειράθαμας επιστρέψει να πάρουμε τις 3 πλησιέστερες (άρα και να απαντήσουμε στο ερώτημα)

Skyline Ερωτήματα y 10 9 8 7 6 5 4 3 2 1 price a b i c g h d f m o 1 2 3 4 5 6 7 8 9 10 n e l k x distance Έστω ότι τα σημεία είναι ξενοδοχεία με βάση 2 ιδιότητες: Απόσταση από την παραλία και Τιμή Ερώτηση: Ποια είναι τα καλύτερα ξενοδοχεία; Απάντηση: αυτά που δεν κυριαρχούνται (not dominated) (a, i, k). Τα σημεία αυτά αποτελούν το skyline

NN Αλγόριθμος ως βάση Ο NN χρησιμοποιεί τα αποτελέσματα της αναζήτησης για να διαμελίσει αναδρομικά το χώρο σε τμήματα. x y b a i k h g d f e c l o 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 m n x y b a i k h g d f e c l o 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 m n

NN Αλγόριθμος ως βάση Ο NN χρησιμοποιεί τα αποτελέσματα της αναζήτησης γιαναδιαμελίσειαναδρομικάτοχώροσετμήματα. x y b a i k h g d f e c l o 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 m n x y b a i k h g d f e c l o 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 m n note: another query is necessary to confirm this partition empty

Εισαγωγή Παραπλήσια με την εισαγωγή σε ένα B+-tree αλλά μπορεί να γίνει εισαγωγή σε οποιοδήποτε φύλλο. Ένα φύλλο διασπάται αν υπερβεί την χωρητικότητα του. 2 προβλήματα: Σε ποιο φύλλο να γίνει η εισαγωγή; Πώς να διασπάσουμε έναν κόμβο;

Εισαγωγή Επιλογή Φύλλου Ακολούθησε το μονοπάτι από τη ρίζα στο φύλλο. Σε κάθε κόμβο, μετακινήσου στο υποδέντρο του οποίου το εμβαδόν του MBR αυξάνεται λιγότερο με την εισαγωγή του νέου αυτού ορθογωνίου. m n o p

Εισαγωγή Επιλογή Φύλλου Τοποθέτησε το στο ΜΒR m. m

Εισαγωγή Επιλογή Φύλλου Τοποθέτησε το στο ΜΒR n. n

Εισαγωγή Επιλογή Φύλλου Τοποθέτησε το στο ΜΒR o. o

Εισαγωγή Επιλογή Φύλλου Τοποθέτησε το στο ΜΒR p. p

Εισαγωγή Επιλογή Φύλλου(1/7) R3 B A X D R4 R1 F R2 G R5 I K H R6 L Εισαγωγή ενός νέου αντικειμένου X R1 R2 R3 R4 R5 R6 A B D F G H I K L 67

Εισαγωγή Επιλογή Φύλλου(2/7) R3 B A X D R4 R1 F R2 G R5 I K H R6 L Βρες τον καλύτερο κόμβο-παιδί - μικρότερη αύξηση εμβαδού R1 R2 R3 R4 R5 R6 A B D F G H I K L 68

Εισαγωγή Επιλογή Φύλλου(3/7) R3 B R2 A X D R4 R1 F G R5 I K H R6 L R1 R2 R3 R4 R5 R6 A B D F G H I K L 69

Εισαγωγή Επιλογή Φύλλου(4/7) R3 B A X D R4 R1 F R2 G R5 I K H R6 L R1 R2 R3 R4 R5 R6 A B D F G H I K L 70

Εισαγωγή Επιλογή Φύλλου(5/7) R3 B A X R4 D R1 F R2 G R5 I K H R6 L R1 R2 R3 R4 R5 R6 A B D F G H I K L 71

Εισαγωγή Επιλογή Φύλλου(6/7) R3 A B X D R4 R1 F R2 G R5 I K H R6 L R1 R2 R3 R4 R5 R6 A B D F G H I K L 72

Εισαγωγή Επιλογή Φύλλου(7/7) R3 A B X D R4 R1 F R2 G R5 I K H R6 L R1 R2 R3 R4 R5 R6 A B X D F G H I K L 73 Άδεια θέση

Εισαγωγή Διάσπαση ενός κόμβου ΔιέσπασετοσύνολοτωνM+1 ορθογωνίων/mbr σε δυο σύνολα Α και Β. Τα Α και Β έχουν το καθένα τουλάχιστο m ορθογώνια/mbr Το άθροισμα των περιοχών των MBR του Α και Β είναι ελάχιστο M = 8, m = 4

Εισαγωγή Διάσπαση ενός κόμβου ΔιέσπασετοσύνολοτωνM+1 ορθογωνίων/mbr σε δυο σύνολα Α και Β. Τα Α και Β έχουν το καθένα τουλάχιστο m ορθογώνια/mbr Το άθροισμα των περιοχών των MBR του Α και Β είναι ελάχιστο M = 8, m = 4

Εισαγωγή Διάσπαση ενός κόμβου ΔιέσπασετοσύνολοτωνM+1 ορθογωνίων/mbr σε δυο σύνολα Α και Β. Τα Α και Β έχουν το καθένα τουλάχιστο m ορθογώνια/mbr Το άθροισμα των περιοχών των MBR του Α και Β είναι ελάχιστο M = 8, m = 4

Εισαγωγή Διάσπαση ενός κόμβου Εξαντλητική αναζήτηση για το καλύτερο Α και Β Υπολόγισε την περιοχή: area(mbr(a)) + area(mbr(b)) για κάθε πιθανό Α Σημείωση: για κάθε Α το Β είναι μοναδικό Επέλεξε τη διαμέριση που ελαχιστοποιεί το άθροισμα αυτό. Όταν A = m = ceil(m/2), ο αριθμόςπιθανώνα είναι: (M+1)! m!(m+1-m)! Μη πρακτικό για μεγάλα Μ

Εισαγωγή Διάσπαση ενός κόμβου Μεγάλωσε τα Α και Β με μια στρατηγική ομαδοποίησης Ξεκίνα με ένα βασικό (seed) ορθογώνιο a για το Α και b για το Β Μεγάλωνε τα Α και Β κατά ένα ορθογώνιο τη φορά. Σταμάτησε όταν τα Μ+1 ορθογώνια έχουν διαμεριστεί στα ΑκαιΒ

Εισαγωγή Διάσπαση ενός κόμβου Τετραγωνική (Quadratic) Μέθοδος. Έστω S το σύνολο των Μ+1 ορθογωνίων που πρόκειται να διαμεριστούν. Βρες a και b στο S που μεγιστοποιούν το area(mbr(a,b)) area(a) area(b) M = 8, m = 4

Εισαγωγή Διάσπαση ενός κόμβου Τετραγωνική (Quadratic) Μέθοδος. Έστω S το σύνολο των Μ+1 ορθογωνίων που πρόκειται να διαμεριστούν. Βρες a και b στο S που μεγιστοποιούν το area(mbr(a,b)) area(a) area(b) M = 8, m = 4

Εισαγωγή Διάσπαση ενός κόμβου Quadratic Μέθοδος. Βρες ένα μη χαρακτηρισμένο ορθογώνιο c που μεγιστοποιεί το area(mbr(a,c)) area(mbr(a)) - (area(mbr(b,c)) area(mbr(b))) M = 8, m = 4

Εισαγωγή Διάσπαση ενός κόμβου Quadratic Μέθοδος. Βρες ένα μη χαρακτηρισμένο ορθογώνιο c που μεγιστοποιεί το area(mbr(a,c)) area(mbr(a)) - (area(mbr(b,c)) area(mbr(b))) M = 8, m = 4

Εισαγωγή Διάσπαση ενός κόμβου Quadratic Μέθοδος. Ανάθεσε το c στη διαμέριση της οποίας το εμβαδόν αυξήθηκε λιγότερο M = 8, m = 4

Εισαγωγή Διάσπαση ενός κόμβου Quadratic Μέθοδος. Συνέχισε την ανάθεση με τον τρόπο αυτό έως ότου όλα τα εναπομείναντα ορθογώνια να πρέπει αναγκαστικά να ανατεθούν σε μια από τις δύο διαμερίσεις ώστε να έχει m ορθογώνια M = 8, m = 4

Εισαγωγή Διάσπαση ενός κόμβου Γραμμική (Linear) Μέθοδος. Επέλεξε ένα a και b που έχουν μια μέγιστη διαχώριση (συνήθως κανονικοποιημένη). M = 8, m = 4

Εισαγωγή Διάσπαση ενός κόμβου Γραμμική (Linear) Μέθοδος. Επέλεξε ένα a και b που έχουν μια μέγιστη διαχώριση (συνήθως κανονικοποιημένη). M = 8, m = 4 Διαχώριση στην x- διάσταση

Εισαγωγή Διάσπαση ενός κόμβου Γραμμική (Linear) Μέθοδος. Επέλεξε ένα a και b που έχουν μια μέγιστη διαχώριση (συνήθως κανονικοποιημένη). M = 8, m = 4 Ορθογώνια με max x-separation (διαχώριση)

Εισαγωγή Διάσπαση ενός κόμβου Γραμμική (Linear) Μέθοδος. Επέλεξε ένα a και b που έχουν μια μέγιστη διαχώριση (συνήθως κανονικοποιημένη). M = 8, m = 4 Διαίρεσε με x- width για κανονικοποίηση

Εισαγωγή Διάσπαση ενός κόμβου Γραμμική (Linear) Μέθοδος. Επέλεξε ένα a και b που έχουν μια μέγιστη διαχώριση (συνήθως κανονικοποιημένη).. M = 8, m = 4 Διαχώριση στην y- διάσταση

Εισαγωγή Διάσπαση ενός κόμβου Γραμμική (Linear) Μέθοδος. Επέλεξε ένα a και b που έχουν μια μέγιστη διαχώριση (συνήθως κανονικοποιημένη). M = 8, m = 4 Ορθογώνια με max y- separation

Εισαγωγή Διάσπαση ενός κόμβου Γραμμική (Linear) Μέθοδος. Επέλεξε ένα a και b που έχουν μια μέγιστη διαχώριση (συνήθως κανονικοποιημένη). M = 8, m = 4 Διαίρεσε με y- width για κανονικοποίηση

Εισαγωγή Διάσπαση ενός κόμβου Linear μέθοδος. Ένα ορθογώνιο ανατίθεται σε μια διαμέριση της οποίας το εμβαδόν MBR αυξάνεται λιγότερο. Σταμάτα όταν όλα τα υπόλοιπα ορθογώνια πρέπει να ανατεθούν σε μια διαμέριση για να έχει το minimum των m ορθογωνίων. M = 8, m = 4

Διαγραφή Εάν ένα φύλλο δεν πάθει υποχείλιση, απλά αναπροσαρμόζουμε τα MBR σε μονοπάτια από τη ρίζα Εάν συμβεί υποχείλιση, πάρε από τον πλησιέστερο αδερφό και αναδιοργάνωσε τα MBR. Σύνδεσε τους αδερφούς κόμβους όπως σε ένα B+ δέντρο.

R-trees - spatial joins Υποθέστε ότι και τα δύο είναι οργανομένα σε R-trees:

R-trees - spatial joins για κάθε πατέρα P1 του δένδρου T1 για κάθε πατέρα P2 του δένδρου T2 αν το MBRs τους τέμνει, επεξεργαστείτε τα αναδρομικά (πχ., ελέγξτε τα παιδιά τους)

R-trees - spatial joins Βελτιώσεις - παραλλαγές: - [Seeger+, sigmod 92]: κάνε κάποια προεπεξεργασία, κάνε plane-sweeping για να αποφύγετε N1 * N2 ελέγχους για τομές - [Lo & Ravishankar, sigmod 94]: seeded R-trees (πολλές δημοσιεύσεις πάνω σε spatial joins, χωρίς R- trees: [Koudas+ Sevcik], κτλ.)

Παραλλαγές R*-tree (Beckmann et al 1990) Ίδια δομή με τα R-trees αλλά διαφορετικός αλγόριθμος εισαγωγής. Όταν ένας κόμβος υπερχειλίζει, δεν διασπάται αμέσως. Αφαιρούνται p εγγραφές και ξαναμπαίνουν στο δέντρο. P=30% Γενικά προκαλεί πιο «γεμάτα» δέντρα. Hilbert R-tree (Kamel and Faloutsos 1994) Βασισμένο στην καμπύλη Hilbert Λεπτομέρειες στο εργαστήριο

Παραλλαγές Sphere-tree (van Oosterom and Claassen 1990) Ίδιο με τα R-trees αλλά όχι MBR αλλά κύκλοι (Minimal Mounding Circles, MBC) (ή σφαίρες σε μεγαλύτερες διαστάσεις) Χρειάζεται λιγότερο χώρο από τα R-tree Είναι ανεξάρτητα προσανατολισμού Δυσκολότερος ο υπολογισμός MBC από τον υπολογισμό MBR των R-trees

Παραλλαγές R + -tree Οι κόμβοι δεικτών έχουν μη επικαλυπτόμενα ορθογώνια Ένα αντικείμενο αναπαρίσταται σε αρκετούς κόμβους δεδομένων Αν m αντικείμενα καλύπτουν ένα σημείο p, ο κόμβος δεδομένων για το p πρέπει να έχει χωρητικότητα m Δεν υπάρχει άνω όριο στο μέγεθος ενός κόμβου δεδομένων Δενυπάρχουνόριο(άνω/κάτω) στο βαθμό ενός κόμβου δεικτών

Σχετικές Δομές Cell tree Combines BSP and R+-tree concepts. Index nodes have non-overlapping convex polyhedrons. No lower/upper bound on size of a data node. Lower bound (but not upper) on degree of an index node.