Ευρετήρια και Κατακερµατισµός

Σχετικά έγγραφα
Κεφ.11: Ευρετήρια και Κατακερματισμός

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

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

Κεφάλαιο 7. ISAM και B- έντρα Φυσικός Σχεδιασµός για Βάσεις εδοµένων. ΙΒ οµές Ευρετηρίων Φυσικός Σχεδιασµός Β Σελίδα 3.53

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ευρετήρια και Κατακερματισμός

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

Τα δεδομένα συνήθως αποθηκεύονται σε αρχεία στο δίσκο

Οργάνωση Αρχείων. Βάσεις Δεδομένων : Οργάνωση Αρχείων 1. Blobs

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

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

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

Οργάνωση Αρχείων. Βάσεις Δεδομένων : Οργάνωση Αρχείων 1. Blobs

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

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

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

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

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

ΗΥ460 Συστήµατα Διαχείρισης Βάσεων Δεδοµένων Χειµερινό Εξάµηνο 2016 Διδάσκοντες: Βασίλης Χριστοφίδης

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

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

Linear Hashing. Linear vs other Hashing

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

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

Άσκηση 1 (15 μονάδες) (Επεκτατός Κατακερματισμός)

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

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

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

Οργάνωση Αρχείων. Ευρετήρια. Ταξινοµηµένα ευρετήρια B + -δένδρα Ευρετήρια κατακερµατισµού. Αρχεία σωρού ιατεταγµένα αρχεία Αρχεία κατακερµατισµού

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

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

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

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

Λεξικό, Union Find. ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

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

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

Λεξικό, Union Find. ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

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

Οργάνωση Αρχείων. Διάγραμμα Σχεσιακού σχήματος. Ευρετήρια. Ταξινομημένα ευρετήρια B + δένδρα Ευρετήρια κατακερματισμού

BΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΕΞΕΤΑΣΗ ΦΕΒΡΟΥΑΡΙΟΥ 2005

Λεξικό, Union Find. ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Λεξικό, Union Find. ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Βάσεις δεδομένων. (10 ο μάθημα) Ηρακλής Βαρλάμης

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Εξωτερική Αναζήτηση και Β-δέντρα Κεφάλαιο 16. Ε. Μαρκάκης Επίκουρος Καθηγητής

Physical DB Design. B-Trees Index files can become quite large for large main files Indices on index files are possible.

Πανεπιστήµιο Κρήτης Τµήµα Επιστήµης Υπολογιστών. ΗΥ-460 Συστήµατα ιαχείρισης Βάσεων εδοµένων ηµήτρης Πλεξουσάκης Βασίλης Χριστοφίδης

ΗΥ-460 Συστήµατα ιαχείρισης Βάσεων εδοµένων ηµήτρης Πλεξουσάκης Βασίλης Χριστοφίδης

Ανάκτηση Πληροφορίας

Λεξικό, Union Find. ημήτρης Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Εθνικό Μετσόβιο Πολυτεχνείο

Αποθήκευση εδοµένων. Μαγνητικοί ίσκοι. Μαγνητικές ταινίες για. Εισαγωγή

Αλγόριθμοι Ταξινόμησης Μέρος 4

ΗΥ460 Συστήματα Διαχείρισης Βάσεων Δεδομένων Χειμερινό Εξάμηνο 2016 Διδάσκοντες: Βασίλης Χριστοφίδης, Δημήτρης Πλεξουσάκης, Χαρίδημος Κονδυλάκης

#2 Αλγόριθµοι, οµές εδοµένων και Πολυπλοκότητα

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

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

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

Εισαγωγή στην επιστήμη των υπολογιστών. Οργάνωση εδομένων Κεφάλαιο 11ο ομές εδομένων

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

Advanced Data Indexing

Αλγόριθμοι Ταξινόμησης Μέρος 3

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

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

Heapsort Using Multiple Heaps

Αποθήκευση εδομένων. Μαγνητικοί ίσκοι. Μαγνητικές ταινίες για. Εισαγωγή

Transcript:

Ευρετήρια και Κατακερµατισµός Α µέρος Ευρετήρια και Κατακερµατισµός Σελίδα 1

