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

Σχετικά έγγραφα
Μπαλτάς Αλέξανδρος 21 Απριλίου 2015

Ευρετήρια. Βάσεις Δεδομένων. Διδάσκων: Μαρία Χαλκίδη

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

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

Δυαδικά Δένδρα Αναζήτησης, Δένδρα AVL

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

έντρα ομές εδομένων 3ο εξάμηνο ιδάσκων: Χρήστος ουλκερίδης ιαφάνειες προσαρμοσμένες από το υλικό της Μαρίας Χαλκίδη

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

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

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

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

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

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

ιαφάνειες παρουσίασης #10 (β)

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

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

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

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

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

Προγραμματισμός Ι (ΗΥ120)

AVL-trees C++ implementation

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

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

Διάλεξη 12: Δέντρα ΙΙ Δυαδικά Δέντρα

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

Ισοζυγισμένα υαδικά έντρα Αναζήτησης

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

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

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

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

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

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

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

Δομές Δεδομένων & Αλγόριθμοι

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

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

Δηµοσθένης Σταµάτης Τµήµα Πληροφορικής ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΔΕΝΤΡΑ (TREES) B C D E F G H I J K L M

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΙI

Δομές Δεδομένων (Data Structures)

Δημιουργία Δυαδικών Δέντρων Αναζήτησης

Δομές Δεδομένων. Ενότητα 10: Πλήρη Δυαδικά Δέντρα, Μέγιστα/Ελάχιστα Δέντρα & Εισαγωγή στο Σωρό- Ο ΑΤΔ Μέγιστος Σωρός. Καθηγήτρια Μαρία Σατρατζέμη

Εκτενείς Δομές Δεδομένων

Ενότητα 9 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find)

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

Ενότητα 9 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find)

ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου,

Μάθημα 22: Δυαδικά δέντρα (Binary Trees)

Alternative to Balanced Trees, Comms of the ACM, 33(6), June 1990,

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

Δομές Δεδομένων Ενότητα 5

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

Εκτενείς Δομές Δεδομένων

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

Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα)

Δομές Δεδομένων και Αλγόριθμοι

Διασυνδεδεμένες Δομές. Λίστες. Προγραμματισμός II 1

οµές εδοµένων 3 ο Εξάµηνο ΕΝΟΤΗΤΑ 4 ΕΝ ΡΑ

Ενότητα 7 Ουρές Προτεραιότητας

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

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

Θέματα Υπολογισμού στον Πολιτισμό - Δένδρα. Δένδρα

Διαδικασιακός Προγραμματισμός

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

Δυαδικά Δέντρα Αναζήτησης (Binary Search Trees) Ορισμός : Ένα δυαδικό δέντρο αναζήτησης t είναι ένα δυαδικό δέντρο, το οποίο είτε είναι κενό είτε:

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

8.6 Κλάσεις και αντικείμενα 8.7 Δείκτες σε γλώσσα μηχανής

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

Διάλεξη 11: Δέντρα Ι - Εισαγωγή σε Δενδρικές Δομές Δεδομένων

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

ΟιβασικέςπράξειςπουορίζουντονΑΤΔ δυαδικό δέντρο αναζήτησης είναι οι ακόλουθες:

Κατ οίκον Εργασία 3 Σκελετοί Λύσεων

ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος Προγραμματιστική Εργασία - 2o Μέρος

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

Ουρές Προτεραιότητας: Υπενθύμιση. Σωροί / Αναδρομή / Ταξινόμηση. Υλοποίηση Σωρού. Σωρός (Εισαγωγή) Ορέστης Τελέλης

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

Διάλεξη 11: Δέντρα Ι Εισαγωγή σε Δενδρικές Δομές Δεδομένων

Δένδρα. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα:

Διασυνδεδεμένες Δομές. Δυαδικά Δέντρα. Προγραμματισμός II 1

Σύστηµα Αρχείων και Καταλόγων

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

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

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

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

υαδικά δέντρα αναζήτησης

ΕΠΛ 231 Δοµές Δεδοµένων και Αλγόριθµοι 8-1

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές δεδομένων. Ενότητα 7η: Ουρές Προτεραιότητας Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών

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

Red- black δέντρα Εκτενείς Δομές Δεδομένων (Κεφ. 5)

Διάλεξη 16: Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις

Δομές δεδομένων. Ενότητα 8: Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find) Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών

ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος 2017 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2o Μέρος

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

Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή

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

Διάλεξη 16: Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις

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

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

