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

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

Διοικητική Λογιστική

Βάσεις Περιβαλλοντικών Δεδομένων

Βάσεις Περιβαλλοντικών Δεδομένων

Διοικητική Λογιστική

Ενότητα. Εισαγωγή στις βάσεις δεδομένων

Τεχνικό Σχέδιο - CAD

Διαχείριση Πολιτισμικών Δεδομένων

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 3: Έλεγχοι στατιστικών υποθέσεων

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 1: Καταχώρηση δεδομένων

Τεχνικό Σχέδιο - CAD. Τόξο Κύκλου. Τόξο Κύκλου - Έλλειψη. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 2: Περιγραφική στατιστική

ΣΥΜΠΕΡΙΦΟΡΑ ΚΑΤΑΝΑΛΩΤΗ

Τεχνικό Σχέδιο - CAD

Διδακτική Πληροφορικής

Εισαγωγή στην Πληροφορική

Διαχείριση Πολιτισμικών Δεδομένων

Προγραμματισμός Η/Υ. Βασικές Προγραμματιστικές Δομές. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Διδακτική Πληροφορικής

Διδακτική Πληροφορικής

Βάσεις Περιβαλλοντικών Δεδομένων

Προγραμματισμός Η/Υ. 7 η ενότητα: Αρχεία. Τμήμα. Τεχνολόγων Περιβάλλοντος. ΤΕΙ Ιονίων Νήσων. Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων

Βάσεις Περιβαλλοντικών Δεδομένων

Τεχνολογία Πολιτισμικού Λογισμικού

Εννοιες και Παράγοντες της Ψηφιακής Επεξεργασίας Εικόνας

Τεχνολογία Πολιτισμικού Λογισμικού

Βάσεις Περιβαλλοντικών Δεδομένων

ΟΙΚΟΝΟΜΙΚΑ ΜΑΘΗΜΑΤΙΚΑ

Διδακτική Πληροφορικής

Διοικητική Λογιστική

Τεχνολογία Πολιτισμικού Λογισμικού

Διοικητική Λογιστική

Εισαγωγή στην Πληροφορική

ΣΥΜΠΕΡΙΦΟΡΑ ΚΑΤΑΝΑΛΩΤΗ

Εισαγωγή στην Πληροφορική

ΟΙΚΟΝΟΜΙΚΑ ΜΑΘΗΜΑΤΙΚΑ

Εισαγωγή στην Πληροφορική

ΟΙΚΟΝΟΜΙΚΑ ΜΑΘΗΜΑΤΙΚΑ

Πληροφορική ΙΙ Θεματική Ενότητα 5

Τεχνικό Σχέδιο - CAD

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Προγραμματισμός Η/Υ. Αλγόριθμοι. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Τεχνικό Σχέδιο - CAD

Εισαγωγή στην Πληροφορική

Βάσεις Περιβαλλοντικών Δεδομένων

Τεχνικό Σχέδιο - CAD

ΧΡΗΜΑΤΟΟΙΚΟΝΟΜΙΚΗ ΛΟΓΙΣΤΙΚΗ

Ασφάλεια Πληροφοριακών Συστημάτων

Μηχανές Πλοίου ΙΙ (Ε)

Ασφάλεια Πληροφοριακών Συστημάτων

Εισαγωγή στην Πληροφορική

ΔΙΟΙΚΗΣΗ ΔΙΕΘΝΩΝ ΕΠΙΧΕΙΡΗΣΕΩΝ

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

ΠΕΡΙΒΑΛΛΟΝΤΙΚΗ ΠΟΛΙΤΙΚΗ & ΝΟΜΟΘΕΣΙΑ ΜΑΘΗΜΑ 1

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

Πληροφορική ΙΙ Ενότητα 1

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

Διδακτική Πληροφορικής

Ασφάλεια Πληροφοριακών Συστημάτων

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΟΙΚΟΝΟΜΙΚΑ ΜΑΘΗΜΑΤΙΚΑ

ΟΙΚΟΝΟΜΙΚΑ ΜΑΘΗΜΑΤΙΚΑ

Εισαγωγή στην Πληροφορική

ΔΙΑΧΕΙΡΙΣΗ ΕΦΟΔΙΑΣΤΙΚΗΣ ΑΛΥΣΙΔΑΣ

Εισαγωγή στην Πληροφορική

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού σε κατάσταση Κορεσμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

Ενότητα. Εισαγωγή στη Microsoft Access

ΟΡΓΑΝΩΣΗ & ΔΙΟΙΚΗΣΗ ΕΠΙΣΙΤΙΣΤΙΚΩΝ ΜΟΝΑΔΩΝ

Προγραμματισμός Η/Υ. 6 η ενότητα: Συναρτήσεις. Τμήμα. Τεχνολόγων Περιβάλλοντος. ΤΕΙ Ιονίων Νήσων. Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων

Δομημένος Προγραμματισμός

Εισαγωγή στους Αλγορίθμους

Τεχνικό Σχέδιο - CAD

ΕΠΙΧΕΙΡΗΣΙΑΚΗ ΑΛΛΗΛΟΓΡΑΦΙΑ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑ ΣΤΗΝ ΑΓΓΛΙΚΗ ΓΛΩΣΣΑ

Εισαγωγή στην Πληροφορική

ΟΡΓΑΝΩΣΗ & ΔΙΟΙΚΗΣΗ ΕΠΙΣΙΤΙΣΤΙΚΩΝ ΜΟΝΑΔΩΝ

Ασφάλεια Πληροφοριακών Συστημάτων

Εισαγωγή στους Η/Υ. Ενότητα 2β: Αντίστροφο Πρόβλημα. Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών

