1 / 74

Δενδρικές Μέθοδοι Προσπέλασης

12. Β-δένδρα Β*-δένδρα Β + -δένδρα Άλλες παραλλαγές των Β-δένδρων. Δενδρικές Μέθοδοι Προσπέλασης. Κεφάλαιο 12 : Δενδρικές Μέθοδοι Προσπέλασης. Κατάλογοι. Ο κατάλογος είναι μια δομή που υλοποιεί μια συνάρτηση το όρισμά της είναι η τιμή του κλειδιού, η τιμή της είναι ο αριθμός εγγραφής.

corin
Download Presentation

Δενδρικές Μέθοδοι Προσπέλασης

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 12 • Β-δένδρα • Β*-δένδρα • Β+-δένδρα • Άλλες παραλλαγές των Β-δένδρων Δενδρικές Μέθοδοι Προσπέλασης

  2. Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης Κατάλογοι • Ο κατάλογος είναι μια δομή που υλοποιεί μια συνάρτηση • το όρισμά της είναι η τιμή του κλειδιού, • η τιμή της είναι ο αριθμός εγγραφής. • Ο κατάλογος είναι ανεξάρτητος του αρχείου φυσικά και λογικά. • Σε έναν κατάλογο το κλειδί μπορεί να είναι ένα χαρακτηριστικό, μέρος του ή συνδυασμός πολλών χαρακτηριστικών.

  3. Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης Κατάλογοι • Μπορεί να υπάρχει ένας ή πολλοί κατάλογοι

  4. Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης Κατάλογοι • Ο απλούστερος τύπος καταλόγου είναι ο γραμμικός κατάλογος (linear index), που περιέχει τις εγγραφές ταξινομημένες κατά αύξουσα τάξη χωρίς καμία άλλη δόμηση. • Ένας γραμμικός κατάλογος μπορεί να προσπελασθεί σειριακά αλλά αποτελεσματικότερα με δυαδική αναζήτηση. • Ο κατάλογος αυτός διατηρεί όλα τα μειονεκτήματα των σειριακών αρχείων, δηλαδή μη αποτελεσματικές μεθόδους εισαγωγής, διαγραφής και αναδιοργάνωσης.

  5. Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης Κατάλογοι • Οι δενδρικοί κατάλογοι (tree index) έχουν συγκεκρι-μένη ιεραρχία επιπέδων και διακρίνονται σε 2 είδη: • Ομογενή δένδρα • Ετερογενή δένδρα • Ετερογενή είναι τα δένδρα που περιέχουν μόνο ένα είδος δεικτών, αλλά οι δείκτες αυτοί είναι διαφορετικοί για τους κόμβους των μεσαίων επιπέδων απ’ ότι για το τελευταίο επίπεδο. • Στα ομογενή δένδρα υπάρχουν δύο είδη δεικτών, οι δείκτες δεδομένων (data pointers) καιοι δενδρικοί δείκτες (tree pointers). Στα μεσαία επίπεδα και οι δύο τύποι είναι ενεργοί, ενώ στο τελευταίο επίπεδο είναι ενεργοί μόνο οι δείκτες δεδομένων.

  6. Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης Κατάλογοι • Σε έναν κόμβο ομογενούς δένδρου, για κάθε κλειδί υπάρχουν δύο δενδρικοί δείκτες • ο πρώτος δείχνει κατευθύνει προς τα κλειδιά που είναι μικρότερα από το πρώτο κλειδί του κόμβου • ο δεύτερος κατευθύνει προς τα κλειδιά που είναι μεγαλύτερα από το τελευταίο κλειδί του κόμβου

  7. Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης Κατάλογοι • Ομογενές δένδρο • Ετερογενές δένδρο

  8. Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης Β-δένδρα • Σύμφωνα με έναν ορισμό, ως Β-δένδρο τάξης m ορίζεται το ομογενές δένδρο με τα εξής χαρακτηριστικά: • η ρίζα έχει το ελάχιστο δύο παιδιά, • οι εσωτερικοί κόμβοι (εκτός της ρίζας) έχουν το ελάχιστο m/2 παιδιά και το μέγιστο m παιδιά, • ένας εσωτερικός κόμβος με k κλειδιά έχει k+1 παιδιά, και • οι εξωτερικοί κόμβοι βρίσκονται στο ίδιο επίπεδο.

  9. Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης Β-δένδρα • Σύμφωνα με έναν άλλο ορισμό, ως Β-δένδρο βαθμού d ορίζεται το ομογενές δένδρο με τα εξής χαρακτηριστικά: • η ρίζα έχει το ελάχιστο δύο παιδιά, • οι εσωτερικοί κόμβοι (εκτός της ρίζας) έχουν το ελάχιστο dκλειδιά και το μέγιστο 2d κλειδιά, • ένας εσωτερικός κόμβος με k κλειδιά έχει k+1 παιδιά, και • οι εξωτερικοί κόμβοι βρίσκονται στο ίδιο επίπεδο.

  10. Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης Β-δένδρα • Παράδειγμα Β-δένδρου τάξης m=3 ή βαθμού d=1.

  11. Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης Β-δένδρα • Παράγοντας χρησιμοποίησης χώρου,U,ορίζεται ο λόγος του αριθμού των αποθηκευμένων κλειδιών προς το σύνολο των διαθέσιμων θέσεων. • Γενικώς ισχύει:Umin= 50% και Umax= 100%. • Από το δεύτερο ορισμό ισχύει: όπου nο αριθμός των κλειδιών, nod ο αριθμός των κόμβων, dο βαθμός του δένδρου.

  12. Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης Β-δένδρα • Η ελάχιστη τιμή του αριθμού των κόμβων προκύπτει από: • Η μέγιστη τιμή του αριθμού των κόμβων προκύπτει από: • Για σταθερή τιμή του nκαι για συνεχή ομοιόμορφη κατανομή στο διάστημα [nodmin, nodmax] προκύπτει: • Αντικαθιστώντας το Umin=50%,προκύπτει ότι Ε[U]= ln269%.

  13. Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης Β-δένδρα • Ο ελάχιστος αριθμός των κλειδιών ενός Β-δένδρου τάξης mκαι ύψους hείναι: ενώ ο μέγιστος είναι: • Το μέγεθος ενός κόμβου σε bytes είναι: • O χρόνος ανάγνωσης τυχαίου κόμβου είναι:

  14. Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης Β-δένδρα - Εισαγωγή • Στο δένδρο πρέπει να εισαχθεί το κλειδί 10. • Αν εισαχθεί στον κόμβο Ζ παραβιάζεται ο ορισμός, γιατί ο μέγιστος αριθμός κλειδιών είναιm–1=3–1=2.

  15. Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης Β-δένδρα - Εισαγωγή • Όταν τα κλειδιά είναι περισσότερα από το επιτρεπτό όριο κλειδιών δημιουργείται νέος κόμβος. • Το μεσαίο από τα κλειδιά 8,9,10 (στην περίπτωση αυτή το 9) ανεβαίνει στον πατρικό κόμβο. • Το κλειδί 8 επα-να-αποθηκεύε-ται στον κόμβο Ζ, ενώ το 10 στο νέο κόμβο Θ.

  16. Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης Β-δένδρα - Εισαγωγή

  17. Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης Β-δένδρα - Εισαγωγή

  18. Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης Β-δένδρα - Εισαγωγή

  19. Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης Β-δένδρα - Εισαγωγή • Η διάσπαση της ρίζας δημιουργεί 2 κόμβους, ενώ οι άλλες διασπάσεις δημιουργούν 1 κόμβο. • Αν hτο ύψος του δένδρου, τότε δημιουργούνται το πολύ h-1 νέοι κόμβοι. • Κάθε κόμβος έχει το ελάχιστο m/2-1 κλειδιά, ενώ η ρίζα το ελάχιστο 1 κλειδί. • Ένα δένδρο με pκόμβους έχει το ελάχιστο 1+(m/2-1 )*(p-1) κλειδιά. • Η πιθανότητα διάσπασης λόγω εισαγωγής νέου κλειδιού είναι λιγότερη από:

  20. Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης Β-δένδρα – Διαγραφή σε τερματικό κόμβο • Αν παραβιάζεται ο ορισμός του Β-δένδρου, τότε: • ελέγχεται αν ο διπλανός κόμβος (δεξιά και αριστερά) έχει περισσότερα από τον ελάχιστο αριθμό κλειδιών και γίνεται ανακατανομή των κλειδιών, • ενημερώνεται ο γονέας ώστε να αντανακλά τη νέα κατανομή. • Όταν οι διπλανοί κόμβοι έχουν τον ελάχιστο αριθμό κλειδιών, τότε γίνεται συγχώνευση κόμβων. • Η συγχώνευση αφορά 3 κόμβους • 2 από το κατώτερο επίπεδο, και • 1 από το ανώτερο επίπεδο.

  21. Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης Β-δένδρα – Διαγραφή σε εσωτερικό κόμβο • Αν το υπό διαγραφή κλειδί βρίσκεται σε εσωτερικό κόμβο, τότε: • εντοπίζεται το λεξικογραφικά αμέσως προηγούμενο κλειδί για να καταλάβει τη θέση του διαγραφόμενου, και • η διαδικασία συνεχίζει σύμφωνα με τα προηγούμενα.

  22. Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης Β-δένδρα – Διαγραφή σε εσωτερικό κόμβο • Έστω το Β-δένδρο 5ης τάξης

  23. Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης Β-δένδρα – Διαγραφή σε εσωτερικό κόμβο

  24. Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης Β-δένδρα – Διαγραφή σε εσωτερικό κόμβο

  25. Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης Β-δένδρα – Διαγραφή σε εσωτερικό κόμβο

  26. Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης Β-δένδρα – Διαγραφή σε εσωτερικό κόμβο

  27. Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης Β-δένδρα – Διαγραφή σε εσωτερικό κόμβο

  28. Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης Β-δένδρα – Διαγραφή σε εσωτερικό κόμβο

  29. Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης Κλάσεις Β-δένδρων • Ο όροςΚλάση ΒΤ(3,5)δηλώνει το σύνολο των Β-δένδρων με 3 κόμβους και 5 κλειδιά. • Για τις δύο δομές της κλάσης ΒΤ(3,5) ισχύει: • παράγοντας χρησιμοποίησης χώρου: 5/6 και 5/8. • μέση τιμή προσπελάσεων: 9/5 και 8/5.

  30. Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης Κλάσεις Β-δένδρων Σχέση χώρου-χρόνου: Τα βέλτιστα από πλευράς χώρου Β-δένδραείναι περίπου βέλτιστα και από πλευράς χρόνου, ενώ τα βέλτιστα από πλευράς χρόνουΒ-δένδρα είναι περίπου χείριστα από πλευράς χώρου.

  31. Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης Β*-δένδρα • Η μέση τιμή του παράγοντα χρησιμοποίησης χώρου, U,είναι δυνατό να αυξηθεί ακολουθώντας μια τεχνική κατά την εισαγωγή και διαγραφή κλειδιών: • αντί να γίνει διάσπαση κατά την εισαγωγή ενός κλειδιού, τότε να αποθηκευτούν κάποια κλειδιά σε γειτονικό κόμβο, • αν είναι γεμάτοι οι γειτονικοί κόμβοι, τότε η διάσπαση γίνεται σε 2 κόμβους (τον υπερχειλίζοντα και ένα γειτονικό) και προκύπτουν 3 κόμβοι.

  32. Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης Β*-δένδρα • Μέση τιμή του παράγοντα χρησιμοποίησης χώρου σε ένα Β-δένδρο είναι 69%. • Με το προηγούμενο τέχνασμα, η ελάχιστη τιμή του παράγοντα χρησιμοποίησης χώρου σε ένα Β*-δένδρο καθίσταται Umin=67%, οπότε για τη μέση τιμή ισχύει Ε[U]=81%. • Εκτός από την καλύτερη χρήση χώρου, ένα άλλο πλεονέκτημα είναι ότι η ταχύτερη αναζήτηση. • Μειονέκτημα είναι το αυξημένο κόστος κατά τις εισαγωγές και τις διαγραφές.

  33. Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης Β*-δένδρα • Β*-δένδρο τάξης m είναι ένα δένδρο αναζήτησης m δρόμων όπου: • η ρίζα έχει το ελάχιστο 2 παιδιά και το μέγιστο 2 (2m-2)/3+1 παιδιά, • οι εσωτερικοί κόμβοι, εκτός της ρίζας, έχουν το ελάχιστο (2m-2)/3 παιδιά και το μέγιστο m παιδιά, • ένας εσωτερικός κόμβος με k κλειδιά έχει k+1 παιδιά, και • οι εξωτερικοί κόμβοι βρίσκονται στο ίδιο επίπεδο.

  34. Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης Β*-δένδρα • Σε περίπτωση υπερχείλισης, αν δεν υπάρχει χώρος σε γειτονικό κόμβο, τότε: • δημιουργείται νέος κόμβος, • γίνεται αναδιανομή στους τρεις κόμβους, • τα κλειδιά που θα ανέλθουν στο ανώτερο επίπεδο είναι τα: • α = (2m+1)/3-οστό και β = (2m+1–α)/2-οστό.

  35. Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης Β*-δένδρα • Εισαγωγή 56

  36. Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης Β*-δένδρα • Εισαγωγή 90, 100, 113, 142, 146

  37. Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης Β*-δένδρα • Εισαγωγή 150

  38. Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης Β*-δένδρα • Εισαγωγή 175, 193, 202, 215

  39. Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης Β*-δένδρα • Η τεχνική της διάσπασης 2 κόμβων σε 3 μπορεί να γενι-κευθεί με διάσπαση 3 κόμβων σε 4, 4 κόμβων σε 5 κοκ. • Στις περιπτώσεις αυτές, η ελάχιστη τιμή του παράγοντα χρησιμοποίησης χώρου θα ισούται αντίστοιχα με 75%, 80% κοκ. • Το τίμημα έναντι του κέρδους σε καλύτερο παράγοντα χρησιμοποίησης χώρου είναι ο αυξημένος χρόνος για εισαγωγές και διαγραφές.

  40. Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης Β+-δένδρα Σε ένα Β+-δένδρου βαθμού d: • η ρίζα έχει το ελάχιστο 2 παιδιά, εκτός αν είναι φύλλο, • οι εσωτερικοί κόμβοι δεν έχουν περισσότερο από 2d κλειδιά και λιγότερο από d κλειδιά. Οι εσωτερικοί κόμβοι περιέχουν μόνο κλειδιά και δείκτες προς το κατώτερο επίπεδο, • όλα τα φύλλα βρίσκονται στο ίδιο επίπεδο. Αν το Β+-δένδρο χρησιμοποιείται ως κύριος κατάλογος, τα φύλλα περιέχουν εγγραφές, ενώ αν χρησιμοποιείται ως δευτερεύων κατάλογος, τότε τα φύλλα περιέχουν κλειδιά και δείκτες προς εγγραφές, • ένας εσωτερικός κόμβος με k κλειδιά έχει k+1 παιδιά.

  41. Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης Β+-δένδρα • Το Β+-δένδρο είναι ετερογενές, τα δεδομένα βρίσκονται μόνο στα φύλλα. • Οι αριθμοί στα φύλλα δηλώνουν τα κλειδιά εγγραφών, ενώ εσωτερικούς κόμβους δηλώνουν απλά κλειδιά. • Τα φύλλα περιέχουν δείκτες προς το επόμενο φύλλο για να διευκολύνεται η σειριακή επεξεργασία.

  42. Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης Β+-δένδρα • Η δομή υποδιαιρείται σε δύο λογικά μέρη, όπου το ανώτερο εξυπηρετεί το κατώτερο ως κατάλογος. • Ο κατάλογος λειτουργεί ως ένα Β-δένδρο, ή θα μπορούσε ο κατάλογος αυτός να είναι ένα Β*-δένδρο. • Σε μία υλοποίηση, ο τύπος των εσωτερικών κόμβων είναι διαφορετικός από τον τύπο των εξωτερικών. • Τα Β+-δένδρα είναι: • ρηχά και εξαιρετικά πλατιά, και • πολύ αποτελεσματικά και χρησιμοποιούνται για ερωτήσεις διαστήματος.

  43. Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης Β+-δένδρα • Ομαδοποιημένος (clustered) λέγεται ο κατάλογος πρωτεύοντος κλειδιού, όπου οι εγγραφές είναι αποθηκευμένες σε γειτονικούς κάδους κατά απόλυτη τάξη του κλειδιού. • Αραιός(sparse) λέγεται ο κατάλογος πρωτεύοντος κλειδιού, όπου το ανώτερο επίπεδο από τα φύλλα περιέχει μόνο την τιμή του μικρότερου. • Πυκνός (dense) λέγεται ο κατάλογος που χρησιμοποιείται και ως δευτερεύων κατάλογος, και όπου στο τελευταίο επίπεδο υπάρχουν αποθηκευμένα ζεύγη κλειδιών-δεικτών που σηματοδοτούν τις αντίστοιχες εγγραφές του πρωτεύοντος καταλόγου.

  44. Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης Β+-δένδρα

  45. Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης Β+-δένδρα • Β+-δένδρο που χρησιμοποιείται και ως δευτερεύων κατάλογος.

  46. Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης Β+-δένδρα • Είναι ευθύνη του σχεδιαστή των αρχείων να αποφασίσει το πόσους και ποιους καταλόγους θα δημιουργήσει. • στην περίπτωση που θα γίνει ερώτηση με βάση δευτερεύον κλειδί για το οποίο δεν έχει δημιουργηθεί κατάλογος, η αναζήτηση ταυτίζεται με την αναζήτηση σε αρχείο σωρού • στην περίπτωση που δημιουργείται κατάλογος για κάθε πεδίο, απαιτείται πολλαπλάσιος χώρος από τον κύριο χώρο των δεδομένων και το κόστος ενημέρωσης των καταλόγων είναι ιδιαίτερα μεγάλο.

  47. Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης Β+-δένδρα - Αναζήτηση • Σε κάθε κόμβο, οι δείκτες προς το κατώτερο επίπεδο ονομάζονται από 0 ως k και τα κλειδιά από 1 ως k • αν το κλειδί που αναζητείται είναι μικρότερο από το πρώτο κλειδί της ρίζας, τότε λαμβάνεται ο δείκτης υπ' αριθμό 0, • γενικά, αν το αναζητούμενο κλειδί είναι μεγαλύτερο από το i-οστό κλειδί και μικρότερο από το (i+1)-οστό κλειδί, τότε ακολουθείται ο i-οστός δείκτης, • η διαδικασία αυτή εκτελείται για όλα τα επίπεδα του δένδρου, • όταν η αναζήτηση φθάνει στα φύλλα, εντοπίζεται η εγγραφή αν το Β+-δένδρο είναι πρωτεύων κατάλογος, ενώ αν το Β+-δένδρο είναι δευτερεύων κατάλογος, τότε ακολουθείται ο σχετικός δείκτης προς την αντίστοιχη εγγραφή.

  48. Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης Β+-δένδρα - Αναζήτηση • Για τη μεταφορά δεδομένων, ο όρος κάδος ταυτίζεται με τον όρο κόμβος. • Παράγοντας καδοποίησης (Bkfr) ορίζεται ο αριθμός των εγγραφών στους εξωτερικούς κόμβους. • Όταν το δένδρο χρησιμοποιείται ως πρωτεύων κατάλογος και ως δευτερεύων κατάλογος απαιτείται μια προσπέλαση για τον κόμβο που βρίσκεται επάνω από το κατάλληλο φύλλο και μια δεύτερη για το φύλλο.

  49. Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης Β+-δένδρα – Εξαντλητική Ανάγνωση • Ο χρόνος για την εξαντλητική ανάγνωση ενός Β+-δένδρου ως πρωτεύων κατάλογος είναι : • no αριθμός εγγραφών, • Bkfr o παράγοντας ομαδοποίησης, • s είναι ο μέσος χρόνος εντοπισμού, • r είναι ο μέσος χρόνος περιστροφής, και • dtt είναι ο χρόνος μεταφοράς δεδομένων.

  50. Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης Β+-δένδρα – Εξαντλητική Ανάγνωση • Ο χρόνος για την εξαντλητική ανάγνωση ενός Β+-δένδρου ως δευτερεύων κατάλογος είναι: • ο πρώτος όρος αναφέρεται στο κόστος ανάγνωσης των εγγραφών μία προς μία, ενώ • ο δεύτερος αναφέρεται στο κόστος ανάγνωσης του τελευταίου επιπέδου του Β+-δένδρου. Ο δεύτερος όρος είναι σημαντικά μικρότερος και μπορεί να παραλειφθεί.

More Related