Δέντρα Απόφασης (Decision(

Αλγόριθμοι Ταξινόμησης Bubble Sort Quick Sort. Αντρέας Δημοσθένους Καθηγητής Πληροφορικής Ολυμπιάδα 2012

Transcript:

ΗΥ360 Αρχεία και Βάσεις εδοµένων ιδάσκων:. Πλεξουσάκης Tutorial B-Trees, B+Trees Μπαριτάκης Παύλος 2018-2019

Ιδιότητες B-trees Χρήση για μείωση των προσπελάσεων στον δίσκο Επέκταση των Binary Search Trees Ένα B-tree τάξεως m έχει τις παρακάτω ιδιότητες: 1. Κάθε κόμβος έχει max m παιδιά(pointers) και m-1 κλειδιά(keys) 2. Κάθε non-leaf κόμβος(node) έχει min "m" /2 παιδιά 3. Κάθε non-leaf κόμβος με k παιδιά έχει k-1 κλειδιά 4. Η ρίζα έχει min 2 παιδιά και 1 κλειδί (αν δεν είναι leaf) 5. Όλα τα φύλλα εμφανίζονται στο ίδιο επίπεδο Τα κλειδιά σε κάθε εσωτερικό κόμβο λειτουργούν ως όρια για το διαχωρισμό σε υποδέντρα * Τάξη Β tree = Πόσα παιδιά μπορεί να έχει ένας εσωτερικός κόμβος

Ιδιότητες B-trees Παράδειγμα B-Tree Τάξη m = 4 Αριθμός Παιδιών (pointers) ανά κόμβο (κανόνας 3): max 4, min 2 Αριθμός Κλειδιών (keys) ανά κόμβο (κανόνας 3): max 3, min 1 * Pointers : Ξεκινάνε από το κάθε διαχωριστικό με τα βελάκια Keys: Θέσεις - κουτάκια που υπάρχουν σε κάθε κόμβο

Ενέργειες σε B-Trees Αναζήτηση Κάνω αναζήτηση για μια εγγραφή με κλειδί k, βρίσκω ένα μονοπάτι από τη ρίζα ως κάποιο φύλλο όπου βρίσκεται (αν βρίσκεται) η επιθυμητή εγγραφή Εισαγωγή Κάνω εισαγωγή μιας εγγραφής με κλειδί k Διαγραφή Διαγράφω μια εγγραφή με κλειδί k

Β+ Trees Υποκατηγορία των B(alanced) Trees B-Trees: Αποθηκεύουν κλειδιά και δεδομένα σε όλους τους κόμβους B+Trees: Αποθηκεύουν τα δεδομένα τους μόνο στα φύλλα

Ιδιότητες Β+ trees Ενα B+ tree κατασκευάζεται με βάση μια παράμετρο n, η οποία υποδηλώνει τη μέγιστη χωρητικότητα ενός κόμβου. Κάθε B+ tree έχει τις παρακάτω ιδιότητες: 1. Ο αριθμός n+1 ονομάζεται τάξη ή fan-out του δέντρου 2. Κάθε κόμβος πρέπει να είναι πάντα τουλάχιστον γεμάτος κατά 50% (no less than half full) 3. Όλα τα φύλλα εμφανίζονται στο ίδιο επίπεδο

Ιδιότητες Β+ trees a) A node with two children; b) a node with three children; c) a node with m children

Ιδιότητες Β+ trees Internal (non-root) Leaf (non-root) Max Pointers Max Keys n+1 n n+1 n Min Pointers -> Data Min keys Root n+1 n 2(*) 1

Αναζήτηση σε B+ Trees Αναζήτηση(Lookup) εγγραφής με κλειδί k 1. Ξεκινάω από τη ρίζα και βρίσκω το μεγαλύτερο κλειδί k1 τέτοιο ώστε k1 k k1+1 2. Ακολουθώ τον pointer p 1 +1 μέχρι να φτάσω σε φύλλο (leaf) 3. Αν k= k 1 κι έχω φτάσει σε φύλλο(leaf) τότε ακολουθώ τον p 1 για να βρω την εγγραφή

Παράδειγμα: Αναζήτηση σε B+ Trees

Παράδειγμα : Αναζήτηση σε B+ Trees

Παράδειγμα : Αναζήτηση σε B+ Trees

Παράδειγμα : Αναζήτηση σε B+ Trees

Εισαγωγή σε B+ Trees Αλγόριθμος Ενέργειες Εισαγωγής για B+ Trees Leaf Page FULL? Index Page FULL? Ενέργειες - Βήματα NO NO Τοποθέτησε το record σε ταξινομημένη θέση στο κατάλληλο leaf page. YES NO 1. Χώρισε το leaf page 2. Πάρε το μεσαίο κλειδί(middle key) από το leaf page και τοποθέτησέ το σε ταξινομημένη θέση στο index page 3. Το αριστερό leaf page περιέχει εγγραφές(records) με κλειδιά μικρότερα από το μεσαίο κλειδί 4. Το δεξί leaf page περιέχει εγγραφές(records) με κλειδί ίσο(=) ή μεγαλύτερο(>) από το μεσαίο κλειδί YES YES 1. Χώρισε το leaf page 2. Εγγραφές με κλειδιά < μεσαίου κλειδιού τοποθετούνται στο αριστερό leaf page 3. Εγγραφές με κλειδιά >= μεσαίου κλειδιού τοποθετούνται στο δεξιό leaf page 1. Χώρισε το index page 2. Εγγραφές με κλειδιά < μεσαίου κλειδιού τοποθετούνται στο αριστερό index page 3. Εγγραφές με κλειδιά >= μεσαίου κλειδιού τοποθετούνται στο δεξιό index page 4. Το μεσαίο κλειδί (middle key) τοποθετείται σε επόμενο index page ψηλότερου επιπέδου