Ψηφιοποίηση και Ψηφιακή Επεξεργασία Εικόνας

Τεχνικό Σχέδιο - CAD

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

Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2)

Διδακτική Πληροφορικής

Εισαγωγή στους Αλγορίθμους

Οργάνωση και Λειτουργία Ταξιδιωτικής Βιομηχανίας Ι

Εισαγωγή στα πολυμέσα

Διδακτική Πληροφορικής

Εισαγωγή στην Πληροφορική

Δομημένος Προγραμματισμός

Εισαγωγή στους Αλγορίθμους Ενότητα 10η Άσκηση Αλγόριθμος Dijkstra

ΔΙΟΙΚΗΣΗ ΠΑΡΑΓΩΓΗΣ Ενότητα 5

ΣΥΜΠΕΡΙΦΟΡΑ ΚΑΤΑΝΑΛΩΤΗ

Φυσική Εικόνας & Ήχου ΙΙ (Ε)

Προγραμματισμός Η/Υ. 4 η ενότητα: Δομές Δεδομένων. Τμήμα. Τεχνολόγων Περιβάλλοντος. ΤΕΙ Ιονίων Νήσων. Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων

Ψηφιοποίηση και Ψηφιακή Επεξεργασία Εικόνας

Βέλτιστος Έλεγχος Συστημάτων

ΧΡΗΜΑΤΟΟΙΚΟΝΟΜΙΚΗ ΛΟΓΙΣΤΙΚΗ

Προγραμματισμός Η/Υ. 8 η ενότητα: Περιβαλλοντικά και μαθηματικά προβλήματα. Τμήμα. Τεχνολόγων Περιβάλλοντος. ΤΕΙ Ιονίων Νήσων

Δομημένος Προγραμματισμός

Τεχνικό Σχέδιο - CAD

ΔΡΔ: Διαγράμματα Ροής Δεδομένων

Transcript:

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Βάσεις Δεδομένων ΙΙ Ενότητα 11: Μέθοδοι Προσπέλασης Χωρικών Δεδομένων Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους.

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΙI Μέθοδοι Προσπέλασης Χωρικών Δεδομένων Ι Spatial Access Methods (SAMs) I

Γενική επισκόπηση Δεικτοδότηση πολυμέσων Spatial Access Methods (SAMs) k-d trees Point Quadtrees MX-Quadtree z-ordering R-trees

SAMs - Λεπτομερές διάγραμμα spatial access methods problem dfn k-d trees point quadtrees MX-quadtrees z-ordering R-trees

Spatial Access Methods - πρόβλημα δοθέντος μιας συλλογής γεωμετρικών αντικειμένων (σημεία, γραμμές, πολύγωνα,...) οργάνωσε τα στο δίσκο, ώστε να απαντηθούν χωρικά ερωτήματα (όπως;)

Spatial Access Methods - πρόβλημα δοθέντος μιας συλλογής γεωμετρικών αντικειμένων (σημεία, γραμμές, πολύγωνα,...) οργάνωσε τα στο δίσκο, για να απαντηθούν: ερωτήματα σημείου ερωτήματα εύρους k-nn ερωτήματα spatial joins ( όλα τα ζεύγη ερωτ.)

Spatial Access Methods - πρόβλημα δοθέντος μιας συλλογής γεωμετρικών αντικειμένων (σημεία, γραμμές, πολύγωνα,...) οργάνωσε τα στο δίσκο, για να απαντηθούν ερωτήματα σημείου ερωτήματα εύρους k-nn ερωτήματα spatial joins ( όλα τα ζεύγη ερωτ.)

Spatial Access Methods - πρόβλημα δοθέντος μιας συλλογής γεωμετρικών αντικειμένων (σημεία, γραμμές, πολύγωνα,...) οργάνωσε τα στο δίσκο, για να απαντηθούν ερωτήματα σημείου ερωτήματα εύρους k-nn ερωτήματα spatial joins ( όλα τα ζεύγη ερωτ.)

Spatial Access Methods - πρόβλημα δοθέντος μιας συλλογής γεωμετρικών αντικειμένων (σημεία, γραμμές, πολύγωνα,...) οργάνωσε τα στο δίσκο, για να απαντηθούν ερωτήματα σημείου ερωτήματα εύρους k-nn ερωτήματα spatial joins ( όλα τα ζεύγη ερωτ.)

Spatial Access Methods - πρόβλημα δοθέντος μιας συλλογής γεωμετρικών αντικειμένων (σημεία, γραμμές, πολύγωνα,...) οργάνωσε τα στο δίσκο, για να απαντηθούν ερωτήματα σημείου ερωτήματα εύρους k-nn ερωτήματα spatial joins ( όλα τα ζεύγη εντός ε)

SAMs - κίνητρο Ε: εφαρμογές?

SAMs - κίνητρο παραδοσιακές DB GIS ηλικία μισθός

SAMs - κίνητρο παραδοσιακές DB GIS ηλικία μισθός

SAMs - κίνητρο CAD/CAM βρείτε στοιχεία πολύ κοντά το ένα στο άλλο

SAMs - κίνητρο CAD/CAM

SAMs - κίνητρο S1 eg,. std F(S1) 1 365 day F(Sn) Sn eg, avg 1 365 day

SAMs: λύσεις K-d δέντρα point quadtrees MX-quadtrees z-ordering R-trees (grid files) Ε: Πώς θα οργανώσετε, π.χ., n-διάστατα σημεία, στο δίσκο? (C σημεία ανά σελίδα δίσκου)

SAMs - Λεπτομερές διάγραμμα spatial access methods problem dfn k-d δένδρα point quadtrees MX-quadtrees z-ordering R-trees

