Δυναμικά Πολυεπίπεδα Ευρετήρια (Β-δένδρα) Μ.Χατζόπουλος 1



Σχετικά έγγραφα
Copyright 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση, Δίαβλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 14-1

Οργάνωση Βάσεων Βιοϊατρικών Δεδομένων Εξόρυξη Γνώσης Βιοϊατρικών Δεδομένων. Σεμινάριο 6: Δομές ευρετηρίων για αρχεία

Κεφάλαιο 14. οµές Ευρετηρίων για Αρχεία. ιαφάνεια 14-1

Κεφάλαιο 14. Δομές Ευρετηρίων για Αρχεία. Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Ελληνική Έκδοση,

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση, Δίαβλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 14-1

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Ευρετήρια. Ευρετήρια. Βάσεις Δεδομένων : Ευρετήρια 1

Τα δεδοµένα συνήθως αποθηκεύονται σε αρχεία στο δίσκο Για να επεξεργαστούµε τα δεδοµένα θα πρέπει αυτά να βρίσκονται στη

Ευρετήρια. Ευρετήρια. Βάσεις Δεδομένων : Ευρετήρια 1

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Οι πράξεις της συνένωσης. Μ.Χατζόπουλος 1

Κεφ.11: Ευρετήρια και Κατακερματισμός

Δένδρα Αναζήτησης Πολλαπλής Διακλάδωσης

Υλοποίηση των Σχεσιακών Τελεστών. 6/16/2009 Μ.Χατζόπουλος 1

Τα δεδομένα (περιεχόμενο) μιας βάσης δεδομένων αποθηκεύεται στο δίσκο

Κατακερματισμός. 4/3/2009 Μ.Χατζόπουλος 1

Οργάνωση αρχείων: πως είναι τοποθετηµένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο

Εξωτερική Αναζήτηση. Ιεραρχία Μνήμης Υπολογιστή. Εξωτερική Μνήμη. Εσωτερική Μνήμη. Κρυφή Μνήμη (Cache) Καταχωρητές (Registers) μεγαλύτερη ταχύτητα

Φροντιστήριο Αποθήκευση σε δίσκο, βασικές οργανώσεις αρχείων κατακερματισμός και δομές ευρετηρίων για αρχεία

Ευρετήρια. Πρωτεύον ευρετήριο (primary index): ορισμένο στο κλειδί διάταξης του αρχείου. Ευρετήρια. Ευρετήρια. Ευρετήρια

Δεντρικά Ευρετήρια. Δέντρα Αναζήτησης

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΛΥΣΗ ΣΤΗΝ ΕΥΤΕΡΗ ΑΣΚΗΣΗ

ΛΥΣΗ ΤΗΣ ΔΕΥΤΕΡΗΣ ΑΣΚΗΣΗΣ Όλγα Γκουντούνα

Ευρετήρια. Ευρετήρια. Βάσεις εδοµένων :ευρετήρια 1

Ευρετήρια. Πρωτεύον ευρετήριο (primary index): ορισμένο στο κλειδί διάταξης του αρχείου. Ευρετήρια. Ευρετήρια. Ευρετήρια

Δομές Δεδομένων. Ενότητα 13: B-Δέντρα/AVL-Δέντρα. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων

εντρικά Ευρετήρια έντρα Αναζήτησης

Διάλεξη 18: B-Δένδρα

Ευρετήρια. Βάσεις Δεδομένων : Ευρετήρα 1. Πρωτεύον ευρετήριο (primary index): ορισμένο στο κλειδί διάταξης του αρχείου. Ευρετήρια.

Δυναμικός Κατακερματισμός

Βάσεις Δεδομένων. Αποθήκευση σε δίσκο, βασικές οργανώσεις αρχείων, κατακερματισμός και δομές ευρετηρίων για αρχεία. Φροντιστήριο 7 o

Ευρετήρια. Το ευρετήριο αρχείου είναι ένα διατεταγµένο αρχείο µε σταθερού µήκους εγγραφές

Διάλεξη 14: Δέντρα IV B Δένδρα. Διδάσκων: Παναγιώτης Ανδρέου

Κατακερµατισµός. Οργάνωση Αρχείων (σύνοψη) Οργάνωση αρχείων: πως είναι τοποθετημένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο

Ευρετήρια. Το ευρετήριο αρχείου είναι ένα διατεταγµένο αρχείο µε σταθερού µήκους εγγραφές

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Βάσεις εδοµένων Ευαγγελία Πιτουρά 2

Επεξεργασία Ερωτήσεων

Επεξεργασία Ερωτήσεων

Επεξεργασία Ερωτήσεων

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

Εξωτερική Ταξινόμηση. Μ.Χατζόπουλος 1

Εισαγωγή στην. Εισαγωγή Σ Β. Αρχεία ευρετηρίου Κατάλογος. συστήματος. Αρχεία δεδομένων

Διάλεξη 14: Δέντρα IV - B-Δένδρα

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

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

Ενότητα 6: Κατακερματισμός Ασκήσεις και Λύσεις

Διάλεξη 24: B-Δένδρα. Διδάσκων: Παναγιώτης Ανδρέου