Διαγραφή σε B+ Trees Αλγόριθμος Ενέργειες Διαγραφής για B+ Trees Leaf Page Bellow Fill Factor Index Page Bellow Fill Factor Ενέργειες - Βήματα NO NO 1. Διαγράφουμε την εγγραφή(record) από το leaf page 2. Μετακινούμε - Ταξινομούμε τα κλειδιά κατά αύξουσα σειρά για να καλύψουμε το κενό της διαγραφής 3. Αν το κλειδί από το διαγραμμένο record εμφανίζεται στο index page, χρησιμοποιούμε το επόμενο κλειδί για να αντικαταστήσουμε το διαγραμμένο YES NO 1. Γίνεται συνένωση του leaf page με τα συγγενικά του (γειτονικοί κόμβοι με ίδιο parent κόμβο με αυτού πραγματοποιείται η διαγραφή) 2. Αλλάζουμε κατάλληλα το index page για να πραγματοποιηθεί η αλλαγή από την διαγραφή YES YES 1. Γίνεται συνένωση του leaf page με τα συγγενικά του (γειτονικοί κόμβοι με ίδιο parent κόμβο με αυτού πραγματοποιείται η διαγραφή) 2. Αλλάζουμε κατάλληλα το index page για να πραγματοποιηθεί η αλλαγή από την διαγραφή 3. Γίνεται συνένωση του index page με τα συγγενικά του(γειτονικοί κόμβοι με ίδιο parent κόμβο με αυτού πραγματοποιείται η διαγραφή) Συνεχίζουμε να κάνουμε συνένωση του index page μέχρι να φτάσουμε σε page που να περιέχει το σωστό record το οποίο θα τοποθετηθεί στην θέση που χρειάζεται, διαφορετικά έχουμε φτάσει στο root page.

Άσκηση σε Β+ Τree Κατασκευάστε ένα Β+ δέντρο για το ακόλουθο σύνολο από τιμές κλειδιών όταν ο αριθμός των εγγραφών που χωράνε σε κάθε κόμβο είναι 6. {2, 3, 5, 7, 11, 17, 19, 23, 29, 31} Στη συνέχεια δείξτε πώς αλλάζει το δέντρο μετά από 1. Την εισαγωγή των 9, 10, 8 2. Τη διαγραφή των 23, 19

Άσκηση σε Β+ Τree Λύση: {2, 3, 5, 7, 11, 17, 19, 23, 29, 31}

Άσκηση σε Β+ Τree Επεξήγηση Λύσης: {2, 3, 5, 7, 11, 17, 19, 23, 29, 31} Βήμα 1o: 2 Βήμα 2o: Βήμα 3o: 2 3 2 3 5

Άσκηση σε Β+ Τree Επεξήγηση Λύσης: {2, 3, 5, 7, 11, 17, 19, 23, 29, 31} Βήμα 4o: 2 3 5 7 Βήμα 5o: 2 3 5 7 11

Άσκηση σε Β+ Τree Επεξήγηση Λύσης: {2, 3, 5, 7, 11, 17, 19, 23, 29, 31} Βήμα 6o (middle key =7): 7 2 3 5 7 11 17

Άσκηση σε Β+ Τree Επεξήγηση Λύσης: {2, 3, 5, 7, 11, 17, 19, 23, 29, 31} Βήμα 7o: 7 2 3 5 7 11 17 19

Άσκηση σε Β+ Τree Επεξήγηση Λύσης: {2, 3, 5, 7, 11, 17, 19, 23, 29, 31} Βήμα 8o: 7 2 3 5 7 11 17 19 23

Άσκηση σε Β+ Τree Επεξήγηση Λύσης: {2, 3, 5, 7, 11, 17, 19, 23, 29, 31} Βήμα 9o (middle key= 19) : 7 19 2 3 5 19 23 29 7 11 17

Άσκηση σε Β+ Τree Επεξήγηση Λύσης: {2, 3, 5, 7, 11, 17, 19, 23, 29, 31} Βήμα 10o τελικό B+ Tree: 7 19 2 3 5 19 23 29 31 7 11 17

Άσκηση σε Β+ Τree Εισαγωγή 9 Εισαγωγή 10

Άσκηση σε Β+ Τree Εισαγωγή 8 Διαγραφή 23

Διαγραφή 19 Άσκηση σε Β+ Τree

B-Trees, Β+ Trees End of Slides