k-d δένδρα Χρησιμοποιούνται για αποθηκεύουν κ-διαστατά σημειακά δεδομένα Δεν χρησιμοποιούνται για να αποθηκεύονται region δεδομένα Ένα 2-d δένδρο (π.χ., για k=2) αποθηκεύει 2-διαστατά σημειακά δεδομένα ενώ ένα 3-d δένδρο αποθηκεύει 3-διάστατα σημειακά δεδομένα,

2-d δένδρα - δομή κόμβου δυαδικά δένδρα Info: πεδίο πληροφορίας Xval,Yval: συντεταγμένες σημείου σχετιζόμενες με τον κόμβο Llink, Rlink: δείκτες προς τα παιδιά Ιδιότητες (N: κόμβος): Αν Ν επίπεδο είναι ζυγό -> για όλους τους κόμβους Μ στο υποδένδρο κάτω από το N.Llink: M.Xval < N.Xval για όλους τους κόμβους Ρ στο υποδένδρο κάτω από το N.Llink: P.Xval >= N.Xval Αν Ν επίπεδο είναι μονό -> Παρόμοια με Yvals

2-d δένδρα - Παράδειγμα

2-d δένδρα: Εισαγωγή/Αναζήτηση Για την εισαγωγή ενός κόμβου Ν στο δένδρο που αναφέρεται από το T Αν N και T συμφωνούν στις Xval, Yval τότε αντικαταστήσετε T Αλλιώς, πήγαινε αριστερά αν N.Xval < T.xval, δεξιά διαφορετικά (μονά επίπεδα) Παρόμοια για τα μονά επίπεδα (διακλάδωση με βάση τα Yvals)

2-d δένδρα - Παράδειγμα εισαγωγής City (Xval, Yval) Banja Luka (19, 45) Derventa (40, 50) Splitting of region by Banja Luka Splitting of region by Derventa Toslic (38, 38) Tuzla (54, 35) Sinj (4, 4) Splitting of region by Toslic Splitting of region by Sinj

2-d δένδρα: Διαγραφή Διαγραφή σημείου (x,y) από T Αν N είναι φύλλο είναι εύκολο Διαφορετικά όποιο από Tl (αριστερό υποδένδρο) ή Tr (δεξί υποδένδρο) δεν είναι άδειο Βρείτε ένα κόμβο υποψήφιο αντικατάστασης R στο Tl ή Tr Αντικατέστησε όλα τα μη συνδεδεμένα πεδία του N από αυτά του R Σβήστε επαναληπτικά το R από το Ti Η επανάληψη είναι σίγουρο ότι θα τερματίσει - Γιατί;

2-d δένδρα: Διαγραφή Εύρεση υποψήφιου κόμβου αντικατάστασης για διαγραφή Ο αντικαταστάτης κόμβος R πρέπει να φέρει την ίδια χωρική σχέση σε όλους τους κόμβους στο Tl και Tr όπως και ο κόμβος Ν

2-d δένδρα: Ερωτήματα Εύρους Ε: Δοθέντος ενός σημείου (xc, yc) και μίας απόστασης r να βρεθούν όλα τα σημεία στο 2-d δένδρο τα οποία βρίσκονται μέσα στο κύκλο A: Κάθε κόμβος N σε ένα 2-d δένδρο άμεσα αναπαριστά μία περιοχή RN - Αν ο κύκλος (που ορίζει το ερώτημα) δεν τέμνεται με το RN τότε δεν έχει νόημα η αναζήτηση στο υποδένδρο κάτω από τον κόμβο N

SAMs - Λεπτομερές διάγραμμα spatial access methods problem dfn k-d trees point quadtrees z-ordering R-trees

Point Quadtrees Αναπαριστούν σημειακά δεδομένα Πάντα χωρίζουν περιοχές σε 4 τμήματα 2-d δένδρο: ένας κόμβος N χωρίζει μία περιοχή σε δύο σχεδιάζοντας μία γραμμή διαμέσου του σημείου (N.xval, N.yval) Point quadtree: ένας κόμβος Ν χωρίζει μία περιοχή σχεδιάζοντας μία οριζόντια και μία κάθετη γραμμή διαμέσου του σημείου (N.xval, N.yval) Τέσσερα τμήματα: NW, SW, NE και SE τεταρτημόρια Ε: Quadtree nodes έχουν 4 παιδιά?

Point Quadtrees Οι κόμβοι σε point quadtrees αναπαριστούν περιοχές

Point Quadtrees - Εισαγωγή City (Xval, Yval) Banja Luka (19, 45) Derventa (40, 50) Toslic (38, 38) Tuzla (54, 35) Sinj (4, 4) Splitting of region by Banja Luka Splitting of region by Derventa Splitting of region by Toslic Splitting of region by Tuzla Splitting of region by Sinj

Point Quadtrees - Εισαγωγή

Point Quadtrees: Διαγραφή Διαγραφή του σημείου (x,y) από το T Αν N είναι φύλλο, τότε είναι εύκολο Διαφορετικά το υποδένδρο (N.NW, N.SW, N.NE. N.SE) δεν είναι κενό Βρείτε ένα υποψήφιο αντικατάστασης κόμβο R σε ένα από τα υποδένδρα, τέτοιο ώστε: Κάθε άλλος κόμβος R1 στο N.NW είναι στο NW του R Κάθε άλλος κόμβος R2 στο N.SW είναι στο SW του R κτλ Αντικαταστήστε όλους τα μη-συνδεδεμένα πεδία του N με αυτά του R Διαγράψτε επαναληπτικά το R από το Ti Γενικά, μπορεί να μην είναι πάντα δυνατό να βρεθεί τέτοιος κόμβος αντικατάστασης Ε: Τι μπορεί συμβεί στη χειρότερη κατάσταση;

