Βασική διαφορά: Σε υπολογιστές, τα δυαδικά δέντρα είναι δομές δεδομένων δέντρων που αποθηκεύουν τα δεδομένα και επιτρέπουν στον χρήστη να έχει πρόσβαση, να ψάξει, να εισαγάγει και να διαγράψει τα δεδομένα σε αλγόριθμο. Η διαφορά μεταξύ ενός δένδρου Β και Β + είναι ότι σε ένα δέντρο Β, τα κλειδιά και τα δεδομένα μπορούν να αποθηκευτούν τόσο στους εσωτερικούς κόμβους όσο και στους κόμβους των φύλλων, ενώ σε ένα δέντρο B +, τα δεδομένα και τα κλειδιά μπορούν να αποθηκευτούν μόνο στους κόμβους των φύλλων .
Τα δυαδικά δέντρα είναι ισορροπημένα δέντρα αναζήτησης που έχουν σχεδιαστεί για να λειτουργούν καλά σε συσκευές δευτερεύουσας αποθήκευσης άμεσης πρόσβασης όπως είναι οι μαγνητικοί δίσκοι. Ο Rudolf Bayer και ο Ed McCreight εφευρέθηκαν η έννοια ενός B-δέντρου.
Ένα B-δέντρο είναι ένα γενικευμένο δυαδικό δέντρο αναζήτησης, στο οποίο κάθε κόμβος μπορεί να έχει περισσότερα από δύο παιδιά. Κάθε εσωτερικός κόμβος σε ένα δέντρο B περιέχει έναν αριθμό κλειδιών. Αυτά τα κλειδιά χωρίζουν τις τιμές και σχηματίζουν επιπλέον τα υπο-δέντρα. Οι εσωτερικοί κόμβοι σε ένα δέντρο B μπορούν να έχουν μεταβλητούς αριθμούς παιδικών κόμβων, οι οποίοι είναι διατεταγμένοι μέσα σε ένα προκαθορισμένο εύρος. Τη στιγμή που τα δεδομένα εισάγονται ή αφαιρούνται από οποιονδήποτε αντίστοιχο κόμβο, υπάρχει μια αλλαγή στον αριθμό των παιδικών κόμβων. Προκειμένου να διατηρηθεί η προκαθορισμένη περιοχή, οι εσωτερικοί κόμβοι μπορούν να ενωθούν ή να χωριστούν. Σε ένα δέντρο Β, επιτρέπεται μια σειρά παιδικών κόμβων, λόγω των οποίων πρέπει να διατηρηθεί η προκαθορισμένη περιοχή.
Τα B-δένδρα δεν χρειάζεται να επανισορροπηθούν συχνά σε αντίθεση με άλλα δέντρα αναζήτησης με εξισορρόπηση. Οι κόμβοι σε αυτά τα δέντρα δεν είναι πάντα γεμάτοι. Ως εκ τούτου, οι χώροι καταναλώνονται χωρίς λόγο σε αυτά τα δέντρα που οδηγούν σε σπατάλη χώρου. Μόνο τα κατώτερα και τα ανώτερα όρια του αριθμού παιδικών κόμβων καθορίζονται συνήθως για μια συγκεκριμένη υλοποίηση. Για παράδειγμα, σε ένα 2-3 B-δέντρο (συχνά αναφέρεται απλώς ως 2-3 δέντρο), κάθε εσωτερικός κόμβος μπορεί να έχει μόνο 2 ή 3 παιδικούς κόμβους.
Επιπλέον, το B-tree είναι βελτιστοποιημένο για συστήματα που διαβάζουν και γράφουν μεγάλα τμήματα δεδομένων. Χρησιμοποιείται συνήθως σε βάσεις δεδομένων και συστήματα αρχείων. Στο δέντρο Β, όλοι οι κόμβοι διατηρούνται στα ίδια βάθη εξισορρόπησης από τους κόμβους ρίζας. Αυτά τα βάθη αυξάνονται αργά καθώς αυξάνεται ο αριθμός των στοιχείων. αυτό έχει ως αποτέλεσμα όλοι οι κόμβοι φύλλων να είναι ένας ακόμη κόμβος πιο μακριά από τη ρίζα. Επιπλέον, τα Β-δέντρα είναι πιο πλεονεκτικά σε σύγκριση με άλλες υλοποιήσεις σε σχέση με το χρόνο που απαιτείται για την πρόσβαση στα δεδομένα.
Ένα δέντρο B + είναι ένα δέντρο συστοιχιών n-array με έναν κόμβο, ο οποίος αποτελείται από μεγάλο αριθμό παιδιών ανά κόμβο. Η ρίζα μπορεί να είναι φύλλο ή κόμβος που περιέχει περισσότερα από δύο παιδιά. Ένα δέντρο B + αποτελείται από μια ρίζα, εσωτερικούς κόμβους και φύλλα.
Ένα δέντρο B + είναι το ίδιο με ένα δέντρο Β. η μόνη διαφορά είναι ότι στο δέντρο Β + υπάρχει ένα επιπρόσθετο επίπεδο που προστίθεται στο κάτω μέρος με συνδεδεμένα φύλλα. Επίσης, σε αντίθεση με το δέντρο B, κάθε κόμβος σε ένα δέντρο B + περιέχει μόνο κλειδιά και όχι ζεύγη κλειδιών-τιμών.
Επιπλέον, ο παράγοντας εξισορρόπησης ή η σειρά ενός B + δέντρου μετρά την χωρητικότητα των εσωτερικών κόμβων σε ένα δέντρο, δηλαδή τον αριθμό κόμβων που μπορούν να έχουν. Ο πραγματικός αριθμός παιδιών για έναν κόμβο είναι περιορισμένος για εσωτερικούς κόμβους. Η ρίζα είναι ωστόσο μια εξαίρεση δεδομένου ότι επιτρέπεται να έχουν περισσότερους από δύο αριθμό παιδιών. Για παράδειγμα, εάν η σειρά ενός δέντρου B + είναι 7, κάθε εσωτερικός κόμβος (εκτός από τη ρίζα) μπορεί να έχει από 4 έως 7 παιδιά. ενώ η ρίζα μπορεί να έχει μεταξύ 2 και 7. Η πρωτεύουσα τιμή του δέντρου Β + είναι η αποθήκευση δεδομένων για αποδοτική ανάκτηση σε ένα πλαίσιο αποθήκευσης προσανατολισμένο σε μπλοκ και ιδιαίτερα σε συστήματα αρχείων.
Η κύρια τιμή του δέντρου B + είναι η αποθήκευση και η διατήρηση των δεδομένων, έτσι ώστε να μην χαθούν τα δεδομένα. Αυτή η προσέγγιση εφαρμόζεται ιδιαίτερα σε περιβάλλον αποθήκευσης προσανατολισμένη σε μπλοκ και σε ορισμένα συγκεκριμένα συστήματα αρχείων. Τα φύλλα, τα οποία είναι τα πιο κάτω δείγματα, του δέντρου Β + συχνά συνδέονται μεταξύ τους σε μια συνδεδεμένη λίστα. επομένως αυτό καθιστά τα ερωτήματα της κλίμακας ή μια διατεταγμένη επανάληψη μέσω των μπλοκ απλούστερη και πιο αποτελεσματική. Επιπλέον, ο συντελεστής χώρου δεν σπαταλάται στα δέντρα B +. Το δέντρο B + παρέχει μια αποδοτική δομή δεδομένων δομής δεδομένων, η οποία τους καθιστά απλούς στην πρόσβαση και την αποθήκευση. Τα δέντρα B + είναι ιδιαίτερα χρήσιμα ως δείκτες συστήματος βάσης δεδομένων, όπου τα δεδομένα συνήθως βρίσκονται σε δίσκο.
Σύγκριση μεταξύ δέντρου Β και δέντρου Β +
B Tree | B + δέντρο | |
Σύντομες περιγραφές ιστοσελίδων | Το δέντρο ΑΒ είναι μια οργανωτική δομή για την αποθήκευση και την ανάκτηση πληροφοριών με τη μορφή ενός δέντρου στο οποίο όλοι οι τερματικοί κόμβοι βρίσκονται στην ίδια απόσταση από τη βάση και όλοι οι μη τερματικοί κόμβοι έχουν μεταξύ n και 2 n δευτερεύοντα δένδρα ή δείκτες (όπου το η είναι ένας ακέραιος αριθμός). | Το δέντρο B + είναι ένα δέντρο συστοιχιών με ένα μεταβλητό αλλά συχνά μεγάλο αριθμό παιδιών ανά κόμβο. Ένα δέντρο B + αποτελείται από μια ρίζα, εσωτερικούς κόμβους και φύλλα. Η ρίζα μπορεί να είναι είτε ένα φύλλο είτε ένας κόμβος με δύο ή περισσότερα παιδιά. |
Γνωστός και ως | Ισορροπημένο δέντρο. | B συν δέντρο. |
Χώρος | Επί) | Επί) |
Ψάξιμο | O (log n) | Ο (log bn) |
Εισάγετε | O (log n) | Ο (log bn) |
Διαγράφω | O (log n) | Ο (log bn) |
Αποθήκευση | Σε ένα δέντρο B, τα κλειδιά αναζήτησης και τα δεδομένα που είναι αποθηκευμένα σε κόμβους εσωτερικού ή φύλλου. | Σε ένα δέντρο B +, δεδομένα αποθηκευμένα μόνο σε κόμβους φύλλων. |
Δεδομένα | Οι κόμβοι φύλλων των δεικτών τριών καταστημάτων σε αρχεία αντί για πραγματικά αρχεία. | Οι κόμβοι φύλλων του δέντρου αποθηκεύουν το πραγματικό αρχείο παρά τους δείκτες σε αρχεία. |
Χώρος | Αυτά τα δέντρα χάνουν χώρο | Τα δέντρα δεν χάνουν χώρο. |
Λειτουργία κόμβων φύλλων | Στο δέντρο B, ο κόμβος φύλλων δεν μπορεί να αποθηκευτεί χρησιμοποιώντας τη συνδεδεμένη λίστα. | Στο δέντρο B +, τα δεδομένα των κόμβων των φύλλων παραγγέλλονται σε μια διαδοχική συνδεδεμένη λίστα. |
Ερευνητικός | Εδώ, η αναζήτηση γίνεται δύσκολη στο B-tree καθώς τα δεδομένα δεν μπορούν να βρεθούν στον κόμβο των φύλλων. | Εδώ, η αναζήτηση οποιωνδήποτε δεδομένων σε ένα δέντρο B + είναι πολύ εύκολη επειδή όλα τα δεδομένα βρίσκονται στους κόμβους των φύλλων. |
Αναζήτηση προσβασιμότητας | Εδώ στο δέντρο B η αναζήτηση δεν είναι τόσο εύκολη σε σύγκριση με ένα δέντρο B +. | Εδώ στο δέντρο B + η αναζήτηση γίνεται εύκολη. |
Πλεονάζον κλειδί | Δεν αποθηκεύουν πλεονάζον κλειδί αναζήτησης. | Αποθηκεύουν το πλεονάζον κλειδί αναζήτησης. |
Εφαρμογές | Πρόκειται για μια παλαιότερη έκδοση και δεν είναι τόσο συμφέρουσα σε σύγκριση με τα δέντρα B +. | Πολλοί εκτελεστές συστημάτων βάσης δεδομένων προτιμούν τη δομική απλότητα ενός δέντρου B +. |