ΣΥΝΟΨΗ ΕΝΟΤΗΤΑΣ Ορισµοί - Βασικές έννοιες ιατεταγµένα Ευρετήρια B+-Tree οµές Ευρετηρίων Ευρετήρια και Κατακερµατισµός Σελίδα 2

Βασικές έννοιες Ένα ευρετήριο (index)είναι µια βοηθητική δοµή αρχείουπου κάνει πιο αποδοτική την αναζήτηση µιας εγγραφής σε ένα αρχείο Κλειδί αναζήτησης γνώρισµα ή σύνολο γνωρισµάτων που χρησιµοποιείται για αναζήτηση Μια καταχώρηση / εγγραφή στο Ευρετήριο έχει την µορφή Κλειδί αναζήτησης Η δοµή ευρετηρίου καταλαµβάνει µικρότερο χώρο από το ίδιο το αρχείο (οι καταχωρήσεις είναι µικρότερες και λιγότερες) 2 Βασικές κατηγορίες: είκτης στο µπλοκ εγγραφής ιατεταγµένο ευρετήριο: Ταξινοµηµένα κλειδιά αναζήτησης Ευρετήριο κατακερµατισµού: Κλειδιά αναζήτησης οµοιόµορφα κατανεµηµένα σε buckets µε χρήση συνάρτησης hash. Ευρετήρια και Κατακερµατισµός Σελίδα 3

Μετρικές αποτίµησης ευρετηρίων Τύποι πρόσβασης Εγγραφές µε συγκεκριµένη τιµή για ένα γνώρισµα (point queries) Εγγραφές µε τιµές γνωρισµάτων σε συγκεκριµένο εύρος Χρόνος πρόσβασης Χρόνος εισαγωγής Χρόνος διαγραφής Κόστος σε χώρο Ευρετήρια και Κατακερµατισµός Σελίδα 4

ιατεταγµένα Ευρετήρια Σε ένα διατεταγµένο ευρετήριο, οι δείκτες αποθηκεύονται ταξινοµηµένοι ως προς ένα κλειδί αναζήτησης Πρωτεύον ευρετήριο: σε ένα σειριακά ταξινοµηµένο αρχείο το κλειδί αναζήτησης ορίζει τη σειριακή ταξινόµηση του αρχείου Λέγεται και clustering index (ευρετήριο συµπλέγµατος) ) Το κλειδί αναζήτησης είναι συνήθως, αλλά όχι απαραίτητα, το πρωτεύον κλειδί ευτερεύον ευρετήριο: το κλειδί αναζήτησης ορίζει διαφορετική σειρά από τη σειριακή ταξινόµηση του αρχείου. Λέγεται και non-clustering index. Αρχεία σειριακού ευρετηρίου:αρχείο µε πρωτεύον ευρετήριο στο κλειδί αναζήτησης Ευρετήρια και Κατακερµατισµός Σελίδα 5

Πυκνά ευρετήρια Ένα στοιχείο ευρετηρίου για κάθε τιµή κλειδιού αναζήτησης του αρχείου E.g. index on ID attribute of instructor relation Ευρετήρια και Κατακερµατισµός Σελίδα 6

Πυκνά ευρετήρια Πυκνό ευρετήριο στο dept_name, µε το αρχείο instructor διατεταγµένο ως προς dept_name Ευρετήρια και Κατακερµατισµός Σελίδα 7

Αραιά Ευρετήρια Περιέχουν στοιχεία ευρετηρίου για µερικές µόνο τιµές του κλειδιού αναζήτησης Μόνο για σειριακά διατεταγµένες εγγραφές ως προς το κλειδί αναζήτησης Για εύρεση εγγραφών µε κλειδί αναζήτησης K : Βρες στοιχείο µε την µεγαλύτερη τιµή κλειδιού αναζήτησης < K Σειριακή αναζήτηση ξεκινώντας από την εγγραφή που δείχνει το στοιχείο Ευρετήρια και Κατακερµατισµός Σελίδα 8