Point Quadtrees: Διαγραφή Διαγραφή του σημείου (x,y) από το T Αν N είναι φύλλο, τότε είναι εύκολο Διαφορετικά το υποδένδρο (N.NW, N.SW, N.NE. N.SE) δεν είναι κενό Βρείτε ένα υποψήφιο αντικατάστασης κόμβο R σε ένα από τα υποδένδρα, τέτοιο ώστε: Κάθε άλλος κόμβος R1 στο N.NW είναι στο NW του R Κάθε άλλος κόμβος R2 στο N.SW είναι στο SW του R κτλ Αντικαταστήστε όλους τα μη-συνδεδεμένα πεδία του N με αυτά του R Διαγράψτε επαναληπτικά το R από το Ti Γενικά, μπορεί να μην είναι πάντα δυνατό να βρεθεί τέτοιος κόμβος αντικατάστασης Ε: Τι μπορεί συμβεί στη χειρότερη κατάσταση; Μπορεί να χρειαστεί όλοι οι κόμβοι να επαναεισαχθούν

Point Quadtrees: Αναζητήσεις εύρους Κάθε κόμβος σε ένα point quadtree αναπαριστά μία περιοχή Να μην αναζητηθούν περιοχές που δεν τέμνουν τον κύκλο που ορίζεται από το ερώτημα

SAMs - Λεπτομερές διάγραμμα spatial access methods problem dfn k-d trees point quadtrees MX-quadtrees z-ordering R-trees

MX-Quadtrees Μειονεκτήματα των 2-d δένδρων, point quadtrees: διαμόρφωση του δένδρου εξαρτάται από τη σειρά με την οποία τα αντικείμενα εισέρχονται στο δένδρο διαχωρισμοί μπορεί να είναι άνισοι ανάλογα με το που το σημείο (N.xval, N.yval) βρίσκεται μέσα στη περιοχή (αναπαριστώμενη από το N) MX-quadtrees: σχηματίζουν (και εκτείνουν) το δένδρο ανάλογα με τον αριθμό των κόμβων και τη σειρά εισόδου

MX-Quadtrees Υπόθεση: ο χάρτης αναπαρίσταται ως ένα πλέγμα μεγέθους (2k x 2k) για κάποιο k Όταν μία περιοχή διαχωρίζεται, διαχωρίζεται στο κέντρο

MX-Quadtrees - Εισαγωγή Μετά την είσοδο των A, B, C και D αντίστοιχα

MX-Quadtrees - Εισαγωγή Μετά την είσοδο των A, B, C και D αντίστοιχα

MX-Quadtrees - Διαγραφή Αρκετά εύκολο - γιατί; Όλα τα σημεία αναπαριστώνται στο επίπεδο των φύλλων Συνολικός χρόνος για διαγραφή: O(k)

MX-Quadtrees - Αναζητήσεις εύρους Όμοια όπως στα point quadtrees Μόνη διαφορά: Ελέγχοντας για να βρεθεί αν ένα σημείο στο κύκλο ορισμένο από το ερώτημα εύρους πρέπει να εφαρμόζεται στο επίπεδο των φύλλων (τα σημεία αποθηκεύονται στο επίπεδο των φύλλων)

SAMs - Λεπτομερές διάγραμμα spatial access methods problem dfn k-d trees point quadtrees MX-quadtrees z-ordering R-trees

z-ordering Ε: πώς θα οργανώνεται, π.χ., n-διάστατα σημεία, στο δίσκο; (C σημεία ανά σελίδα δίσκου) Υπόδειξη: μειώστε το πρόβλημα σε 1- διάστατα σημεία (!!) Ε1: γιατί; A: Ε2: πώς;

z-ordering Ε: πώς θα οργανώνεται, π.χ., n-αστατα σημεία, στο δίσκο; (C σημεία ανά σελίδα δίσκου) Υπόδειξη: μειώστε στο πρόβλημα σε 1- αστατα σημεία (!!) Ε1: γιατί; A: B-trees! Ε2: πώς;

z-ordering Ε2: πώς; A: υποθέστε πεπερασμένη granularity; z- ordering = bit-shuffling = N-trees = Morton keys = geo-coding =...

z-ordering Ε2: πώς; A: υποθέστε πεπερασμένη granularity (π.χ., 232x232, 4x4 εδώ) Q2.1: πώς να απεικονίσουμε n-d κελιά σε 1-d κελιά;

z-ordering Q2.1: πώς να απεικονίσουμε n-d κελιά σε 1-d κελιά;

z-ordering Q2.1: πώς να απεικονίσουμε n-d κελιά σε 1-d κελιά; A: row-wise Ε: είναι καλό;

z-ordering Ε: είναι καλό; A: καλό για τον x άξονα, άσχημο για τον y άξονα

z-ordering Ε: Η snake curve πως αποδίδει;

z-ordering Ε: Η snake curve πως αποδίδει; A: προβλήματα: 2^32 2^32

z-ordering Ε: Γιατί οι curves είναι άσχημες? A: δεν διατηρείτε η απόσταση (~ clustering) Ε: λύση; 2^32 2^32

z-ordering Ε: λύση; (με καλό clustering και ευκολία υπολογισμού, για 2-d και n-d;)

z-ordering Ε: λύση; (με καλό clustering και ευκολία υπολογισμού, για 2-d και n-d;) A: z-ordering/bit-shuffling/linearquadtrees φαίνεται καλύτερο: λίγα μεγάλα άλματα σαρώνει ολόκληρο το τετράεδρο (quadrant) πριν αποχωρήσει όπως space filling curves