Μπαλτάς Αλέξανδρος 21 Απριλίου 2015

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

Δυναμική Διατήρηση Γραμμικής Διάταξης

Εξωτερική Ταξινόμηση. Μ.Χατζόπουλος 1

Πληροφορική & Τηλεπικοινωνίες. K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Εαρινό Εξάμηνο

Επεξεργασία Ερωτήσεων

Το εσωτερικό ενός Σ Β

Πληροφορική 2. Δομές δεδομένων και αρχείων

13/5/2015 ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ. Δομές Δεδομένων. Ουρές Προτεραιότητας

Διαχρονικές δομές δεδομένων

Ευρετήρια. Βάσεις Δεδομένων : Ευρετήρια 1. Πρωτεύον ευρετήριο (primary index): ορισμένο στο κλειδί διάταξης του αρχείου. Ευρετήρια.

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

Ενότητες 3 & 4: Δένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις

Εισαγωγή. Γενική Εικόνα του Μαθήµατος. Το εσωτερικό ενός Σ Β. Εισαγωγή. Εισαγωγή Σ Β Σ Β. Αρχεία ευρετηρίου Κατάλογος συστήµατος Αρχεία δεδοµένων

Δομές Δεδομένων (Εργ.) Ακ. Έτος Διδάσκων: Ευάγγελος Σπύρου. Εργαστήριο 10 Δυαδικά Δένδρα Αναζήτησης

ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ

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

Διδάσκων: Κωνσταντίνος Κώστα

ΗΥ360 Αρχεία και Βάσεις εδοµένων

Κατακερματισμός (Hashing)

Οι δυναμικές δομές δεδομένων στην ΑΕΠΠ

ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ. Επίπεδα Αφαίρεσης Σ Β. Αποθήκευση Εγγραφών - Ευρετήρια. ρ. Βαγγελιώ Καβακλή ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ, Επίπεδο Όψεων.

Οργάνωση Βάσεων Βιοϊατρικών Δεδομένων Εξόρυξη Γνώσης Βιοϊατρικών Δεδομένων. Σεμινάριο 6: Δομές ευρετηρίων για αρχεία

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Σύνοψη Προηγούμενου. Πίνακες (Arrays) Πίνακες (Arrays): Βασικές Λειτουργίες. Πίνακες (Arrays) Ορέστης Τελέλης

Ταξινόμηση. Σαλτογιάννη Αθανασία

Εισαγωγή ενός νέου στοιχείου. Επιλογή i-οστoύ στοιχείου : Εύρεση στοιχείου με το i-οστό μικρότερο κλειδί

Insert (P) : Προσθέτει ένα νέο πρότυπο P στο λεξικό D. Delete (P) : Διαγράφει το πρότυπο P από το λεξικό D

Διάλεξη 22: Δυαδικά Δέντρα. Διδάσκων: Παναγιώτης Ανδρέου

Advanced Data Indexing

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΑΣΚΗΣΗ ΔΕΥΤΕΡΗ

ΑΣΚΗΣΗ 1 Για τις ερωτήσεις 1-4 θεωρήσατε τον ακόλουθο γράφο. Ποιές από τις παρακάτω προτάσεις αληθεύουν και ποιές όχι;

Ισορροπημένα Δένδρα. για κάθε λειτουργία; Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX. Συστήματα Αρχείων. Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη

ΑΛΓΟΡΙΘΜΟΙ ΜΕ C. ΝΙΚΟΛΑΟΣ ΣΑΜΑΡΑΣ Αναπληρωτής Καθηγητής. CMOR Lab. Computational Methodologies and Operations Research

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι:

Οργάνωση Βάσεων Βιοϊατρικών Δεδομένων Εξόρυξη Γνώσης Βιοϊατρικών Δεδομένων. Σεμινάριο 7: Αλγόριθμοι για επεξεργασία ερωτήσεων και βελτιστοποίηση

Kεφάλαιο 11 Λίστες και Ανάλυση Δεδομένων Kεφάλαιο 12 Εργαλεία ανάλυσης πιθανοτήτων Kεφάλαιο 13 Ανάλυση δεδομένων...

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Δέντρα Αναζήτησης. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

A ΕΠΑ.Λ ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 5 η ΕΝΟΤΗΤΑ: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Εκπαιδευτικοί: ΓΑΛΑΝΟΣ ΓΕΩΡΓΙΟΣ ΜΠΟΥΣΟΥΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ

Επεξεργασία Ερωτήσεων

Αποθήκευση και Οργάνωση αρχείων. Βάσεις Δεδομένων Μάθημα 2ο Διδάσκων: Μαρία Χαλκίδη

Κεφάλαιο 5. Δημιουργία φορμών για τη βάση δεδομένων DVDclub

Διάλεξη 17: Δυαδικά Δέντρα. Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

ΗΥ240: οµές εδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος Παναγιώτα Φατούρου. Προγραµµατιστική Εργασία 3 ο Μέρος

Transcript:

Δυναμικά Πολυεπίπεδα Ευρετήρια (Β-δένδρα) Μ.Χατζόπουλος 1

Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ.Χατζόπουλος 2