Αραιά Ευρετήρια Σε σύγκριση µε τα πυκνά ευρετήρια: Λιγότερος χώρος Μικρότερο κόστος συντήρησης για εισαγωγές και διαγραφές Πιο αργός εντοπισµός εγγραφών Καλός συµβιβασµός:αραιό ευρετήριο µε ένα στοιχείο ευρετηρίου ανά µπλοκ Βασικό κόστος = χρόνος να έρθει το µπλοκ στη µνήµη Ευρετήρια και Κατακερµατισµός Σελίδα 9

ευτερεύοντα ευρετήρια Συχνά θέλουµε να βρούµε εγγραφές µε τιµές σε συγκεκριµένο γνώρισµα που δεν είναι το κλειδί αναζήτησης του πρωτεύοντος ευρετηρίου Παράδειγµα 1: Σχέση instructor αποθηκευµένη σειριακά ως προς ID: θέλουµε να βρούµε καθηγητές συγκεκριµένου department Παράδειγµα 2: Σχέση instructor αποθηκευµένη σειριακά ως προς ID: θέλουµε να βρούµε καθηγητές συγκεκριµένου εύρους salary We can have a secondary index with an index record for each search-key value Ευρετήρια και Κατακερµατισµός Σελίδα 10

Πυκνά και αραιά ευρετήρια Ashby Cass Smith Ashby, 25, 3000 Basu, 33, 4003 Bristow, 30, 2007 Cass, 50, 5004 Daniels, 22, 6003 Jones, 40, 6003 Smith, 44, 3000 Tracy, 44, 5004 22 25 30 33 40 44 44 50 Sparse Index on Name Data File Dense Index on Age Ευρετήρια και Κατακερµατισµός Σελίδα 11

Παράδειγµα δευτερεύοντος ευρετηρίου Αν κλειδί αναζήτησης είναι υποψήφιο κλειδί τότε όπως πυκνά πρωτεύοντα ευρετήρια Αλλιώς επιπλέον επίπεδο έµµεσων δεικτών: bucket µε δείκτες σε όλες τις εγγραφές για ένα κλειδί αναζήτησης Πρέπει να είναι πυκνά Secondary index on salary field of instructor Ευρετήρια και Κατακερµατισµός Σελίδα 12

Πρωτεύοντα και δευτερεύοντα ευρετήρια Τα ευρετήρια επιταχύνουν την αναζήτηση εγγραφών Αλλά: Η ενηµέρωση των ευρετηρίων σηµαίνει επιπλέον κόστος όταν ενηµερώνεται µια εγγραφή πρέπει να ενηµερωθεί και κάθε δείκτης Σειριακή αναζήτηση µε πρωτεύον ευρετήριο είναι αποδοτική, αλλά δευτερεύον ακριβή Κάθε προσπέλαση εγγραφής µπορεί να φέρει καινούριο µπλοκ απτό τον δίσκο ~5-10 milliseconds vs 100 nanoseconds για προσπέλαση µνήµης Ευρετήρια και Κατακερµατισµός Σελίδα 13

Ευρετήρια Πολλών Επιπέδων Αν το πρωτεύον ευρετήριο δε χωρά στη µνήµη τότε γράφεται σε αρχεία, άρα η προσπέλαση είναι ακριβή Τα Αρχεία Ευρετηρίων είναι απλά Αρχεία, άρα και σε αυτά µπορούν να οριστούν Ευρετήρια Καταλήγουµε λοιπόν σε µια ιεραρχία δοµών ευρετηρίων (πρώτο επίπεδο, δεύτερο επίπεδο, κλπ.) Κάθε επίπεδο του ευρετηρίου είναι ένα διατεταγµένο αρχείο, συνεπώς, Εισαγωγές/ ιαγραφές εγγραφών απαιτούν επιπλέον δουλειά Ένα πολύ-επίπεδο ευρετήριο αποτελεί ένα έντρο Αναζήτησης µε την υπόθεση ότι το πρώτο επίπεδοχωρά σε ένα Μπλοκ Ευρετήρια και Κατακερµατισµός Σελίδα 14

Ευρετήρια Πολλών Επιπέδων Ευρετήρια και Κατακερµατισµός Σελίδα 15

Ενηµέρωση ευρετηρίου: ιαγραφή Πυκνά Αραιά Ευρετήρια και Κατακερµατισµός Σελίδα 16