z-ordering z-ordering/bit-shuffling/linear-quadtrees Ε: Πώς δημιουργείται αυτή η καμπύλη curve (z = f(x,y) ); A: 3 (ισοδύναμες) απαντήσεις!

z-ordering z-ordering/bit-shuffling/linear-quadtrees Ε: Πώς δημιουργείται αυτή η καμπύλη curve (z = f(x,y) ); A1: z (ή N ) σχήματα, επαναλαμβανόμενα order-1 order-2 order (n+1)

z-ordering Παρατήρηση: αυτο-επαναλαμβανόμενη (θα δούμε για τα fractals, σύντομα) Δύσκολη μέθοδος για χρήση: z =? f(x,y) order-1 order-2 order (n+1)

z-ordering z-ordering/bit-shuffling/linear-quadtrees Ε: Πώς δημιουργείται αυτή η καμπύλη curve (z = f(x,y) ); A: 3 (ισοδύναμες) απαντήσεις! Μέθοδος #2;

z-ordering bit-shuffling y x 0 0 y 1 1 11 10 01 00 00 0110 11 x z =( 0 1 0 1 )2 = 5

z-ordering bit-shuffling y x 0 0 y 1 1 11 10 01 00 00 0110 11 x z =( 0 1 0 1 )2 = 5 Το αντίστροφο: (x,y) = g(z) ;

z-ordering bit-shuffling y x 0 0 y 1 1 11 10 01 00 00 0110 11 x z =( 0 1 0 1 )2 = 5 Σε n-διάστατους χώρους;

z-ordering z-ordering/bit-shuffling/linear-quadtrees Ε: Πώς δημιουργείται αυτή η καμπύλη curve (z = f(x,y) ); A: 3 (ισοδύναμες) απαντήσεις! Μέθοδος #3;

z-ordering linear-quadtrees : έστω NÆ1, SÆ0 κ.τ.λ. W E 1 N 01... 11... 0 S 00... 10... 0 1

z-ordering... και επαναλάβατε αναδρομικά. πχ.: zgray-cell = WN;WN = (0101)2 = 5 1 W E N 01... 11... 00 11 0 S 00... 10... 0 1

z-ordering Drill: z-value του σκιασμένου κελιού, με τις τρεις μεθόδους; W E 1 0 N S 0 1

z-ordering Drill: z-value του σκιασμένου κελιού, με τις τρεις μεθόδους; 1 W E μέθοδος #1: 14 N μέθοδος#2: shuffle(11;10)= (1110)2 = 14 0 S 0 1

z-ordering Drill: z-value του σκιασμένου κελιού, με τις τρεις μεθόδους; 1 0 W E N S μέθοδος #1: 14 μέθοδος #2: shuffle(11;10)= (1110)2 = 14 μέθοδος #3: EN;ES =... = 14 0 1

z-ordering - Λεπτομερές διάγραμμα spatial access methods z-ordering κεντρική ιδέα - 3 μέθοδοι χρήση B-trees, αλγόριθμοι (εύρος, knn ερωτήματα...) μη-σημειακά (eg., περιοχή) δεδομένα ανάλυση, παραλλαγές R-trees

z-ordering - χρήση & αλγόριθμοι Ε1: Πώς αποθηκεύεται στο δίσκο; A: Ε2: Πώς απαντούν σε ερωτήματα εύρους κτλ

z-ordering - χρήση & αλγόριθμοι Ε1: Πώς αποθηκεύεται στο δίσκο; A: χειριστείτε τη z-value ως πρωτεύον κλειδί, feed to B-tree SF PGH z cname etc 5 SF 12 PGH

z-ordering - χρήση & αλγόριθμοι ΚΥΡΙΑ ΠΛΕΟΝΕΚΤΗΜΑΤΑ με B-tree: Υπάρχουν ήδη σε εμπορικά συστήματα (κανένας κώδικας/αποσφαλμάτωση!) συνέπεια & επαναφορά είναι έτοιμες SF PGH z cname etc 5 SF 12 PGH

z-ordering - χρήση & αλγόριθμοι Ε2: ερωτήματα; (πχ.: βρείτε τη πόλη στο (0,3);) SF PGH z cname etc 5 SF 12 PGH

z-ordering - χρήση & αλγόριθμοι Ε2: ερωτήματα; (πχ.: βρείτε τη πόλη στο (0,3);) A: βρείτε τη z-value,αναζητήστε στο B-tree SF PGH z cname etc 5 SF 12 PGH

z-ordering - χρήση & αλγόριθμοι Ε2: ερωτήματα εύρους; SF PGH z cname etc 5 SF 12 PGH

z-ordering - χρήση & αλγόριθμοι Ε2: ερωτήματα εύρους; A: υπολογίστε το εύρος των z-values; Χρησιμοποιείστε το B-tree PGH 9,11-15 z cname etc SF 5 SF 12 PGH

z-ordering - χρήση & αλγόριθμοι Ε2 : ερωτήματα εύρους - πώς να ελαττώσετε τον αριθμό των υποψήφιων ευρών; SF PGH 9,11-15 z cname etc 5 SF 12 PGH

z-ordering - χρήση & αλγόριθμοι Ε2 : ερωτήματα εύρους - πώς να ελαττώσετε τον αριθμό των υποψήφιων ευρών; A: Αυξήστε τις διατάσεις του ερωτήματος! PGH 9,11-15 -> 8-15 z cname etc SF 5 SF 12 PGH

z-ordering - χρήση & αλγόριθμοι Ε2 : ερωτήματα εύρους - πώς να σπάσετε το ερώτημα σε εύρη; 9,11-15

z-ordering - χρήση & αλγόριθμοι Ε2 : ερωτήματα εύρους - πώς να σπάσετε το ερώτημα σε εύρη; A: επαναληπτικά, quadtree-style, αποσυνθέστε μόνο μη πλήρη quadrants 12-15 9,11-15

