Κατέβασμα παρουσίασης
Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε
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: Δενδρικές Μέθοδοι Προσπέλασης
Κατάλογοι Βασική διαφορά ομογενών-ετερογενών δένδρων είναι το ύψος τους. Το ύψος ενός ετερογενούς δένδρου h ορίζεται : όπου n το πλήθος των εγγραφών και y είναι ο παράγοντας διακλάδωσης (branching factor). Αν y=4 και h=3, τότε n=64.
9
Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης
Κατάλογοι Το ύψος ενός ομογενούς δένδρου προκύπτει ως εξής. Γενικά ισχύει: στη ρίζα χωρούν (m-1) κλειδιά, στο δεύτερο επίπεδο m(m-1) κλειδιά, στο τρίτο επίπεδο m2(m-1) κλειδιά. Το σύνολο των εγγραφών είναι: οπότε: Αν y=4 και h=3, τότε n=63.
10
Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης
Β-δένδρα Σύμφωνα με έναν ορισμό, ως Β-δένδρο τάξης m ορίζεται το ομογενές δένδρο με τα εξής χαρακτηριστικά: η ρίζα έχει το ελάχιστο δύο παιδιά, οι εσωτερικοί κόμβοι (εκτός της ρίζας) έχουν το ελάχιστο m/2 παιδιά και το μέγιστο m παιδιά, ένας εσωτερικός κόμβος με k κλειδιά έχει k+1 παιδιά, και οι εξωτερικοί κόμβοι βρίσκονται στο ίδιο επίπεδο.
11
Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης
Β-δένδρα Σύμφωνα με έναν άλλο ορισμό, ως Β-δένδρο βαθμού d ορίζεται το ομογενές δένδρο με τα εξής χαρακτηριστικά: η ρίζα έχει το ελάχιστο δύο παιδιά, οι εσωτερικοί κόμβοι (εκτός της ρίζας) έχουν το ελάχιστο d κλειδιά και το μέγιστο 2d κλειδιά, ένας εσωτερικός κόμβος με k κλειδιά έχει k+1 παιδιά, και οι εξωτερικοί κόμβοι βρίσκονται στο ίδιο επίπεδο.
12
Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης
Β-δένδρα Παράδειγμα Β-δένδρου τάξης m=3 ή βαθμού d=1.
13
Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης
Β-δένδρα Παράγοντας χρησιμοποίησης χώρου, U, ορίζεται ο λόγος του αριθμού των αποθηκευμένων κλειδιών προς το σύνολο των διαθέσιμων θέσεων. Γενικώς ισχύει: Umin= 50% και Umax= 100%. Από το δεύτερο ορισμό ισχύει: όπου n ο αριθμός των κλειδιών, nod ο αριθμός των κόμβων, d ο βαθμός του δένδρου.
14
Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης
Β-δένδρα Η ελάχιστη τιμή του αριθμού των κόμβων προκύπτει από: Η μέγιστη τιμή του αριθμού των κόμβων προκύπτει από: Για σταθερή τιμή του n και για συνεχή ομοιόμορφη κατανομή στο διάστημα [nodmin, nodmax] προκύπτει: Αντικαθιστώντας το Umin=50%, προκύπτει ότι Ε[U]= ln269%.
15
Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης
Β-δένδρα Ο ελάχιστος αριθμός των κλειδιών ενός Β-δένδρου τάξης m και ύψους h είναι: ενώ ο μέγιστος είναι: Το μέγεθος ενός κόμβου σε bytes είναι: O χρόνος ανάγνωσης τυχαίου κόμβου είναι:
16
Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης
Β-δένδρα - Εισαγωγή Στο δένδρο πρέπει να εισαχθεί το κλειδί 10. Αν εισαχθεί στον κόμβο Ζ παραβιάζεται ο ορισμός, γιατί ο μέγιστος αριθμός κλειδιών είναι m–1=3–1=2.
17
Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης
Β-δένδρα - Εισαγωγή Όταν τα κλειδιά είναι περισσότερα από το επιτρεπτό όριο κλειδιών δημιουργείται νέος κόμβος. Το μεσαίο από τα κλειδιά 8,9,10 (στην περίπτωση αυτή το 9) ανεβαίνει στον πατρικό κόμβο. Το κλειδί 8 επα-να-αποθηκεύε-ται στον κόμβο Ζ, ενώ το 10 στο νέο κόμβο Θ.
18
Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης
Β-δένδρα - Εισαγωγή
19
Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης
Β-δένδρα - Εισαγωγή
20
Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης
Β-δένδρα - Εισαγωγή
21
Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης
Β-δένδρα - Εισαγωγή Η διάσπαση της ρίζας δημιουργεί 2 κόμβους, ενώ οι άλλες διασπάσεις δημιουργούν 1 κόμβο. Αν h το ύψος του δένδρου, τότε δημιουργούνται το πολύ h-1 νέοι κόμβοι. Κάθε κόμβος έχει το ελάχιστο m/2-1 κλειδιά, ενώ η ρίζα το ελάχιστο 1 κλειδί. Ένα δένδρο με p κόμβους έχει το ελάχιστο 1+(m/2-1 )*(p-1) κλειδιά. Η πιθανότητα διάσπασης λόγω εισαγωγής νέου κλειδιού είναι λιγότερη από:
22
Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης
Β-δένδρα – Διαγραφή σε τερματικό κόμβο Αν παραβιάζεται ο ορισμός του Β-δένδρου, τότε: ελέγχεται αν ο διπλανός κόμβος (δεξιά και αριστερά) έχει περισσότερα από τον ελάχιστο αριθμό κλειδιών και γίνεται ανακατανομή των κλειδιών, ενημερώνεται ο γονέας ώστε να αντανακλά τη νέα κατανομή. Όταν οι διπλανοί κόμβοι έχουν τον ελάχιστο αριθμό κλειδιών, τότε γίνεται συγχώνευση κόμβων. Η συγχώνευση αφορά 3 κόμβους 2 από το κατώτερο επίπεδο, και 1 από το ανώτερο επίπεδο.
23
Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης
Β-δένδρα – Διαγραφή σε εσωτερικό κόμβο Αν το υπό διαγραφή κλειδί βρίσκεται σε εσωτερικό κόμβο, τότε: εντοπίζεται το λεξικογραφικά αμέσως προηγούμενο κλειδί για να καταλάβει τη θέση του διαγραφόμενου, και η διαδικασία συνεχίζει σύμφωνα με τα προηγούμενα.
24
Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης
Β-δένδρα – Διαγραφή σε εσωτερικό κόμβο Έστω το Β-δένδρο 5ης τάξης
25
Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης
Β-δένδρα – Διαγραφή σε εσωτερικό κόμβο
26
Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης
Β-δένδρα – Διαγραφή σε εσωτερικό κόμβο
27
Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης
Β-δένδρα – Διαγραφή σε εσωτερικό κόμβο
28
Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης
Β-δένδρα – Διαγραφή σε εσωτερικό κόμβο
29
Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης
Β-δένδρα – Διαγραφή σε εσωτερικό κόμβο
30
Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης
Β-δένδρα – Διαγραφή σε εσωτερικό κόμβο
31
Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης
Κλάσεις Β-δένδρων Ο όρος Κλάση ΒΤ(3,5) δηλώνει το σύνολο των Β-δένδρων με 3 κόμβους και 5 κλειδιά. Για τις δύο δομές της κλάσης ΒΤ(3,5) ισχύει: παράγοντας χρησιμοποίησης χώρου: 5/6 και 5/8. μέση τιμή προσπελάσεων: 9/5 και 8/5.
32
Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης
Κλάσεις Β-δένδρων Σχέση χώρου-χρόνου: Τα βέλτιστα από πλευράς χώρου Β-δένδρα είναι περίπου βέλτιστα και από πλευράς χρόνου, ενώ τα βέλτιστα από πλευράς χρόνου Β-δένδρα είναι περίπου χείριστα από πλευράς χώρου.
33
Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης
Β*-δένδρα Η μέση τιμή του παράγοντα χρησιμοποίησης χώρου, U, είναι δυνατό να αυξηθεί ακολουθώντας μια τεχνική κατά την εισαγωγή και διαγραφή κλειδιών: αντί να γίνει διάσπαση κατά την εισαγωγή ενός κλειδιού, τότε να αποθηκευτούν κάποια κλειδιά σε γειτονικό κόμβο, αν είναι γεμάτοι οι γειτονικοί κόμβοι, τότε η διάσπαση γίνεται σε 2 κόμβους (τον υπερχειλίζοντα και ένα γειτονικό) και προκύπτουν 3 κόμβοι.
34
Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης
Β*-δένδρα Μέση τιμή του παράγοντα χρησιμοποίησης χώρου σε ένα Β-δένδρο είναι 69%. Με το προηγούμενο τέχνασμα, η ελάχιστη τιμή του παράγοντα χρησιμοποίησης χώρου σε ένα Β*-δένδρο καθίσταται Umin=67%, οπότε για τη μέση τιμή ισχύει Ε[U]=81%. Εκτός από την καλύτερη χρήση χώρου, ένα άλλο πλεονέκτημα είναι ότι η ταχύτερη αναζήτηση. Μειονέκτημα είναι το αυξημένο κόστος κατά τις εισαγωγές και τις διαγραφές.
35
Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης
Β*-δένδρα Β*-δένδρο τάξης m είναι ένα δένδρο αναζήτησης m δρόμων όπου: η ρίζα έχει το ελάχιστο 2 παιδιά και το μέγιστο 2 (2m-2)/3+1 παιδιά, οι εσωτερικοί κόμβοι, εκτός της ρίζας, έχουν το ελάχιστο (2m-2)/3 παιδιά και το μέγιστο m παιδιά, ένας εσωτερικός κόμβος με k κλειδιά έχει k+1 παιδιά, και οι εξωτερικοί κόμβοι βρίσκονται στο ίδιο επίπεδο.
36
Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης
Β*-δένδρα Σε περίπτωση υπερχείλισης, αν δεν υπάρχει χώρος σε γειτονικό κόμβο, τότε: δημιουργείται νέος κόμβος, γίνεται αναδιανομή στους τρεις κόμβους, τα κλειδιά που θα ανέλθουν στο ανώτερο επίπεδο είναι τα: α = (2m+1)/3-οστό και β = (2m+1–α)/2-οστό.
37
Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης
Β*-δένδρα Β-δένδρο 7ης τάξης Η ρίζα έχει min=1, max=6 κλειδιά Β*-δένδρο 7ης τάξης Η ρίζα έχει min=1, max=8 κλειδιά Οι κόμβοι έχουν min=3, max=6 κλειδιά Οι κόμβοι έχουν min=4, max=6 κλειδιά Εισαγωγή 56
38
Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης
Β*-δένδρα Β-δένδρο Β*-δένδρο Εισαγωγή 90, 100, 113, 142, 146
39
Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης
Β*-δένδρα Β-δένδρο Β*-δένδρο Εισαγωγή 150
40
Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης
Β*-δένδρα Β-δένδρο Β*-δένδρο Εισαγωγή 175, 193, 202, 215
41
Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης
Β*-δένδρα Η τεχνική της διάσπασης 2 κόμβων σε 3 μπορεί να γενι-κευθεί με διάσπαση 3 κόμβων σε 4, 4 κόμβων σε 5 κοκ. Στις περιπτώσεις αυτές, η ελάχιστη τιμή του παράγοντα χρησιμοποίησης χώρου θα ισούται αντίστοιχα με 75%, 80% κοκ. Το τίμημα έναντι του κέρδους σε καλύτερο παράγοντα χρησιμοποίησης χώρου είναι ο αυξημένος χρόνος για εισαγωγές και διαγραφές.
42
Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης
Β+-δένδρα Σε ένα Β+-δένδρου βαθμού d: η ρίζα έχει το ελάχιστο 2 παιδιά, εκτός αν είναι φύλλο, οι εσωτερικοί κόμβοι δεν έχουν περισσότερο από 2d κλειδιά και λιγότερο από d κλειδιά. Οι εσωτερικοί κόμβοι περιέχουν μόνο κλειδιά και δείκτες προς το κατώτερο επίπεδο, όλα τα φύλλα βρίσκονται στο ίδιο επίπεδο. Αν το Β+-δένδρο χρησιμοποιείται ως κύριος κατάλογος, τα φύλλα περιέχουν εγγραφές, ενώ αν χρησιμοποιείται ως δευτερεύων κατάλογος, τότε τα φύλλα περιέχουν κλειδιά και δείκτες προς εγγραφές, ένας εσωτερικός κόμβος με k κλειδιά έχει k+1 παιδιά.
43
Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης
Β+-δένδρα Το Β+-δένδρο είναι ετερογενές, τα δεδομένα βρίσκονται μόνο στα φύλλα. Οι αριθμοί στα φύλλα δηλώνουν τα κλειδιά εγγραφών, ενώ εσωτερικούς κόμβους δηλώνουν απλά κλειδιά. Τα φύλλα περιέχουν δείκτες προς το επόμενο φύλλο για να διευκολύνεται η σειριακή επεξεργασία.
44
Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης
Β+-δένδρα Η δομή υποδιαιρείται σε δύο λογικά μέρη, όπου το ανώτερο εξυπηρετεί το κατώτερο ως κατάλογος. Ο κατάλογος λειτουργεί ως ένα Β-δένδρο, ή θα μπορούσε ο κατάλογος αυτός να είναι ένα Β*-δένδρο. Σε μία υλοποίηση, ο τύπος των εσωτερικών κόμβων είναι διαφορετικός από τον τύπο των εξωτερικών. Τα Β+-δένδρα είναι: ρηχά και εξαιρετικά πλατιά, και πολύ αποτελεσματικά και χρησιμοποιούνται για ερωτήσεις διαστήματος.
45
Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης
Β+-δένδρα Ομαδοποιημένος (clustered) λέγεται ο κατάλογος πρωτεύοντος κλειδιού, όπου οι εγγραφές είναι αποθηκευμένες σε γειτονικούς κάδους κατά απόλυτη τάξη του κλειδιού. Αραιός (sparse) λέγεται ο κατάλογος πρωτεύοντος κλειδιού, όπου το ανώτερο επίπεδο από τα φύλλα περιέχει μόνο την τιμή του μικρότερου. Πυκνός (dense) λέγεται ο κατάλογος που χρησιμοποιείται και ως δευτερεύων κατάλογος, και όπου στο τελευταίο επίπεδο υπάρχουν αποθηκευμένα ζεύγη κλειδιών-δεικτών που σηματοδοτούν τις αντίστοιχες εγγραφές του πρωτεύοντος καταλόγου.
46
Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης
Β+-δένδρα
47
Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης
Β+-δένδρα Β+-δένδρο που χρησιμοποιείται και ως δευτερεύων κατάλογος.
48
Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης
Β+-δένδρα Είναι ευθύνη του σχεδιαστή των αρχείων να αποφασίσει το πόσους και ποιους καταλόγους θα δημιουργήσει. στην περίπτωση που θα γίνει ερώτηση με βάση δευτερεύον κλειδί για το οποίο δεν έχει δημιουργηθεί κατάλογος, η αναζήτηση ταυτίζεται με την αναζήτηση σε αρχείο σωρού στην περίπτωση που δημιουργείται κατάλογος για κάθε πεδίο, απαιτείται πολλαπλάσιος χώρος από τον κύριο χώρο των δεδομένων και το κόστος ενημέρωσης των καταλόγων είναι ιδιαίτερα μεγάλο.
49
Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης
Β+-δένδρα - Αναζήτηση Σε κάθε κόμβο, οι δείκτες προς το κατώτερο επίπεδο ονομάζονται από 0 ως k και τα κλειδιά από 1 ως k αν το κλειδί που αναζητείται είναι μικρότερο από το πρώτο κλειδί της ρίζας, τότε λαμβάνεται ο δείκτης υπ' αριθμό 0, γενικά, αν το αναζητούμενο κλειδί είναι μεγαλύτερο από το i-οστό κλειδί και μικρότερο από το (i+1)-οστό κλειδί, τότε ακολουθείται ο i-οστός δείκτης, η διαδικασία αυτή εκτελείται για όλα τα επίπεδα του δένδρου, όταν η αναζήτηση φθάνει στα φύλλα, εντοπίζεται η εγγραφή αν το Β+-δένδρο είναι πρωτεύων κατάλογος, ενώ αν το Β+-δένδρο είναι δευτερεύων κατάλογος, τότε ακολουθείται ο σχετικός δείκτης προς την αντίστοιχη εγγραφή.
50
Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης
Β+-δένδρα - Αναζήτηση Για τη μεταφορά δεδομένων, ο όρος κάδος ταυτίζεται με τον όρο κόμβος. Παράγοντας καδοποίησης (Bkfr) ορίζεται ο αριθμός των εγγραφών στους εξωτερικούς κόμβους. Όταν το δένδρο χρησιμοποιείται ως πρωτεύων κατάλογος και ως δευτερεύων κατάλογος απαιτείται μια προσπέλαση για τον κόμβο που βρίσκεται επάνω από το κατάλληλο φύλλο και μια δεύτερη για το φύλλο.
51
Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης
Β+-δένδρα – Εξαντλητική Ανάγνωση Ο χρόνος για την εξαντλητική ανάγνωση ενός Β+-δένδρου ως πρωτεύων κατάλογος είναι : n o αριθμός εγγραφών, Bkfr o παράγοντας ομαδοποίησης, s είναι ο μέσος χρόνος εντοπισμού, r είναι ο μέσος χρόνος περιστροφής, και dtt είναι ο χρόνος μεταφοράς δεδομένων.
52
Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης
Β+-δένδρα – Εξαντλητική Ανάγνωση Ο χρόνος για την εξαντλητική ανάγνωση ενός Β+-δένδρου ως δευτερεύων κατάλογος είναι: ο πρώτος όρος αναφέρεται στο κόστος ανάγνωσης των εγγραφών μία προς μία, ενώ ο δεύτερος αναφέρεται στο κόστος ανάγνωσης του τελευταίου επιπέδου του Β+-δένδρου. Ο δεύτερος όρος είναι σημαντικά μικρότερος και μπορεί να παραλειφθεί.
53
Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης
Β+-δένδρα – Προσπέλαση επόμενης εγγραφής Το χρονικό κόστος για την ανάκτηση της επόμενης εγγραφής είναι: ο πρώτος όρος δίνει το κόστος για την εύρεση του επόμενου κάδου όταν η διεύθυνσή του είναι γνωστή, ο δεύτερος όρος προκύπτει από το γεγονός ότι είναι πιθανό αυτή η διεύθυνση να μην είναι γνωστή. Στην περίπτωση αυτή, γνωστή είναι μόνο η διεύθυνση της σελίδας, όπου είναι αποθηκευμένη η διεύθυνση της επόμενης εγγραφής. ο δεύτερος όρος είναι λιγότερο σημαντικός από τον πρώτο και η σχέση μπορεί να απλοποιηθεί.
54
Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης
Β+-δένδρα – Εισαγωγή εγγραφής Μια εισαγωγή ξεκινά με την αναζήτηση του κατάλληλου κόμβου Στην απλούστερη μορφή που υπάρχει διαθέσιμος χώρος μέσα στον κόμβο ισχύει: Στην περίπτωση υπερχείλισης ισχύει: Παράδειγμα: αν Bkfr=10 και Β=2400 bytes, τότε:
55
Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης
Β+-δένδρα – Εισαγωγή εγγραφής
56
Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης
Β+-δένδρα – Εισαγωγή εγγραφής Η ενημέρωση των δευτερευόντων καταλόγων είναι προβληματική, επειδή κατά τη διάσπαση ενός κόμβου πολλές εγγραφές αλλάζουν διεύθυνση. Για το λόγο αυτό, πολλά συστήματα διαχείρισης αρχείων δεν κρατούν μαζί με το δευτερεύον κλειδί την αντίστοιχη διεύθυνση αλλά την τιμή του πρωτεύοντος κλειδιού: το πλεονέκτημα είναι ότι δεν ενημερώνονται για κάθε εισαγωγή όλοι οι δευτερεύοντες κατάλογοι, το μειονέκτημα είναι ότι για την εύρεση μίας εγγραφής με βάση το δευτερεύον κλειδί πρέπει να γίνει προσπέλαση και στους δύο καταλόγους.
57
Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης
Β+-δένδρα – Εισαγωγή εγγραφής Κατά τη εισαγωγή ενός κλειδιού σε δένδρο που χρησιμο-ποιείται ως δευτερεύων κατάλογος, κάθε εξωτερικός κόμβος περιέχει από d έως 2d κλειδιά. Στη περίπτωση υπερχείλισης γίνεται διάσπαση και στον παλιό κόμβο αποθηκεύονται d κλειδιά, ενώ στο νέο αποθηκεύονται d+1κλειδιά. Η τιμή του μικρότερου κλειδιού του νέου κόμβου καθώς και η διεύθυνση του νέου κόμβου ανεβαίνουν προς τον κόμβο πατέρα. Αν αυτή η τιμή-διεύθυνση δεν χωρά, τότε γίνεται διάσπα-ση στον κόμβο πατέρα. Στον παλιό κόμβο αποθηκεύονται d κλειδιά, στο νέο d κλειδιά, ενώ στο ανώτερο επίπεδο ανέρχεται το μεσαίο κλειδί.
58
Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης
Β+-δένδρα – Εισαγωγή εγγραφής Εισαγωγή του κλειδιού 142
59
Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης
Β+-δένδρα – Διαγραφή εγγραφής Η περιεκτικότητα των κόμβων δεν πρέπει να είναι κατώτερη του 50%. Αν από τους τερματικούς κόμβους διαγραφεί κάποια εγγραφή με κλειδί που είναι αποθηκευμένο σε κάποιο ανώτερο επίπεδο, δεν δημιουργείται πρόβλημα. Αν εξωτερικός κόμβος απομείνει με λιγότερες από Bkfr/2 εγγραφές, τότε ελέγχεται αν οι γειτονικοί (ο αριστερός και μετά ο δεξιός) έχουν περισσότερα εγγραφές από αυτό το όριο. Αν υπάρχει, οι εγγραφές μοιράζονται εξίσου μεταξύ τους και ενημερώνεται ο κόμβος πατέρας.
60
Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης
Β+-δένδρα – Διαγραφή εγγραφής
61
Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης
Β+-δένδρα – Διαγραφή εγγραφής
62
Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης
Β+-δένδρα – Διαγραφή εγγραφής
63
Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης
Β+-δένδρα – Διαγραφή εγγραφής Όταν οι γειτονικοί κόμβοι δεν έχουν περισσότερες από Bkfr/2 εγγραφές γίνεται συγχώνευση οι εγγραφές επανα-αποθηκεύονται στον ένα κόμβο, ενώ ο άλλος αποδίδεται στο σύστημα, ενημερώνεται ο κόμβος πατέρας, όπου διαγρά-φεται ένα κλειδί και ο αντίστοιχος δείκτης.
64
Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης
Β+-δένδρα – Διαγραφή εγγραφής Περίπτωση διαγραφής όπου ο εσωτερικός κόμβος καταλήγει σε λιγότερο από d κλειδιά δεν είναι πιθανή, γιατί οι εσωτερικοί κόμβοι έχουν 2d*ln2 κλειδιά. Αν d=100, τότε 2d*ln2 =140, δηλαδή πρέπει να χάσει 40 κλειδιά. Έστω εσωτερικός κόμβος μένει με < d κλειδιά ελέγχονται οι γειτονικοί κόμβοι αν περιέχουν περισσότερα κλειδιά από το όριο, αν υπάρχει τέτοιος κόμβος, τα κλειδιά του γειτονικού κόμβου, το κλειδί του πατέρα και τα κλειδιά του κόμβου αναδιανέμονται στους δύο κόμβους, το μεσαίο κλειδί ανέρχεται στον κόμβο πατέρα.
65
Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης
Β+-δένδρα – Διαγραφή εγγραφής Αν και οι δύο γειτονικοί κόμβοι έχουν d κλειδιά, τότε γίνεται συγχώνευση ως εξής: τα κλειδιά επανα-αποθηκεύονται στον ένα κόμβο, ενώ ο άλλος αποδίδεται στο σύστημα, το αντίστοιχο κλειδί και ο σχετικός δείκτης διαγράφονται από τον κόμβο πατέρα, αν και ο πατέρας κόμβος μένει με λιγότερο από d κλειδιά, τότε το πρόβλημα μεταφέρεται ένα επίπεδο προς τα επάνω.
66
Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης
Β+-δένδρα – Διαγραφή εγγραφής
67
Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης
Β+-δένδρα – Διαγραφή εγγραφής Το κόστος της απλής διαγραφής είναι: Σε περίπτωση αναδιανομής εγγραφών απαιτείται: προσπέλαση των δύο γειτονικών κόμβων, προσπέλαση του πατέρα κόμβου, και επανεγγραφή των τριών κόμβων.
68
Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης
Β+-δένδρα – Διαγραφή εγγραφής Αν οι αδελφοί (γειτονικοί κόμβοι) έχουν d κλειδιά, τότε το κόστος διαγραφής είναι: Αν το δένδρο χρησιμοποιείται ως δευτερεύων κατάλογος τότε : Απλοποίηση γίνεται εφόσον το d είναι πολύ μεγάλο:
69
Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης
Παραλλαγές Β-δένδρων Μεταξύ των άλλων στη βιβλιογραφία αναφέρονται οι εξής παραλλαγές: Β-δένδρα με κλειδιά μεταβλητού μήκους (B-trees with variable length entries), Β-δένδρα μικρής τάξης, Δυαδικά Β-δένδρα (Binary B-trees), Συμμετρικά Δυαδικά Β-δένδρα (Symmetric Binary B-trees), και Προθεματικά Β+-δένδρα (Prefix B+-trees).
70
Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης
Β-δένδρα με κλειδιά μεταβλητού μήκους Είναι δυνατόν να κατασκευασθεί ένα Β-δένδρο για κλειδιά μεταβλητού μήκους (συμβολοσειρές) με περιεκτικότητα κόμβων τουλάχιστον 50%. Στο δένδρο αυτό δεν έχει σημασία ο αριθμός των κλειδιών που περιέχει, αλλά το συνολικό μέγεθος των κλειδιών. Έχουν προταθεί αρκετοί αλγόριθμοι με σκοπό τη βελτιστοποίηση του δένδρου αυτού (ως προς το ύψος και το πλήθος του συνολικού αριθμού κόμβων) και συνεπώς την ελαχιστοποίηση του χρόνου αναζήτησης. Για το σκοπό αυτό, θα πρέπει τα μικρού μεγέθους κλειδιά να αποθηκευθούν προς τη ρίζα. Η δομή αυτή εφαρμόζεται μόνο σε στατικά και γνωστά από την αρχή δεδομένα.
71
Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης
Β-δένδρα μικρής τάξης Υπάρχουν πολλές παραλλαγές: 2-3 δένδρα, δηλαδή Β-δένδρα τάξης m=3, 1-2 δένδρα, δηλαδή Β-δένδρα τάξης m=2, 2-3 δένδρα αδελφών (2-3 brother trees), με τον περιορισμό ότι ένας κόμβος με 1 εγγραφή πρέπει να έχει οπωσδήποτε αδελφό κόμβο με 2 εγγραφές, 1-2 δένδρα αδελφών με παρόμοιο περιορισμό, 2-3 δένδρα υιών (2-3 son trees) με τον περιορισμό ότι δεν μπορεί να υπάρξει ένα ζεύγος κόμβων με σχέση πατέρα- παιδιού, όπου και οι δύο κόμβοι να έχουν μια μόνο εγγραφή, 1-2 δένδρα υιών με παρόμοιο περιορισμό.
72
Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης
Β-δένδρα μικρής τάξης Είναι ευκολονόητο ότι οι περιορισμοί αυτοί καθιστούν δύσκολο καθήκον την ανάπτυξη των σχετικών αλγορίθμων διαχείρισης των δομών. Όλες αυτές οι παραλλαγές αποτελούν περισσότερο θεωρητικές αναζητήσεις παρά οργανώσεις με πρακτική εφαρμογή σε ΣΔΒΔ.
73
Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης
Προθεματικά Β+-δένδρα Τα Προθεματικά Β+-δένδρα έχουν παρόμοια δομή με τα Β+-δένδρα και είναι μία άλλη παραλλαγή για υλοποίηση κυρίως σε δευτερεύουσα μνήμη. Η βασική ιδέα είναι ότι αν το κλειδί είναι συμβολοσειρά, τότε είναι προτιμότερο στους εσωτερικούς κόμβους του καταλόγου να αποθηκεύεται μόνο εκείνο το πρόθεμα του κλειδιού, το οποίο είναι απαραίτητο για τη διαδικασία αναζήτησης. Έτσι ο κατάλογος περιέχει τους λεγόμενους διαχωριστές (separators) που είναι μεταβλητού μήκους. Το μήκος των διαχωριστών ποικίλει από 1 byte μέχρι ένα πλήρες κλειδί και εξαρτάται από τις τιμές των γειτονικών κλειδιών των εγγραφών.
74
Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης
Προθεματικά Β+-δένδρα Παράδειγμα διαχωριστή. Πλήρης κόμβος με 6 κλειδιά και 5 διαχωριστές μεταξύ των κλειδιών.
75
Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης
Προθεματικά Β+-δένδρα Στον κόμβο του παραδείγματος εισάγεται το κλειδί JUNG, οπότε ο κόμβος υπερχειλίζει και διασπάται. Αν τα κλειδιά αναδιανεμηθούν εξίσου, τότε το κλειδί JOHNSON πρέπει να αποθηκευθεί σε ένα νέο δεξιό κόμβο και ο διαχωριστής JOHNSON να ανέλθει κατά ένα επίπεδο. Αν τα κλειδιά δεν διανεμηθούν εξίσου στους δύο κόμβους, αλλά στον αριστερό κόμβο αποθηκευθούν τα GREGG, HILDRETH και στο δεξιό τα JOHNS, JOHNSON κλπ., τότε ο διαχωριστής θα είναι το J.
76
Κεφάλαιο 12: Δενδρικές Μέθοδοι Προσπέλασης
Προθεματικά Β+-δένδρα H αναδιανομή των κλειδιών σε περίπτωση διάσπασης είναι θέμα βελτιστοποίησης. Ως διάστημα διάσπασης των τερματικών κόμβων, σex, και των εσωτερικών κόμβων, σin, ορίζεται o αριθμός των bytes ή των κλειδιών προς οποιαδήποτε πλευρά του μέσου του κόμβου που θα μπορούσε να θεωρηθεί ως σημείο διάσπασης. Το σημείο διάσπασης επιλέγεται εντός του διαστήματος διάσπασης, ώστε να ελαχιστοποιηθεί ο σχετικός διαχωριστής.
Παρόμοιες παρουσιάσεις
© 2024 SlidePlayer.gr Inc.
All rights reserved.