Ενός επιπέδου Ενηµέρωση ευρετηρίου: Εισαγωγή Πυκνά Αν το κλειδί αναζήτησης δεν υπάρχει στο ευρετήριο το εισάγουµε στην κατάλληλη θέση Αραιά αν αποθηκεύεται µια καταχώρηση για κάθε µπλοκ αρχείου δεν αλλάζει κάτι αν δε δηµιουργηθεί νέο µπλοκ» Αν δηµιουργηθεί νέο µπλοκ τότε το πρώτο κλειδί αναζήτησης στο block δηµιουργεί καινούρια καταχώρηση στο ευρετήριο Πολλαπλών επιπέδων: επέκταση των αλγορίθµων ενός επιπέδου Ευρετήρια και Κατακερµατισµός Σελίδα 17

Indexed Sequential Access Method (ISAM) Το ISAM είναι µια πολύ-επίπεδη οµή Ευρετηρίου ( έντρο) για άµεση πρόσβαση σε εγγραφές αρχείου διατεταγµένου στο Κλειδί Κάθε κόµβος του έντρου είναιένα Μπλοκστο ίσκο Οι κόµβοι του έντρου κρατούν <τιµή κλειδιού, δείκτης>ζεύγη, ταξινοµηµένα στην τιµή κλειδιού. Οι εσωτερικοί κόµβοι δείχνουν σε χαµηλότερου επιπέδου κόµβους ενώ τα φύλλακόµβοι δείχνουν σε Μπλοκ του αρχείου (Σχέσης). Ένας είκτης δείχνει ένα υπό-δέντρο µε τιµές κλειδιού ΜΕΓΑΛΥΤΕΡΕΣ ή ΙΣΕΣ της αντίστοιχης τιµής κλειδιού και ΜΙΚΡΟΤΕΡΕΣ της τιµής Κλειδιού του επόµενου είκτη 9 18 55 60 78 90 Ευρετήρια και Κατακερµατισµός Σελίδα 18

ISAM έντρο --Παράδειγµα Κάθε κόµβος µπορεί να έχει 2 καταχωρήσεις ΡΙΖΑ 40 20 33 51 63 10* 15* 20* 27* 33* 37* 40* 46* 51* 55* 63* 97* Ευρετήρια και Κατακερµατισµός Σελίδα 19

Βασικές λειτουργίες ηµιουργία: 1. Φύλλα (µπλοκς δεδοµένων) σειριακά, ταξινοµηµένα µε βάση το κλειδί αναζήτησης 2. Μπλοκς ευρετηρίου 3. Χώρος για overflow blocks Καταχωρήσεις ευρετηρίου: <search key value, block id>; Και µετά άµεση αναζήτηση δεδοµένων που βρίσκονται στα φύλλα Αναζήτηση: Ξεκινάµε από τη ρίζα; Συγκρίσεις κλειδιών για να φτάσουµε σε φύλλο. Εισαγωγή: Βρες το φύλλο που ανήκει η νέα τιµή (Μπορεί να χρειαστεί overflow block). ιαγραφή: Βρες και διάγραψε τιµή από το φύλλο; Αν αδειάσει ένα overflow block αποδέσµευσε χώρο Data blocks Index blocks Overflow pages Static tree structure: inserts/deletes affect only leaf pages. Ευρετήρια και Κατακερµατισµός Σελίδα 20

Μετά την εισαγωγή των 23*, 48*, 41*, 42*... ΜΠΛΟΚ ΕΥΡΕΤΗΡΙΟΥ ΡΙΖΑ 40 20 33 51 63 ΜΠΛΟΚ ΑΡΧΕΙΟΥ 10* 15* 20* 27* 33* 37* 40* 46* 51* 55* 63* 97* ΜΠΛΟΚ ΥΠΕΡΧΕΙΛΙΣΗΣ 23* 48* 41* 42* Ευρετήρια και Κατακερµατισµός Σελίδα 21