z-ordering - χρήση & αλγόριθμοι Ε2 : ερωτήματα εύρους - πώς να σπάσετε το ερώτημα σε εύρη; A: επαναληπτικά, quadtree-style, αποσυνθέστε μόνο μη πλήρη quadrants 12-15 9,11-15 9, 11

z-ordering - Λεπτομερές διάγραμμα spatial access methods z-ordering κεντρική ιδέα - 3 μέθοδοι χρήση B-trees, αλγόριθμοι (εύρος, knn ερωτήματα...) μη-σημειακά (πχ., περιοχή) δεδομένα ανάλυση, παραλλαγές R-trees

z-ordering - χρήση & αλγόριθμοι Ε3: k-nn ερωτήματα? (έστω 1-nn); SF PGH z cname etc 5 SF 12 PGH

z-ordering - χρήση & αλγόριθμοι Ε3: k-nn ερωτήματα? (έστω, 1-nn); A: διασχίστε το B-tree, βρείτε nn wrt τιμές και... SF PGH z cname etc 5 SF 12 PGH

z-ordering - χρήση & αλγόριθμοι... υποβάλετε ένα ερώτημα εύρους. SF PGH nn wrt z-τιμή 3 5 12

z-ordering - χρήση & αλγόριθμοι... υποβάλετε ένα ερώτημα εύρους. SF PGH nn wrt z-τιμή 3 5 12

z-ordering - χρήση & αλγόριθμοι Ε4: ερωτήματα όλα τα ζεύγη (όλα τα ζεύγη πόλεων σε απόσταση 10 χλμ μεταξύ τους; ) PGH SF (θα δούμε spatial joins αργότερα: βρείτε όλες τους νομούς που διασταυρώνει μία λίμνη)

z-ordering - Λεπτομερές διάγραμμα spatial access methods z-ordering κεντρική ιδέα - 3 μέθοδοι χρήση B-trees, αλγόριθμοι (εύρος, knn ερωτήματα...) μη-σημειακά (eg., περιοχή) δεδομένα ανάλυση, παραλλαγές R-trees...

z-ordering - εύρη Ε: z-τιμή για μία περιοχή; A B zb =?? zc =?? C

z-ordering - εύρη Ε: z-τιμή για μία περιοχή; A: 1 ή περισσότερες z-τιμές, με quadtree αποσύνθεση A B zb =?? zc =?? C

z-ordering - εύρη Ε: z-τιμή για μία περιοχή; zb = 11** ποιος νοιάζεται 1 A W E B N 01... zc =?? 11... 00 11 0 S 00... 10... 0 C 1

z-ordering - εύρη Ε: z-τιμή για μία περιοχή; zb = 11** ποιος νοιάζεται 1 A W E B N zc = {0010; 1000} 01...11... 00 11 0 S 00... 10... 0 C 1

z-ordering - εύρη Ε: Πώς αποθηκεύετε ένα B-tree; Ε: Πώς να αναζητήσετε (εύρη και λοιπά ερωτήματα) A B C

z-ordering - εύρη Ε: Πώς αποθηκεύετε ένα B-tree; A: sort (*<0<1) Ε: Πώς να αναζητήσετε (εύρη και λοιπά ερωτήματα) A B C z 0010 C 0101A 1000C 11**B obj-id etc

z-ordering - εύρη Ε: Πώς να αναζητήσετε (εύρη και λοιπά ερωτήματα) - πχ κόκκινο ερώτημα εύρους A C B z obj-id etc 0010 C 0101A 1000C 11**B

z-ordering - εύρη Ε: Πώς να αναζητήσετε (εύρη και λοιπά ερωτήματα) - πχ κόκκινο ερώτημα εύρους A: σπάστε το ερώτημα σε z-τιμές, ελέγξτε το B-tree A B C z 0010 C 0101A 1000C 11**B obj-id etc

z-ordering - εύρη Σχεδόν όμοια με τα ερωτήματα εύρους για σημειακά δεδομένα, εκτός της περίπτωσης ποιος νοιάζεται - π.χ., A B 1100?? 11** z obj-id etc C 0010 C 0101A 1000C 11**B

z-ordering - εύρη Σχεδόν όμοια με τα ερωτήματα εύρους για σημειακά δεδομένα, εκτός της περίπτωσης ποιος νοιάζεται - π.χ., z1= 1100?? 11** = z2 Συγκεκριμένα: το z1 περιέχει/αποφεύγει/τέμνει το z2; Ε: ποιο είναι το κριτήριο για να αποφασίσετε;

z-ordering - εύρη z1= 1100?? 11** = z2 Συγκεκριμένα: το z1 περιέχει/αποφεύγει/τέμνει z2; Ε: ποιο είναι το κριτήριο για να αποφασίσετε; A: Prefix property: έστω r1, r2 οι αντίστοιχες περιοχές και έστω r1 η μικρότερη (=> z1 έχει λιγότερα * s). Τότε:

z-ordering - εύρη το r2 θα περιέχει πλήρως είτε θα αποφεύγει πλήρως το r1. θα περιέχει το r1, αν το z2 είναι το πρόθεμα του z1 A C B 1100?? 11** η περιοχή z1: περιέχεται πλήρως στη περιοχή του z2

z-ordering - εύρη Drill (True/False). Δοθέντος: z1= 011001** z2= 01****** z3= 0100**** T/F r2 περιέχει το r1 T/F r3 περιέχει το r1 T/F r3 περιέχει το r2