Δένδρο αναζήτησης είναι ένας ειδικός τύπος δένδρου που χρησιμοποιείται για να καθοδηγήσει την αναζήτηση μιας εγγραφής όταν δίνεται η τιμή ενός πεδίου της. Μ.Χατζόπουλος 3

K 1 <K 2 < <K q-1 P 1 K 1 K i-1 P i K i K q-1 P q X X X X<K 1 K i-1 <X<K i K q-1 <X Μ.Χατζόπουλος 4

50 70 20 40 55 60 90 8 10 25 35 45 75 85 95 100 Έστω ότι ο κόμβος χωράει 2 κλειδιά Μ.Χατζόπουλος 5

Εισαγωγή 48 50 70 20 40 55 60 90 8 10 25 35 45 48 75 85 95 100 Μ.Χατζόπουλος 6

Εισαγωγή 74 50 70 20 40 55 60 90 8 10 25 35 45 48 75 85 95 100 74 Μ.Χατζόπουλος 7

Όμως έτσι μπορεί να μην έχουμε καλή απόδοση ενώ θα μπορούσαμε να έχουμε 50 70 20 40 55 60 75 90 8 10 25 35 45 48 74 85 95 100 Μ.Χατζόπουλος 8

Αν το δένδρο είναι τάξεως m σε κάθε κόμβο μπορεί να περιέχει το μέγιστο m-1 κλειδιά. Επομένως ένα δένδρο αναζήτησης ύψους h περιέχει το μέγιστο (m-1)+m(m-1)+m 2 (m-1)+ m h-1 (m-1)=(m-1)(1+m+m 2 + +m h-1 ) =m h -1 Επομένως για N κλειδιά το καλλίτερο δένδρο που μπορεί να δημιουργηθεί είναι N= m h -1 δηλαδή το πιο κοντό θα έχει ύψος h=log m (N+1) Μ.Χατζόπουλος 9

Όμως επειδή η χρήση είναι δυναμική δεν είναι πρακτικό με κάθε εισαγωγή και διαγραφή να γίνεται αναδιοργάνωση του δένδρου ώστε να έχω την καλλίτερη δυνατή απόδοση Θέλουμε να μπορεί να γίνεται εύκολα η εισαγωγή αλλά ταυτόχρονα το δένδρο που δημιουργείται να είναι όσο το δυνατόν ισοζυγισμένο με την έννοια οι κόμβοι φύλα να είναι στο ίδιο επίπεδο. Το να γέρνει προς μια πλευρά το δένδρο οδηγεί σε απόδοση που πλησιάζει αυτήν του ταξινομημένου αρχείου. Επίσης θέλουμε να γίνεται η καλλίτερη δυνατή χρήση του χώρου. Οι διαγραφές δημιουργούν κενά στους κόμβους που μπορεί να αφήσουν το δένδρο με σχεδόν κενούς κόμβους. Το Β-δένδρο (και οι παραλλαγές του) αντιμετωπίζει με επιτυχία αυτά τα δύο προβλήματα Μ.Χατζόπουλος 10

Β-δένδρο τάξεως p 1. Κάθε εσωτερικός κόμβος είναι της μορφής <P 1,<k 1,Pr 1 >,P 2,<K 2,Pr 2 >,,<k q-1,pr q-1 >,P q > q p. Τα P i είναι δείκτες δένδρου ενώ τα Pr i δείκτες δεδομένων. 2. Σε κάθε κόμβο ισχύει: K 1 <K 2 < K q-1. 3. Για όλα τα κλειδιά X στο υποδένδρο που δείχνει το Pi ισχύει Κ i-1 <X<K i 1<I<q, X<K i για i=1 και K i-1 <X για i=q 4. Κάθε κόμβος έχει το πολύ p δείκτες δένδρου. 5. Κάθε κόμβος εκτός της ρίζας και των φύλων έχει τουλάχιστον p/2 δείκτες δένδρου. Ο κόμβος της ρίζας έχει τουλάχιστον δύο δείκτες δένδρου εκτός αν είναι ο μοναδικός κόμβος του δένδρου. 6. Ένας κόμβος με q δείκτες δένδρου περιέχει q-1 κλειδιά. 7. Όλοι οι κόμβοι φύλα είναι στο ίδιο επίπεδο. Οι κόμβοι φύλα έχουν την ίδια δομή με τους εσωτερικούς κόμβους μόνο που οι δείκτες δένδρου έχουν τιμή null. Μ.Χατζόπουλος 11

Κόμβος του Β-δένδρου P 1 K 1 Pr 1 P 2 K i-1 Pr i-1 P i K i Pr i K q-1 Pr q-1 P q X Δείκτης δεδομένων Δείκτης δένδρου Δείκτης δεδομένων X δείκτης δεδομένων X K q-1 <X X<K 1 K i-1 <X<K i Μ.Χατζόπουλος 12

50 30 80 10 20 40 60 70 90 100 Το δένδρο τάξεως 3 που σημαίνει ότι κάθε κόμβος έχει 1 ή 2 κλειδιά και 2 ή 3 παιδιά Μ.Χατζόπουλος 13

