Σχεδίαση Βάσεων Δεδομένων Χωρικές Βάσεις Δεδομένων και Μέθοδοι Προσπέλασης Μανώλης Μαραγκουδάκης
Τι είναι μια Χωρική Βάση Δεδομένων Ένα ΣΔΒΔ που είναι βελτιστοποιημένο για να αποθηκεύει και να αναζητά αντικείμενα τύπου: Σημείο: ένα ξενοδοχείο, ένα αυτοκίνητο, ένα εστιατόριο Γραμμή: ένα οδικό τμήμα Πολύγωνο: τοπογραφική περιοχή, 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.