z-ordering - εύρη Drill (True/False). Δοθέντος: z1= 011001** z2= 01****** z3= 0100**** T/F r2 περιέχει το r1 - ΑΛΗΘΕΣ (prefix property) T/F r3 περιέχει το r1 - ΨΕΥΔΕΣ (disjoint) T/F r3 περιέχει το r2 - ΨΕΥΔΕΣ (r2 περιέχει το r3)

z-ordering - εύρη Drill (True/False). Δοθέντος: z1= 011001** z2 z2= 01****** z3= 0100****

z-ordering - εύρη Drill (True/False). Δοθέντος: z1= 011001** z2 z2= 01****** z3= 0100**** z3 T/F r2 περιέχει το r1 - ΑΛΗΘΕΣ (prefix property) T/F r3 περιέχει το r1 - ΨΕΥΔΕΣ (disjoint) T/F r3 περιέχει το r2 - ΨΕΥΔΕΣ (r2 περιέχει το r3)

z-ordering - εύρη Spatial joins: βρείτε (γρήγορα) όλους τους νομούς που τέμνουν λίμνες

z-ordering - εύρη Spatial joins: βρείτε (γρήγορα) όλους τους νομούς που τέμνουν λίμνες Προφανής αλγόριθμος: O( N * M) Κάτι πιο γρήγορο;

z-ordering - εύρη Spatial joins: βρείτε (γρήγορα) όλους τους νομούς που τέμνουν λίμνες z obj-id etc z obj-id etc 0010 ALG 0011 Erie 0101 Erie 1000 WAS 11** ALG 10** Ont.

z-ordering - εύρη Spatial joins: βρείτε (γρήγορα) όλους τους νομούς που τέμνουν λίμνες Λύση: ενώστε τις λίστες (διατεταγμένων) z- values, αναζητώντας για την ιδιότητα προθέματος σημείωση#1: * χρειάζεται προσεκτική μεταχείριση σημείωση#2: χρειάζεται εξάλειψη διπλοτύπων

z-ordering - Λεπτομερές διάγραμμα spatial access methods z-ordering κεντρική ιδέα - 3 μέθοδοι χρήση B-trees, αλγόριθμοι (εύρος, knn ερωτήματα...) μη-σημειακά (πχ., περιοχή) δεδομένα ανάλυση, παραλλαγές R-trees

z-ordering - παραλλαγές Ε: το z-ordering είναι ότι καλύτερο μπορούμε να κάνουμε;

z-ordering - παραλλαγές Ε: το z-ordering είναι ότι καλύτερο μπορούμε να κάνουμε; A: προφανώς όχι - πιθανά μεγάλα άλματα Ε: τότε;

z-ordering - παραλλαγές Ε: το z-ordering είναι ότι καλύτερο μπορούμε να κάνουμε; A: προφανώς όχι - πιθανά μεγάλα άλματα Ε: τότε; A1: Gray codes

z-ordering - παραλλαγές A2: Hilbert curve! (όπως Hilbert-Peano curve)

z-ordering - παραλλαγές Φαίνετε καλύτερο (ποτέ μεγάλα άλματα). Πώς το πετυχαίνουμε;

z-ordering - παραλλαγές Φαίνετε καλύτερο (ποτέ μεγάλα άλματα). Πώς το πετυχαίνουμε; order-1 order-2... order (n+1)

z-ordering - παραλλαγές Ε: Συνάρτηση για τη καμπύλη Hilbert (h = f(x,y) )? A: bit-shuffling, ακολουθουμένη από μεταεπεξεργασία, για να χειριστούμε τις περιστροφές. Γραμμική στον # bits. Βλέπετε βιβλίο, για κώδικα/αλγόριθμους (πχ., [Jagadish, 90])

z-ordering - παραλλαγές Ε: Η Hilbert curve σε 3-d; n-d; A: Υπάρχει (και δεν είναι μοναδική!). Πχ., 3-d, order-1 Hilbert curves (Hamiltonian μονοπάτια σε κύβο) #1 #2

z-ordering - Λεπτομερές διάγραμμα spatial access methods z-ordering κεντρική ιδέα - 3 μέθοδοι χρήση B-trees, αλγόριθμοι (εύρος, knn ερωτήματα...) μη-σημειακά (πχ., περιοχή) δεδομένα ανάλυση, παραλλαγές R-trees...

z-ordering - ανάλυση Ε: Πόσα κομμάτια ( quad-tree blocks ) ανά περιοχή; A: ανάλογη της περιμέτρου (επιφάνεια κτλ)

z-ordering - ανάλυση (Πόσο είναι η ακτογραμμή της Πελοποννήσου; Παράδοξο: Η απάντηση αλλάζει με το μέτρο σύγκρισης -> fractals...)

z-ordering - ανάλυση Ε: Πρέπει να αποσυνθέσουμε μία περιοχή στην πλήρη λεπτομέρεια (και να το αποθηκεύσουμε σε B-tree);

z-ordering - ανάλυση Ε: Πρέπει να αποσυνθέσουμε μία περιοχή στην πλήρη λεπτομέρεια (και να το αποθηκεύσουμε σε B-tree); A: ΟΧΙ! Προσέγγιση με 1-3 κομμάτια/zvalues είναι το βέλτιστο [Orenstein90]

z-ordering - ανάλυση Ε: Πώς να μετρήσουμε goodness μίας καμπύλης;

z-ordering - ανάλυση Ε: Πώς να μετρήσουμε goodness μίας καμπύλης; A: π.χ., μέσος # of runs, για ερωτήματα εύρους 4 runs 3 runs (#runs ~ #disk accesses on B-tree)

z-ordering - ανάλυση Ε: Είναι η καμπύλη Hilbert πράγματι καλύτερη; A: 27% λιγότερα runs, για 2-d (παρόμοια για 3-d) Ε: Υπάρχουν σχέσεις (formulas) για #runs, #μπλοκς ενός quadtree, κλπ? A: Ναι ([Jagadish; Moon+ etc])