50 30 80 10 20 40 45 48 60 70 90 100 Αυτό όμως δεν είναι Μ.Χατζόπουλος 14

50 30 80 90 130 10 20 40 60 70 85 100 95 100 140 150 Ούτε αυτό είναι Μ.Χατζόπουλος 15

50 30 48 80 90 10 20 40 60 70 85 100 Ούτε αυτό είναι Β Μ.Χατζόπουλος 16

Εισαγωγή του κλειδιού Χ στο Β-δένδρο Σαρώνουμε το Β-δένδρο μέχρι που ή θα βρούμε την τιμή Χ ήθα φθάσουμε σε ένα φύλο που θα έπρεπε να βρίσκεται η τιμή Χ. Αν ο κόμβος αυτός έχει έχει λιγότερα από p-1 κλειδιά τότε προσθέτουμε το κλειδί στον κόμβο αυτό και τελείωσε η εισαγωγή. Αν ο κόμβος έχει ήδη p κλειδιά τότε δεν μπορεί να προστεθεί στον κόμβο αυτό. Στην περίπτωση αυτή χωρίζουμε τα p κλειδιά (K 1 <K 2 <K 3 < <K q )σε δύο κόμβους όπου ο πρώτος έχει τα πρώτα q/2 ο δεύτερος τα τελευταία q/2 και το μεσαίο στοιχείο ανεβαίνει στον κόμβο γονέα σαν διαχωριστικό. Αν ο κόμβος γονέας έχει χώρο τότε τελειώσαμε. Αν δεν έχει τότε χωρίζεται με τον ίδιο τρόπο και αυτός και προχωράμε προς τη ρίζα. Στην χειρότερη περίπτωση θα διασπασθεί και η ρίζα και θα ανέβουμε ένα επίπεδο (θα ψηλώσει το δένδρο). Μ.Χατζόπουλος 17

50 30 80 10 20 40 60 70 90 100 Το δένδρο τάξεως 3 που σημαίνει ότι κάθε κόμβος έχει 1 ή 2 κλειδιά και 2 ή 3 παιδιά Μ.Χατζόπουλος 18

Εισαγωγή του 75 50 30 70 80 10 20 40 60 75 90 100 Μ.Χατζόπουλος 19

Εισαγωγή του 55 50 30 70 80 10 20 40 55 60 75 90 100 Μ.Χατζόπουλος 20

Εισαγωγή του 57 50 70 30 57 80 10 20 40 55 60 75 90 100 70 55 57 60 57 57 70 80 57 80 55 60 Μ.Χατζόπουλος 21

Εισαγωγή του 95 50 70 30 57 80 95 10 20 40 55 60 75 90 100 Μ.Χατζόπουλος 22

Εισαγωγή του 85 50 70 30 57 80 95 10 20 40 55 60 75 85 90 100 Μ.Χατζόπουλος 23

Εισαγωγή του 87 70 50 87 30 57 80 95 10 20 40 55 60 75 85 90 100 85 87 90 87 80 87 95 85 90 87 50 70 87 70 80 95 50 87 Μ.Χατζόπουλος 24

Διαγραφή ενός κλειδιού από ένα τερματικό κόμβο Εντοπίζεται ο κόμβος. Αν με την διαγραφή το πλήθος των κλειδιών του κόμβου παραμένει επιτρεπτό τότε έχουμε τελειώσει. Αν ο κόμβος πέφτει κάτω από το επιτρεπόμενο τότε ανατρέχουμε στους κόμβους άμεσα αδέλφια ώστε να βρεθεί κόμβος να δανείσει ένα στοιχείο και μεταφέρουμε το στοιχείο από τον αδελφό στο γονέα και από τον γονέα στον κόμβο που έχει πρόβλημα και τελειώνουμε. Αν δεν μπορεί να δανείσει και ο αδελφός τότε οι δύο κόμβοι είναι οριακοί και μπορούμε να τους συμπτύξουμε σε έναν. Στην περίπτωση αυτή αν ο γονέας δεν έχει λιγότερα από τα επιτρεπόμενα στοιχεία τελειώσαμε. Αν έχει λιγότερα τότε επαναλαμβάνουμε την διαδικασία προς τη ρίζα. Στην περίπτωση αυτή μπορεί να φτάσουμε μέχρι τη ρίζα και μπορεί να κοντύνει το δένδρο κατά ένα επίπεδο. Μ.Χατζόπουλος 25

Έστω το Β-δένδρο τάξεως 5 (δηλαδή από 2 μέχρι 4 κλειδιά σε κάθε κόμβο εκτός της ρίζας) 90 30 60 120 160 190 220 10 20 40 50 70 75 80 100 110 130 140 150 170 180 200 210 230 240 250 Μ.Χατζόπουλος 26

Διαγραφή του 250 90 30 60 120 160 190 220 10 20 40 50 70 75 80 100 110 130 140 150 170 180 200 210 230 240 Μ.Χατζόπουλος 27

Διαγραφή του 50 90 30 70 120 160 190 220 10 20 40 60 75 80 100 110 130 140 150 170 180 200 210 230 240 Έχει να δανείσει ο διπλανός επομένως πάει το 60 στη θέση του 50 και το 70 αναβαίνει στον γονέα. Μ.Χατζόπουλος 28