Μετά την διαγραφή των 42*, 51*, 97* ΡΙΖΑ 40 20 33 51 63 10* 15* 20* 27* 33* 37* 40* 46* 55* 63* 23* 48* 41* Παρατηρείστε ότι το 51* είναι στο ευρετήριο, αλλά όχι στο Αρχείο! Ευρετήρια και Κατακερµατισµός Σελίδα 22

Η Επίδοση του ISAM ΕΠΙ ΟΣΗ (PERFORMANCE). Έστω ότι έχουµε D blocks για εδοµένα (φύλλα) και k δείκτες για κάθε κόµβο ΙΑ ΙΚΑΣΙΑ ΑΝΑΖΗΤΗΣΗΣ: Σειριακή Σάρωση (scan): υαδική Αναζήτηση Σχέσης: υαδική Αναζήτηση (µονό επίπεδο): ιάσχιση του ISAM έντρου: D log 2 D log 2 (D/k) log k D Ευρετήρια και Κατακερµατισµός Σελίδα 23

ISAM -- ΣΧΟΛΙΑ ΠΛΕΟΝΕΚΤΗΜΑΤΑ: Παρέχει έναν ταξινοµηµένο κατάλογο για το Αρχείο (ή Σχέση) Εξαιρετική δοµή για ακριβείς ερωτήσεις (exact queries) π.χ., Salary = 400000 Το ISAM διευκολύνει την εκτέλεση των ερωτήσεων διακύµανσης (range queries). π.χ., Salary µεταξύ 350000και 600000 ΜΕΙΟΝΕΚΤΗΜΑΤΑ Είναι µια ΣΤΑΤΙΚΗ δοµή που εύκολα χάνει την ισορροπία της (unbalanced) - ισορροπία ύψους και πληρότητας των κόµβων Αν στο Αρχείο γίνονται πολλές ενηµερώσεις (volatile δεδοµένα), τότε το Αρχείο µπορεί να χάσει την ταξινόµησή του. Το Ευρετήριο απαιτεί µεγάλο χώρο το ίσκο Ευρετήρια και Κατακερµατισµός Σελίδα 24

B + - έντρα Το B + - έντροείναι µια πολύ-επίπεδη δοµή ευρετηρίουγια ένα διατεταγµένο αρχείο Οι κόµβοι-φύλλαπεριέχουν ταξινοµηµένες εγγραφές (πλειάδες), οι άλλοι (εσωτερικοί) κόµβοι έχουν ειδική µορφή Ένας κόµβος αντιστοιχεί σε ένα Μπλοκ Κάθε κόµβος κρατιέται κάτι µεταξύ γεµάτου και µισό-γεµάτου Οι Εισαγωγές σε κόµβους, πουδεν είναι γεµάτοι, γίνονται αποδοτικά. Αν ένας κόµβος είναι γεµάτος, τότε έχουµε διάσπαση Οι ιαγραφές γίνονται πολύ αποδοτικάαν ο κόµβοςδεν καθίσταται λιγότερο από µισό-γεµάτος (ώστε να απαιτήσει ένωση) Η δοµή έντρου παραµένει ανά πάσα στιγµή ΙΣΟΡΡΟΠΗΜΕΝΗ Ευρετήρια και Κατακερµατισµός Σελίδα 25

Παράδειγµα B + - έντρα Ευρετήρια και Κατακερµατισµός Σελίδα 26

B + - έντρα -Σύνοψη A B + -tree is a rooted tree satisfying the following properties: Όλα τα µονοπάτια από τη ρίζα στα φύλλα είναι ίδιου µήκους Κάθε κόµβος που δεν είναι ρίζα ούτε φύλλο έχει από n/2 έως και n παιδιά Κάθε κόµβος φύλλο έχει µεταξύ (n 1)/2 και n 1 τιµές Ειδικές περιπτώσεις: Αν η ρίζα δεν είναι φύλλο, έχει τουλάχιστον 2 παιδιά. Αν η ρίζα είναι φύλλο (αν δλδ δεν υπάρχουν άλλοι κόµβοι στο δέντρο), έχει από 0 έως και (n 1) τιµές. Ευρετήρια και Κατακερµατισµός Σελίδα 27