z-ordering - ενδιαφέροντες παρατηρήσεις Καμπύλες Hilbert και z-ordering: «καμπύλες κάλυψης χώρου (space filling curves)»: τελικά, επισκέπτονται κάθε σημείο στον n-d χώρο - συνεπώς: order-1 order-2...order (n+1)

z-ordering - ενδιαφέροντες παρατηρήσεις... Δείχνουν ότι το επίπεδο έχει τόσα σημεία όσα και μια γραμμή (-> πονοκέφαλος για τους μαθηματικούς/τοπολογία του 1900) (fractals, again!) order-1 order-2...order (n+1)

z-ordering - ενδιαφέροντες παρατηρήσεις Παρατήρηση #2: Hilbert (like) curve για κωδικοποίηση βίντεο [Y. Matias+, CRYPTO 87]: Δοθέντος ενός frame, επισκέψου τα εικονοστοιχεία του χρησιμοποιώντας randomized Hilbert διάταξη, συμπίεσε, και μετέδωσε

z-ordering - ενδιαφέροντες παρατηρήσεις Γενικά, η Hilbert καμπύλη είναι θαυμάσια για τη διατήρηση αποστάσεων, clustering, vector quantization κτλ

Συμπεράσματα z-ordering είναι μία καλή ιδέα (n-d points -> 1-d points; τροφοδοτούμενα σε B-trees) Χρησιμοποιείτε από το σύστημα TIGER και (πιθανότατα) από άλλα GIS προϊόντα Λειτουργεί τέλεια με χαμηλής διάστασης σημεία

Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά, Μη Εμπορική Χρήση Παρόμοια Διανομή 4.0 [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό. Οι όροι χρήσης των έργων τρίτων επεξηγούνται στη διαφάνεια «Επεξήγηση όρων χρήσης έργων τρίτων». Τα έργα για τα οποία έχει ζητηθεί άδεια αναφέρονται στο «Σημείωμα Χρήσης Έργων Τρίτων». [1] http://creativecommons.org/licenses/από-nc-sa/4.0/ Ως Μη Εμπορική ορίζεται η χρήση: που δεν περιλαμβάνει άμεσο ή έμμεσο οικονομικό όφελος από την χρήση του έργου, για το διανομέα του έργου και αδειοδόχο που δεν περιλαμβάνει οικονομική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο που δεν προσπορίζει στο διανομέα του έργου και αδειοδόχο έμμεσο οικονομικό όφελος (π.χ. διαφημίσεις) από την προβολή του έργου σε διαδικτυακό τόπο Ο δικαιούχος μπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιμοποιεί το έργο για εμπορική χρήση, εφόσον αυτό του ζητηθεί.

Επεξήγηση όρων χρήσης έργων τρίτων διαθέσιμο με άδεια CC-BY διαθέσιμο με άδεια CC-BY-SA διαθέσιμο με άδεια CC-BY-ND διαθέσιμο με άδεια CC-BY-NC διαθέσιμο με άδεια CC-BY-NC-SA διαθέσιμο με άδεια CC-BY-NC-ND διαθέσιμο με άδεια CC0 Public Domain διαθέσιμο ως κοινό κτήμα χωρίς σήμανση Δεν επιτρέπεται η επαναχρησιμοποίηση του έργου, παρά μόνο εάν ζητηθεί εκ νέου άδεια από το δημιουργό. Επιτρέπεται η επαναχρησιμοποίηση του έργου και η δημιουργία παραγώγων αυτού με απλή αναφορά του δημιουργού. Επιτρέπεται η επαναχρησιμοποίηση του έργου με αναφορά του δημιουργού, και διάθεση του έργου ή του παράγωγου αυτού με την ίδια άδεια. Επιτρέπεται η επαναχρησιμοποίηση του έργου με αναφορά του δημιουργού. Δεν επιτρέπεται η δημιουργία παραγώγων του έργου. Επιτρέπεται η επαναχρησιμοποίηση του έργου με αναφορά του δημιουργού. Δεν επιτρέπεται η εμπορική χρήση του έργου. Επιτρέπεται η επαναχρησιμοποίηση του έργου με αναφορά του δημιουργού και διάθεση του έργου ή του παράγωγου αυτού με την ίδια άδεια. Δεν επιτρέπεται η εμπορική χρήση του έργου. Επιτρέπεται η επαναχρησιμοποίηση του έργου με αναφορά του δημιουργού. Δεν επιτρέπεται η εμπορική χρήση του έργου και η δημιουργία παραγώγων του. Επιτρέπεται η επαναχρησιμοποίηση του έργου, η δημιουργία παραγώγων αυτού και η εμπορική του χρήση, χωρίς αναφορά του δημιουργού. Επιτρέπεται η επαναχρησιμοποίηση του έργου, η δημιουργία παραγώγων αυτού και η εμπορική του χρήση, χωρίς αναφορά του δημιουργού. Συνήθως δεν επιτρέπεται η επαναχρησιμοποίηση του έργου.

Διατήρηση Σημειωμάτων Οποιαδήποτε αναπαραγωγή ή διασκευή του υλικού θα πρέπει να συμπεριλαμβάνει: το Σημείωμα Αναφοράς το Σημείωμα Αδειοδότησης τη δήλωση Διατήρησης Σημειωμάτων το Σημείωμα Χρήσης Έργων Τρίτων (εφόσον υπάρχει) μαζί με τους συνοδευόμενους υπερσυνδέσμους.

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων» έχει χρηματοδοτήσει μόνο την αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους.