Δομή B+ δέντρου Αναζήτηση Εισαγωγή Applet Τάξη Links Δομές Δεδομένων

Εισαγωγή στοιχείου Κ σε B+ δέντρο.

Υποθέτουμε πως το στοιχείο Κ είναι η τιμή κάποιου πεδίου κλειδιού μια νεοεισερχόμενης εγγραφής σε κάποια βάση δεδομένων. Θα παρακολουθήσουμε τον τρόπο με τον οποίο το στοιχείο Κ θα εισαχθεί στο B+ δέντρο. Φυσικά στο δέντρο εκτός απο το Κ θα εισαχθεί και ένας δείκτης προς το μπλοκ που βρίσκεται η εγγραφή.

Βήμα 1ο.

Αρχικά θα πρέπει να βρούμε το κατάλληλο κόμβο-φύλλο στο οποίο θα εισαχθεί το στοιχείο Κ. Η διαδικασία εύρεσης αυτού  του φύλλου είναι ίδια με την αναζήτηση στοιχείου Κ που αναλύσαμε αλλού.
Αν το φύλλο περιέχει ήδη το στοιχείο K η διαδικασία τερματίζεται και δεν γίνεται καμία αλλαγή στο B+ δέντρο. Το γεγονός αυτό επίσης σημαίνει πως η νεοεισερχόμενη εγγραφή δεν μπορεί να εισαχθεί στη βάση μια που θα παραβιάζει τον περιορισμό κλειδιού
Αν το φύλλο όμως δεν περιέχει το στοιχείο Κ τότε η εισαγωγή μπορεί να γίνει και πηγαίνουμε στο 2ο βήμα.

Βήμα 2ο.

Έχουμε βρει το φύλλο στο οποίο θα εισαχθεί το στοιχείο Κ. Αν το φύλλο δεν είναι γεμάτο θα εισάγουμε το στοιχείο στη σωστή θέση μέσα στον κόμβο-φύλλο.Σε διαφορετική περίπτωση θα έχουμε υπερχείλιση του κόμβου και διάσπασή του. Ο κόμβος αυτός διασπάται σε δύο κόμβους στο ίδιο επίπεδο και η μεσαία καταχώρηση μετακινείται στον κόμβο γονέα χωρίς να επαναλαμβάνεται μαζί με δύο δείκτες προς τους κόμβους που προήλθαν από τη διάσπαση. Αν ο κόμβος γονέας είναι και αυτός γεμάτος διασπάται επίσης. Η διάσπαση μπορεί να διαδοθεί μέχρι και τον κόμβο της ρίζα, δημιουργώντας ένα νέο επίπεδο κάθε φορά που η ρίζα διασπάται.

Μπορείτε να δείτε ένα παράδειγμα διάσπασης κόμβου σε B+ δέντρο τάξης p=5. Στο παράδειγμα αυτό  θα γίνει εισαγωγή της τιμής Κ=3 σε ένα γεμάτο κόμβο-φύλλο. Το φύλλο θα διασπαστεί στο επίπεδο των φύλλων ενώ η μεσαία καταχώρηση θα προκαλέσει εκ νέου διάσπαση της ρίζας και δημιουργία νέου επιπέδου.

Παράδειγμα εισαγωγής σε ένα B+ δέντρο τάξης p=3.

Στο Applet που ακολουθεί βλέπουμε δυναμικά πως εξελίσσεται ένα B+ δέντρο τάξης p=3 καθώς του εισάγουμε καινούργια στοιχεία. Τα στοιχεία για λόγους απλότητας επιλέχτηκαν να είναι ακέραιοι μεταξύ του 0 και 999.
Κατά πρώτον παρατηρούμε πως η ρίζα είναι ο μόνος κόμβος στο δέντρο οπότε είναι και κόμβος φύλλο. Καθώς εισάγουμε καινούργιες τιμές ο αρχικός κόμβος διασπάται δημιουργούνται νέοι κόμβοι και νέα επίπεδα. Η διάσπαση προκαλείται μόλις προσπαθήσουμε να εισάγουμε 3ο στοιχείο σε κάποιον γεμάτο κόμβο. Το πρώτο στοιχείο (το μικρότερο) παραμένει στον αρχικό κόμβο ενώ τα άλλα δύο μεταφέρονται στον καινούργιο κόμβο. Η δεύτερη (μεσαία τιμή) επαναλαμβάνεται στον γονέα. Αν ο γονέας είναι και αυτός γεμάτος(έχει δύο στοιχεία) τότε διασπάται και αυτός και μπορεί να δημιουργηθούν νέα επίπεδα.

Οδηγίες χρήσης


APPLET