B + - έντρα -Σύνοψη Μορφή Εσωτερικών Κόµβων: P 1 K 1 P 2 K 2...... P K n-1 P K n-1 n 1 < K 2 <... K n-1 Το P 1 δείχνει ένα κόµβο που περιέχει τιµές κλειδιού n, n< K 1 Το P 2 δείχνει ένα κόµβο που περιέχει τιµές κλειδιού n, K 1 < = n < K 2 Παραλλαγές των B + - έντρων: B- έντρα : Σαν τα B + - έντρα, αλλά οι εσωτερικοί κόµβοι περιέχουν επιπλέον δείκτες σε δεδοµένα. Είναι συνήθως πιο µεγάλα και είναι δύσκολο να υλοποιηθούν, ενίοτε όµως, είναι ταχύτερα B*- έντρα :Σαν τα B + - έντρα, αλλά κρατούν κάθε κόµβο γεµάτο (τουλάχιστον) κατά τα 2/3. / ιαγραφές Μικρότερα και ταχύτερα δέντρα, αλλά πολύ χειρότερα για Εισαγωγές Ευρετήρια και Κατακερµατισµός Σελίδα 28

B + - έντρα Τα πλέον δηµοφιλή Ευρετήρια Εισαγωγή / ιαγραφή µε κόστος log F N - κρατούν το έντροσε ισορροπηµένη µορφή. (F = εξάπλωση, N = αριθµόςτων φύλλων) Ελάχιστη πληρότητα 50% (εκτός της Ρίζας). Κάθε κόµβος περιέχει d <= m <= 2d καταχωρήσεις. Το d ονοµάζεται Τάξη του έντρου. Εξαιρετική δοµή ΚΑΙ για exact queries ΚΑΙ για range queries. Καταχωρήσεις Ευρετηρίου (Άµεση Αναζήτηση) Καταχωρήσεις εδοµένων («Σύνολο ακολουθίας») Ευρετήρια και Κατακερµατισµός Σελίδα 29

Αναζήτηση Β+ έντρου Η αναζήτηση ξεκινά από τη Ρίζα, και οι συγκρίσεις των κλειδιών µας οδηγούν στα φύλλα (όπως στο ISAM). Αναζήτηση για τα 5*, 15*, όλες οι καταχωρήσεις >= 24*... ΡΙΖΑ 13 17 24 30 2* 3* 5* 7* 14* 16* 19* 20* 22* 24* 27* 29* 33* 34* 38* 39* Ευρετήρια και Κατακερµατισµός Σελίδα 30

Αναζήτηση Β+ έντρου Αν υπάρχουν Kκλειδιά αναζήτησης στο αρχείο, το ύψος του δέντρου δεν είναι µεγαλύτερο από log n/2 (K). Ένα κόµβος = ένα block, τυπικά 4 kilobytes Και n είναι συνήθως100 (40 bytes per index entry). Με Κ=1 εκατοµµύριο κλειδιά αναζήτησης και n = 100 at most log 50 (1,000,000) = 4 κόµβοι για κάθε αναζήτηση υαδικό δέντρο µε 1 εκατοµµύριο κλειδιά αναζήτησης περίπου 20 κόµβοι για 1 αναζήτηση Μεγάλη διαφορά σε disk I/O, άρα και σε χρόνο Ευρετήρια και Κατακερµατισµός Σελίδα 31

Η Εισαγωγή µιας καταχώρησης δεδοµένων (εγγραφής) Βρες το σωστό Φύλλο L. Βάλε την καταχώρηση στο L. Αν το L έχει αρκετό χώρο, τελείωσες! Αλλιώς, πρέπει να διασπαστεί το L (στο L και ένα νέο κόµβο L2)» Κάνε ισόρροπη ανακατανοµή των καταχωρήσεων (split key)» Βάλε νέο δείκτη ευρετηρίου στον πατέρα του Lνα δείχνει στο L2» Η παραπάνω διαδικασία µπορεί να χρειάζεται να γίνει αναδροµικά Σε διάσπαση εσωτερικών κόµβων, κάνε το ίδιο, αλλάσπρώξε πάνω το split key (διαφοροποίηση από τα φύλλα) Οι διασπάσεις κόµβων κάνουν το δέντρο πιο πλατύ Η διάσπαση της ρίζας κάνει το δέντρο πιο ψηλό Ευρετήρια και Κατακερµατισµός Σελίδα 32