Διαγραφή του 20 120 70 90 160 190 220 10 30 40 60 75 80 100 110 130 140 150 170 180 200 210 230 240 70 Τώρα όμως αυτός έχει λιγότερα και δανείζεται από τον αδελφό του 10 30 40 60 75 80 Μ.Χατζόπουλος 29

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

Διαγραφή του 160 120 70 90 150 190 220 10 30 40 60 75 80 100 110 130 140 170 180 200 210 230 240 Στην περίπτωση αυτή πάει στη θέση του το αμέσως προηγούμενο δηλαδή το 150. Μ.Χατζόπουλος 31

Διαγραφή του 90 120 60 80 150 190 220 10 30 40 70 75 100 110 130 140 170 180 200 210 230 240 Στην περίπτωση αυτή πάει στη θέση του το αμέσως προηγούμενο δηλαδή το 80 αλλά ο κόμβος που είχε το 80 θα πέσει κάτω από το επιτρεπτό και θα ακολουθηθεί ότι και στην περίπτωση διαγραφής από φύλο Μ.Χατζόπουλος 32

Διαγραφή του 120 150 60 110 190 220 10 30 40 70 75 80 100 130 140 170 180 200 210 230 240 Στην περίπτωση αυτή είναι σαν να διαγράφουμε το 110 και ακολουθούμε την διαδικασία διαγραφής από φύλο Μ.Χατζόπουλος 33

Διαγραφή του 190 60 110 150 220 10 30 40 70 75 80 100 130 140 170 180 200 210 230 240 Στην περίπτωση αυτή το 180 αναβαίνει στο 220 γονέα. Ο κόμβος με μόνο το φύλο 170 έχει πρόβλημα. Θα ενωθεί με τον αδελφό 170 180 200 210 230 240 Ο κόμβος με το 220 έχει πρόβλημα και θα συνενωθεί με τον αδελφό και τη ρίζα μειώνοντας το ύψος κατά 1 Μ.Χατζόπουλος 34

Θα προσπαθήσουμε να βρούμε το μέγιστο ύψος ενός Β-δένδρου ύψος ενός δένδρου με τάξεως m για Ν στοιχεία. 1+2( m/2-1)+2 ( m/2-1)( m/2 ) + 2 ( m/2-1)( m/2 ) h-2 =2 ( m/2 ) h-1-1 h-1= log m/2 ((N+1)/2) Επομένως h log m/2 ((N+1)/2) Μ.Χατζόπουλος 35

Όμως έχουμε h log m (N+1) Άρα log m (N+1) h log m/2 ((N+1)/2) Μ.Χατζόπουλος 36

Μήκος κλειδιού V=9 byte Μέγεθος block B=512byte Μήκος δείκτη υποδένδρου P=6byte Μήκος δείκτη εγγραφής Pr=7byte Για την τάξη p του δένδρου πρέπει να ισχύει (p*p)+((p-1)*(pr+v)) B Δηλαδή στην περίπτωση μας (p*6)+((p-1)*(7+9)) 512 22*p 521 p=23 Μ.Χατζόπουλος 37

Με αυτά τα δεδομένα για ένα αρχείο με 1000000 εγγραφές το ύψος του δένδρου είναι 2 ή 3. Ή ακόμη 94143178827 3<=h<=8 Μ.Χατζόπουλος 38

Β+δένδρα Τα Β+δένδρα και οι παραλλαγές τους είναι η κυρίως δομή που χρησιμοποιούν τα εμπορικά συστήματα διαχείρισης βάσεων δεδομένων. Σε αντίθεση με τα Β-δένδρα όπου κάθε τιμή του πεδίου αναζήτησης μια φορά σε κάποιο επίπεδο του δένδρου στα Β+δένδρα οι δείκτες δεδομένων αποθηκεύονται μόνο στα φύλα. Επομένως οι κόμβοι φύλα διαφέρουν από τους εσωτερικούς κόμβους. Μ.Χατζόπουλος 39

Ορισμός Β+δένδρου (Εσωτερικοί κόμβοι) 1. Κάθε εσωτερικός κόμβος είναι της μορφής <P 1,K 1,P 2,K 2,,K q-1,p q > q p και κάθε P i είναι δείκτης δένδρου 2. Σε κάθε εσωτερικό κόμβο K 1 <K 2 < <K q-1. 3. Κάθε εσωτερικός κόμβος έχει το πολύ p δείκτες δένδρου. 4. Κάθε εσωτερικός κόμβος εκτός από τη ρίζα έχει το λιγότερο p/2 δείκτες δένδρου. Ο κόμβος της ρίζας έχει τουλάχιστον δυο δείκτες δένδρου. 5. Ένας εσωτερικός κόμβος με q δείκτες, q p έχει q-1 τιμές πεδίου αναζήτησης Μ.Χατζόπουλος 40