Η Εισαγωγή της καταχώρησης 8* ΡΙΖΑ 13 17 24 30 2* 3* 5* 7* 14* 16* 19* 20* 22* 24* 27* 29* 33* 34* 38* 39* Καταχώρηση στον πατέρα κόµβο. 5 Το 5* ανεβαίνει πάνω, αλλά Παραµένει και στο φύλλο 2* 3* 5* 7* 8* Ευρετήρια και Κατακερµατισµός Σελίδα 33

Η Εισαγωγή της καταχώρησης 8* ΡΙΖΑ 13 17 24 30 2* 3* 5* 7* 14* 16* 19* 20* 22* 24* 27* 29* 33* 34* 38* 39* 17 Καταχώρηση στον Πατέρα Κόµβο Το 17* ανεβαίνει πάνω και παρουσιάζεται µόνο Μία φορά στο Ευρετήριο (σε αντίθεση µε Φύλλα) 5 13 24 30 Ευρετήρια και Κατακερµατισµός Σελίδα 34

Τελικό B+ έντρο Μετά την Εισαγωγή του 8* Root 17 5 13 24 30 2* 3* 5* 7* 8* 14* 16* 19* 20* 22* 24* 27* 29* 33* 34* 38* 39* Η ΡΙΖΑ διασ άστηκε οδηγώντας σε αύξηση του ύψους. Ευρετήρια και Κατακερµατισµός Σελίδα 35

Η ιαγραφή µιας καταχώρησης δεδοµένων (εγγραφής) Αρχίζοντας από τη Ρίζα, βρες το φύλλο Lόπου ανήκει η καταχώρηση ιάγραψε την καταχώρηση. Αν το L είναι τουλάχιστον µισό-γεµάτο, τελείωσες! Αν το L έχει λιγότερες από τις µισές καταχωρήσεις,» Προσπάθησε να κάνεις ανακατανοµή µε γειτονικό κόµβο (κόµβο µε τον ίδιο πατέρα του L) και άλλαξε τα κλειδιά των προγόνων όπου χρειάζεται» Αν η ανακατανοµή αποτύχει, συγχώνευσε το L και τον γειτονικό κόµβο και αφαίρεσε το split key από τον πατέρα Για εσωτερικούς κόµβους «κατεβάζω» το split key του πατέρα Η συγχώνευση µπορεί να φτάσει στη Ρίζα, µειώνοντας το ύψος του έντρου. Ευρετήρια και Κατακερµατισµός Σελίδα 36

ιαγραφή του 19* Root 17 5 13 24 30 2* 3* 5* 7* 8* 14* 16* 19* 20* 22* 24* 27* 29* 33* 34* 38* 39* Root 17 5 13 24 30 2* 3* 5* 7* 8* 14* 16* 20* 22* 24* 27* 29* 33* 34* 38* 39* Ευρετήρια και Κατακερµατισµός Σελίδα 37

ιαγραφή του 20* -Ανακατανοµή Root 17 5 13 24 30 2* 3* 5* 7* 8* 14* 16* 20* 22* 24* 27* 29* 33* 34* 38* 39* ΡΙΖΑ 17 5 13 27 30 2* 3* 5* 7* 8* 14* 16* 22* 24* 27* 29* 33* 34* 38* 39* Ευρετήρια και Κατακερµατισµός Σελίδα 38

ιαγραφή του 24* (1) ΡΙΖΑ 17 5 13 27 30 2* 3* 5* 7* 8* 14* 16* 22* 24* 27* 29* 33* 34* 38* 39* Απαιτείται ΣΥΓΧΩΝΕΥΣΗ! 30 22* 27* 29* 33* 34* 38* 39* Ευρετήρια και Κατακερµατισµός Σελίδα 39

ιαγραφή του 24* (2) ΡΙΖΑ 17 5 13 30 2* 3* 5* 7* 8* 14* 16* 22* 27* 29* 33* 34* 38* 39* Root 5 13 17 30 2* 3* 5* 7* 8* 14* 16* 22* 27* 29* 33* 34* 38* 39* Ευρετήρια και Κατακερµατισµός Σελίδα 40

εικτοδότηση Strings Κλειδιά µε strings µεταβλητού µεγέθους Μεταβλητός αριθµός δεικτών ανά κόµβο Χρησιµοποίηση χώρου ως κριτίριο για split Prefix compression Στους εσωτερικούς κόµβους τα κλειδιά αναζήτησης µπορούν να είναι προθέµατα (prefixes) του string» Κρατάω αρκετούς χαρακτήρες για να διαχωρίζονται οι τιµές E.g. Silas and Silberschatz can be separated by Silb Τα κλειδιά στα φύλλα συµπιέζονται µοιραζόµενα κοινά προθέµατα Ευρετήρια και Κατακερµατισµός Σελίδα 41

Bulk Loading and Bottom-Up Build Αν έχουµε πολλές εγγραφές και θέλουµε να δηµιουργήσουµε ένα B+ έντρο σε κάποιο γνώρισµα, χρησιµοποιώντας τις παραπάνω µεθόδους (εγγραφή προς εγγραφή) θα έχουµε µεγάλη καθυστέρηση Το Bulk Loading είναι εξαιρετικά πιο αποδοτικό Efficient alternative 1: Ταξινόµησε όλες τις καταχωρήσεις Εισαγωγή µε ταξινοµηµένη σειρά» Εισαγωγή σε block ήδη στη µνήµη (or cause a split)» Καλύτερο I/O Efficient alternative 2: Bottom-up B + -tree construction Ταξινόµησε όλες τις καταχωρήσεις Φτιάξε το δέντρο layer-by-layer, ξεκινώντας από τα φύλλα Ευρετήρια και Κατακερµατισµός Σελίδα 42

Σύνοψη του Bulk Loading Εναλλακτικός Τρόπος 1: Πολλαπλές Εισαγωγές Αργός εν καταλήγει σε σειριακή τοποθέτηση των φύλλων Εναλλακτικός Τρόπος 1 : Bulk Loading Πλεονεκτήµατα στη Λειτουργία (π.χ., έλεγχο συνδροµικότητας) Μικρότερος αριθµός από I/Os κατά την διάρκεια εισαγωγής Σειριακή τοποθέτηση των φύλλων στο ίσκο Ελέγχει καλύτερα τον παράγοντα πληρότητας Ευρετήρια και Κατακερµατισµός Σελίδα 43

Multiple-Key Access Χρήση πολλαπλών δεικτών για κάποια queries. Example: select ID from instructor where dept_name = Finance and salary = 80000 Πιθανές στρατηγικές: 1. Ευρετήριο για dept_name για να βρούµε καθηγητές στο Finance; ιαλέγω εγγραφές µε salary = 80000 2. Ευρετήριο για salary για να βρούµε καθηγητές µε µισθό $80000; ιαλέγω εγγραφές µε dept_name = Finance. 3. Ευρετήριο dept_name για να βρω καθηγητές στο Finance. Ευρετήριο salary για να βρούµε καθηγητές µε µισθό $80000. Παίρνουµε την τοµή Ευρετήρια και Κατακερµατισµός Σελίδα 44

είκτες σε πολλαπλά κλειδιά Composite search keys are search keys containing more than one attribute E.g. (dept_name, salary) Lexicographic ordering: (a 1, a 2 ) < (b 1, b 2 ) if either a 1 < b 1, or a 1 =b 1 and a 2 < b 2 Ευρετήρια και Κατακερµατισµός Σελίδα 45

είκτες σε πολλαπλά κλειδιά Αν έχουµε ευρετήριο στο (dept_name, salary). With the where clause where dept_name = Finance and salary = 80000 τότε το ευρετήριο (dept_name, salary) µας δίνει τις εγγραφές που ικανοποιούν και τα 2 κριτήρια Using separate indices in less efficient we may fetch many records (or pointers) that satisfy only one of the conditions. Can also efficiently handle where dept_name = Finance and salary < 80000 But cannot efficiently handle where dept_name < Finance and balance = 80000 May fetch many records that satisfy the first but not the second condition Ευρετήρια και Κατακερµατισµός Σελίδα 46