Ορισμός Β+δένδρου (Κόμβοι φύλα) 1. Κάθε κόμβος φύλο είναι της μορφής: <<K 1,Pr 1 >,<K 2,Pr 2 >,,<k q-1,pr q-1 >,P next > q p κάθε Pr i είναι δείκτης δεδομένων και το P next δείχνει τον επόμενο κόμβο φύλο του Β+δένδρου. 2. Σε κάθε κόμβο K 1 <K 2 < <K q-1, q p. 3. Κάθε Pri είναι δείκτης δεδομένων που δείχνει την εγγραφή της οποίας η τιμή του πεδίου του ευρετηρίου είναι K i. 4. Κάθε κόμβος φύλο έχει το λιγότερο p/2 τιμές. 5. Όλοι οι κόμβοι φύλα είναι στο ίδιο επίπεδο. Μ.Χατζόπουλος 41

Καταχωρήσεις ευρετηρίου Δεδομένα ή δείκτες στα δεδομένα Μ.Χατζόπουλος 42

Δομή εσωτερικού κόμβου P 1 K 1 K i-1 P i K i K q-1 P q δείκτης δένδρου X K 1 K i-1 <X K i K q-1 <X Μ.Χατζόπουλος 43

Δομή κόμβου φύλου K 1 Pr 1 K 2 Pr 2 K i Pr i K q-1 Pr q-1 P next δείκτης δεδομένων δείκτης στον επόμενο κόμβο φύλο Μ.Χατζόπουλος 44

13 17 24 30 2 3 5 7 14 16 19 20 22 24 27 29 33 34 38 39 Μ.Χατζόπουλος 45

Υπολογισμός της τάξης p του Β+δένδρου Μήκος κλειδιού V=9 byte Μέγεθος block B=512byte Μήκος δείκτη υποδένδρου P=6byte Μήκος δείκτη εγγραφής P r =7byte Για την τάξη p του δένδρου πρέπει να ισχύει (p*p)+((p-1)*v) B Δηλαδή στην περίπτωση μας (p*6)+((p-1)*9 512 15*p 521 P=34 Μ.Χατζόπουλος 46

Ο κόμβος φύλο μπορεί να είναι άλλης τάξης Θα πρέπει να ισχύει: (p leaf *(P r +V))+P B (p leaf *(7+9))+6 512 (16p leaf ) 506 Δηλαδή p leaf =31 Μ.Χατζόπουλος 47

Β+δένδρο βαθμού 5 έστω ότι και ο κόμβος φύλο είναι τάξεως 5 14 52 79 102 2 9 11 14 15 17 52 55 56 60 79 80 83 104 110 Μ.Χατζόπουλος 48

Εισαγωγή του 66 60 14 52 79 102 2 9 11 14 15 17 52 55 56 60 66 79 80 83 104 110 Μ.Χατζόπουλος 49

Η διαγραφή από ένα Β+δένδρο είναι αρκετά πολύπλοκη γιατί έχουμε τους περιορισμούς τόσο στα φύλα όσο και στους εσωτερικούς κόμβους να μην πέσουμε κάτω από την επιτρεπόμενη χρήση του κόμβου. Μ.Χατζόπουλος 50

72 83 60 63 66 79 83 102 110 115 160 Μ.Χατζόπουλος 51

Διαγραφή 102 72 83 60 63 66 79 83 110 115 160 Μ.Χατζόπουλος 52

Διαγραφή 83 63 83 60 63 66 79 110 115 160 Μ.Χατζόπουλος 53

Διαγραφή 160 63 83 60 63 66 79 110 115 Μ.Χατζόπουλος 54

Διαγραφή 79 66 60 63 66 110 115 Μ.Χατζόπουλος 55

Τα Β-δένδρα μπορούν να χρησιμοποιηθούν και σαν δευτερεύοντα ευρετήρια (σε πεδία που δεν είναι κλειδιά). Στην περίπτωση αυτή μπορούμε να χρησιμοποιήσουμε μια τεχνική όμοια με αυτή της υπερχείλισης. Κάθε τιμή στο φύλο δείχνει σε μια λίστα με τις διευθύνσεις των εγγραφών με αυτή την τιμή. Συνήθως όμως γίνεται μια διαφορετική υλοποίηση. Τις διπλές τιμές τις αντιμετωπίζουμε σαν απλές τιμές και για την ανάκτηση μιας τιμής ξεκινάμε από την πιο αριστερή τιμή και ακολουθούμε τα φύλα και πιθανόν και τους δείκτες επόμενου. Επίσης μπορεί να χρησιμοποιηθεί συνδυασμός κλειδιού διεύθυνσης. Η λύση αυτή οδηγεί σε ευρετήρια μοναδικών τιμών. Μ.Χατζόπουλος 56

Προθεματικά Β-δένδρα Έχουν παρόμοια δομή με τα Β+δένδρα αλλά διαφέρει η υλοποίηση τους.η βασική ιδέα είναι ότι αν το κλειδί είναι συμβολοσειρά, τότε δεν είναι σκόπιμο να αποθηκεύεται ολόκληρο στους εσωτερικούς κόμβους του καταλόγου αλλά μόνο εκείνο το πρόθεμα του που είναι απαραίτητο για την διαδικασία αναζήτησης. Έτσι ο κατάλογος περιέχει τους διαχωριστές (separators) που είναι μεταβλητού μήκους. Το μήκος των διαχωριστών ποικίλει από ένα χαρακτήρα μέχρι το μήκος ενός κλειδιού. Μ.Χατζόπουλος 57

Ν ΜΑΝΟΣ ΜΑΡΙΑ ΝΑΣΟΣ ΝΙΚΟΣ Μ.Χατζόπουλος 58

Ομαδική Φόρτωση σε Β+-δένδρα Ο αλγόριθμος εισαγωγής που περιγράψαμε εισάγει μια-μια τις καταχωρήσεις σε ένα Β+-δένδρο. Αν έχουμε μια αρχική συλλογή χωρίς ευρετήριο μπορούμε να χρησιμοποιήσουμε αυτόν τον αλγόριθμο ο οποίος όμως δεν θα είναι αποτελεσματικός, γιατί κάθε φορά θα διασχίζουμε το δένδρο από τη ρίζα. Πολλά συστήματα έχουν ένα βοηθητικό πρόγραμμα ομαδικής φόρτωσης για την δημιουργία Β+δένδρου ευρετηρίου σε μια υπάρχουσα συλλογή εγγραφών Μ.Χατζόπουλος 59

Βήματα ομαδικής φόρτωσης Ταξινόμηση των εγγραφών που θα εισαχθούν με βάση το κλειδί αναζήτησης k (εφόσον είναι ζεύγος κλειδί, δείκτης ταξινόμηση δεν σημαίνει ταξινόμηση του αρχείου) Ξεκινάμε με μια κενή σελίδα σαν ρίζα και εισάγουμε ένα δείκτη στην πρώτη σελίδα των ταξινομημένων καταχωρήσεων. Η καταχώρηση είναι ελάχιστη τιμή κλειδιού στη σελίδα και δείκτης σελίδας. Συνεχίζουμε μέχρι να γεμίσει η ρίζα. Στη συνέχεια έχουμε διάσπαση της ρίζας κοκ. Μ.Χατζόπουλος 60

3* 4* 6* 9* 10* 11* 12* 13* 20* 22* 23* 31* 3* 4* 6* 9* 10* 11* 12* 13* 20* 22* 23* 31* Μ.Χατζόπουλος 61

6 10 3* 4* 6* 9* 10* 11* 12* 13* 20* 22* 23* 31* Μ.Χατζόπουλος 62

10 6 12 3* 4* 6* 9* 10* 11* 12* 13* 20* 22* 23* 31* Μ.Χατζόπουλος 63

VSAM (Virtual Storage Access Method) αρχεία Αποτελούν μια υλοποίηση της IBM που μοιάζει πολύ με τα B+ δένδρα με την διαφορά ότι ο παράγοντας ελάχιστης φόρτωσης του κόμβου αφήνεται πιο ελεύθερος και μπορεί να καθορισθεί από τον χρήστη (σε αντίθεση με τα Β+δένδρα που είναι το μισό της μέγιστης χωρητικότητας). Μ.Χατζόπουλος 64

Δομή VSAM αρχείου Απαρτίζεται από 4 περιοχές Διαστήματα Ελέγχου (control intervals) που περιέχουν τις εγγραφές του αρχείου. Περιοχές ελέγχου (control areas) που περιέχουν πολλά διαστήματα ελέγχου Ακολουθιακές Ομάδες (sequence sets) που είναι κατάλογοι για κάθε περιοχή ελέγχου Ομάδα καταλόγων (index set) που είναι μια δενδρική δομή με το πολύ τρία επίπεδα. Οι σελίδες του κατώτερου επιπέδου δεικτοδοτούν προς το επίπεδο των ακολουθιακών ομάδων Μ.Χατζόπουλος 65

Ομάδα καταλόγων Ακολουθιακή ομάδα Ακολουθιακή ομάδα Διάστημα Ελέγχου Διάστημα Ελέγχου Διάστημα Ελέγχου Διάστημα Ελέγχου Διάστημα Ελέγχου Μ.Χατζόπουλος 66

Εγγραφή 1 Εγγραφή 2 Εγγραφή 3 Εγγραφή 4 Εγγραφή 5 Εγγραφή 6 Ελεύθερος χώρος Ελεύθερος χώρος RDF3 RDF2 RDF1 RDF:Record Definition Field Πεδίο Ορισμού εγγραφής Μ.Χατζόπουλος 67

Ομάδα Καταλόγων Υποθέστε ότι η περιοχή ελέγχου χωράει 4 εγγραφές 125 156 203 110 125 142 156 106 110 115 125 101 103 104 106 107 109 110 111 112 115 118 120 121 125 Ακολουθιακή Ομάδα Διάστημα Ελέγχου Περιοχές Ελέγχου Μ.Χατζόπουλος 68

Εισαγωγή 105 125 156 203 110 125 142 156 104 106 110 115 125 101 103 104 107 109 110 105 106 111 112 115 118 120 121 125 Ακολουθιακή Ομάδα Διάστημα Ελέγχου Περιοχές Ελέγχου Μ.Χατζόπουλος 69

Εισαγωγή 108 125 156 203 110 125 142 156 104 106 110 115 125 101 103 104 107 109 108 110 105 106 111 112 115 118 120 121 125 Ακολουθιακή Ομάδα Διάστημα Ελέγχου Περιοχές Ελέγχου Μ.Χατζόπουλος 70

Διαγραφή 120 125 156 203 110 125 142 156 104 106 110 115 125 101 103 104 107 109 108 110 105 106 111 112 115 118 121 125 Ακολουθιακή Ομάδα Διάστημα Ελέγχου Περιοχές Ελέγχου Μ.Χατζόπουλος 71

Τα εμπορικά συστήματα SYBASE: χρησιμοποιεί ευρετήρια συστάδες. Οι σελίδες αποτελούν διπλά συνδεδεμένη λίστα. Με τις εισαγωγές γράφονται δεδομένα στην υπερχείλιση. ORACLE, DB2, SQL Server: Η αντιμετώπιση των διπλών γίνεται με την προσθήκη της διεύθυνσης της εγγραφής. Με τον τρόπο αυτό δεν υπάρχουν διπλά. Μ.Χατζόπουλος 72

Εμπορικά Συστήματα και Β-δένδρα Τα DB2, Informix, SQL Server, Oracle, και SYBASE υποστηρίζουν απλά και συστάδες ευρετήρια Β+δένδρα με κάποιες διαφορές στην αντιμετώπιση των διαγραφών και των δευτερευόντων πεδίων. Στην SYBASE ανάλογα με το σχήμα συγχρονισμένης προσπέλασης που χρησιμοποιείται, η εγγραφή διαγράφεται (με πιθανή συγχώνευση σελίδων) ή απλά σημαδεύεται (με κάποιο σχήμα καθαρισμού του χώρου-garbage collection). Στην ORACLE οι διαγραφές σημαδεύονται σαν διαγραμμένες. Για ανάκληση του ελεύθερου χώρου μπορούμε on-line να χτίσουμε το ευρετήριο. Η INFORMIX σημαδεύει τις εγγραφές που έχουν διαγραφεί. Το DB2 και ο SQL Server διαγράφουν εγγραφές και συγχωνεύουν σελίδες όταν πέσουν κάτω από κάποιο όριο. Η ORACLE σε συστάδες εγγραφές από πολλές σχέσεις. Αυτό μπορεί να στηριχθεί σε Β+δένδρα. Μ.Χατζόπουλος 73

Ευρετήρια σε πολλαπλά κλειδιά Πολλές φορές οι ερωτήσεις αφορούν περισσότερα από ένα πεδία. Μας ενδιαφέρει η περίπτωση λογικών συζεύξεων. Δηλαδή ερωτήσεις του τύπου: (συνθήκη1) AND (συνθήκη2) Όπου η συνθήκη είναι της μορφής: Α c Όπου {=,<,>,, } και το c σταθερά Μ.Χατζόπουλος 74

Τι μπορούμε να κάνουμε Αν δεν υπάρχει ευρετήριο θα πρέπει να γίνει εξαντλητική σάρωση και έλεγχος για την εύρεση των εγγραφών που πληρούν την σύνθετη συνθήκη. Αν δεν υπάρχει ευρετήριο αλλά το αρχείο είναι ταξινομημένο ως προς κάποιο πεδίο της συνθήκης μπορεί να επιταχυνθεί η αναζήτηση. Αν υπάρχει ευρετήριο ως προς το ένα πεδίο τότε εντοπίζονται οι εγγραφές που πληρούν την μια συνθήκη και αφού μεταφερθούν στην μνήμη εξετάζεται και η άλλη συνθήκη. Μ.Χατζόπουλος 75

Αν υπάρχει ευρετήριο και στα δύο πεδία τότε μπορούμε να χρησιμοποιήσουμε και τα δύο ευρετήρια και η τομή τους είναι οι εγγραφές που αναζητούμε. Εναλλακτικά μπορούμε να χρησιμοποιήσουμε το ευρετήριο που θα δώσει το μικρότερο σύνολο εγγραφών και στη συνέχεια να εξετάσουμε τις εγγραφές αυτές αν πληρούν και την άλλη συνθήκη. Τέλος μπορούμε να συντηρούμε ευρετήρια σε συνδυασμό κλειδιών (σύνθετα κλειδιά). Μ.Χατζόπουλος 76

Δικτυωτό Αρχείο y x Μ.Χατζόπουλος 77

Μ.Χατζόπουλος 78

Λογικά έναντι φυσικών ευρετηρίων Θεωρήσαμε ευρετήρια με καταχωρήσεις του τύπου <k, Pr> ή <k, P> όπου το P ή το Pr ήταν φυσική διεύθυνση στο δίσκο. Ένα τέτοιο ευρετήριο ονομάζεται φυσικό ευρετήριο. Σε αντίθεση ένα λογικό ευρετήριο έχει καταχωρήσεις της μορφής <k, K p > όπου κάθε καταχώρηση έχει μια τιμή για το δευτερεύον πεδίο ευρετηριοποίησης συνδεδεμένη με την τιμή K p του πεδίου που χρησιμοποιείται για την πρωτεύουσα οργάνωση του αρχείου. Μ.Χατζόπουλος 79