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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ EPL035: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ

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

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

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

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

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

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

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

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

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

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

Αρχεία και Βάσεις Δεδομένων

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

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

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

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

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

Πανεπιστήμιο Κρήτης, Τμήμα Επιστήμης Υπολογιστών. Δημήτρης Πλεξουσάκης. Physical DB Design

Συστήματα Διαχείρισης Βάσεων Δεδομένων

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

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 19/5/2007

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

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

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

AVL-trees C++ implementation

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

The challenges of non-stable predicates

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

Phys460.nb Solution for the t-dependent Schrodinger s equation How did we find the solution? (not required)

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

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

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

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

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

2 Composition. Invertible Mappings

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

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

Approximation of distance between locations on earth given by latitude and longitude

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΕΠΛ342: Βάσεις Δεδομένων. Χειμερινό Εξάμηνο Φροντιστήριο 10 ΛΥΣΕΙΣ. Επερωτήσεις SQL

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 6/5/2006

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

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

Ordinal Arithmetic: Addition, Multiplication, Exponentiation and Limit

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

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

Fractional Colorings and Zykov Products of graphs

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

Ακεραιότητα και Ασφάλεια Μέρος 1 Σχεδιασμός Βάσεων Δεδομένων

3.4 SUM AND DIFFERENCE FORMULAS. NOTE: cos(α+β) cos α + cos β cos(α-β) cos α -cos β

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

C.S. 430 Assignment 6, Sample Solutions

Example Sheet 3 Solutions

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

Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων. Εξάμηνο 7 ο

Αναζήτηση σε Γράφους. Μανόλης Κουμπαράκης. ΥΣ02 Τεχνητή Νοημοσύνη 1

Section 8.3 Trigonometric Equations

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 24/3/2007

Solutions to Exercise Sheet 5

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

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

EE512: Error Control Coding

HOMEWORK 4 = G. In order to plot the stress versus the stretch we define a normalized stretch:

Εργαστήριο 7: Ο αλγόριθμος ταξινόμησης Radix Sort

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

2. THEORY OF EQUATIONS. PREVIOUS EAMCET Bits.

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

Math 6 SL Probability Distributions Practice Test Mark Scheme

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

6.1. Dirac Equation. Hamiltonian. Dirac Eq.

Nowhere-zero flows Let be a digraph, Abelian group. A Γ-circulation in is a mapping : such that, where, and : tail in X, head in

Μηχανική Μάθηση Hypothesis Testing

ω ω ω ω ω ω+2 ω ω+2 + ω ω ω ω+2 + ω ω+1 ω ω+2 2 ω ω ω ω ω ω ω ω+1 ω ω2 ω ω2 + ω ω ω2 + ω ω ω ω2 + ω ω+1 ω ω2 + ω ω+1 + ω ω ω ω2 + ω

Block Ciphers Modes. Ramki Thurimella

Practice Exam 2. Conceptual Questions. 1. State a Basic identity and then verify it. (a) Identity: Solution: One identity is csc(θ) = 1

9.09. # 1. Area inside the oval limaçon r = cos θ. To graph, start with θ = 0 so r = 6. Compute dr

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

Transcript:

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

Βασικές έννοιες Οι μηχανισμοί δεικτοδότησης χρησιμοποιούνται για να επιταχύνουν την προσπέλαση σε επιθυμητά δεδομένα. π.χ., author catalog in library Κλειδί αναζήτησης (Search Key) χαρακτηριστικό αποτελούμενο από χαρακτηριστικά που χρησιμοποιούνται για να αναζητήσουμε εγγραφές σε ένα αρχείο. Ένα αρχείο ευρετηρίου (index file) αποτελείται από εγγραφές (καλούμενες είσοδοι ευρετηρίου) της μορφής Τα αρχεία δεικτοδότησης είναι τυπικά πολύ μικρότερα από το αρχικό αρχείο Δύο βασικά είδη ευρετηρίων: search-key pointer Ταξινομημένα ευρετήρια (Ordered indices): τα κλειδιά αναζήτησης αποθηκεύονται σε ταξινομημένη σειρά Ευρετήρια κατακερματισμού (Hash indices): κλειδιά αναζήτησης κατανέμονται ομοιόμορφα χρησιμοποιόντας μια hash function. Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 2

Μέτρα αξιολόγησης των Ευρετηρίων Τύποι προσπέλασης που υποστηρίζονται αποδοτικά. π.χ. Εγγραφές με μία συγκεκριμένη τιμή σε ένα χαρακτηριστικό ή εγγραφες με τιμή χαρακτηριστικού που εμπίπτει σε συγκεκριμένα όρια τιμών. Χρόνος προσπέλασης Χρόνος εισαγωγής Χρόνος διαγραφής Επιπρόσθετος χώρος Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 3

Διατεταγμένα(Ταξινομημένα) ευρετήρια Σε ένα ταξινομημένο ευρετήριο, οι είσοδοι ευρετηρίου αποθηκεύονται ταξινομημένες με την τιμή του κλειδιού αναζήτησης. E.g., author catalog in library. Πρωτεύον ευρετήριο(primary index): σε ένα σειριακά ταξινομημένο αρχείο, το ευρετήριο του οποίου το κλειδί αναζήτησης καθορίζει τη σειριακή ταξινόμηση αρχείου. Καλείται και clustering index Το κλειδί αναζήτησης ενός πρωτεύοντος ευρετηρίου είναι συνήθως αλλά όχι απαραίτητα το πρωτεύον κλειδί. Δευτερεύον ευρετήριο (Secondary index): ένα ευρετήριο του οποίου το κλειδί αναζήτησης καθορίζει μία ταξινόμηση διαφορετική από τη σειριακή ταξινόμηση του αρχείου. Καλείται επίσης non-clustering index. Αρχείο σειριακού ευρετηρίου (Index-sequential file): ταξινομημένο ακολουθιακό αρχείο με πρωτεύον ευρετήριο. Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 4

Σειριακό αρχείο για τις εγγραφές του πίνακα account Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 5

Πυκνά αρχεία ευρετήρια Πυκνό ευρετήριο(dense index) Μία εγγραφή ευρετηρίου εμφανίζεται για κάθε τιμή κλειδιού αναζήτησης στο αρχείο. Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 6

Αραιά αρχεία ευρετήρια Αραιό ευρετήριο (Sparse Index): περιέχει εγγραφές ευρετηρίου για μερικές μόνο τιμές των κλειδιών αναζήτησης. Εφαρμόζεται όταν οι εγγραφές είναι σειριακά ταξινομημένες με βάση το κλειδί αναζήτησης Για να τοποθετήσουμε μια εγγραφή με κλειδί αναζήτησης Κ: Βρές την εγγραφή ευρετηρίου με το μεγαλύτερο κλειδί αναζήτησης < K Αναζήτηση του αρχείου ακολουθιακά ξεκινώντας από την εγγραφή στην οποία δείχνει η εγγραφή ευρετηρίου Λιγότερος χώρος και χαμηλότερο κόστος συντήρησης για εισαγωγές και διαγραφές. Γενικά πιο αργό από το πυκνό ευρετήριο για την εύρεση εγγραφών. Good tradeoff: αραιό ευρετήριο με μία είσοδο δείκτη για κάθε block σε αρχείο, αντιστοιχεί στην ελάχιστη τιμή κλειδιού αναζήτησης σ ενα block (least search-key value in the block.) Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 7

Παράδειγμα αραιού ερευτηρίου Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 8

Πολλών επιπέδων ευρετήριο Εάν το πρωτεύον ευρετήριο δεν χωράει στη μνήμη, η προσπέλαση γίνεται ακριβή. Για να μειώσουμε τον αριθμό προσπελάσεων στις εγγραφές ευρετηρίου, χειριζόμαστε το πρωτεύον ευρετήριο σαν ένα σεριακό αρχείο και κατασκευάζουμε ένα αραιό ευρετήριο πάνω σ αυτο. Εξωτερικό ευρετήριο(outer index) a sparse index of primary index Εσωτερικό ευρετήριο(inner index) the primary index file Εάν ακόμα το εξωτερικό ευρετήριο είναι πολύ μεγάλο για να χωρέσει στη κύρια μνήμη, μπορεί να δημιουργηθεί ένα ακόμα επίπεδο ευρετηρίου κ.ο.κ. Ευρετηρία όλων των επιπέδων πρέπει να ενημερώνονται κατά την εισαγωγή ή διαγραφή από το αρχείο. Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 9

Πολλών επιπέδων ευρετήριο (συνέχεια) Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 10

Ενημέρωση ευρετηρίου: Διαγραφή Διαγραφή σε ευρετήριο ενός επιπέδου: Πυκνά ευρετήρια Εάν η εγγραφή που διαγράφουμε ήταν η μόνη εγγραφή στο αρχείο με την συγκεκριμένη τιμή αναζήτησης κλειδιού, το κλειδί αναζήτησης διαγράφεται επίσης από το αρχείο. Διαφορετικά Η εγγραφή ευρετηρίου περιέχει δείκτες σε όλες τις εγγραφές με την ίδια τιμή κλειδιού Διαγραφή αντίστοιχης εισόδου ευρετηρίου από το ευρετήριο Η εγγραφή ευρετηρίου περιέχει δείκτες στην πρώτη εγγραφή με τη συγκεκριμένη τιμή κλειδιού Αν η διαγραμμένη ήταν η 1 η εγγραφή με τη συγκεκριμένη τιμή κλειδιού, η εγγραφή ευρετηρίου ενημερώνεται να δείχνει στην επόμενη εγγραφή Αραιά ευρετήρια έαν η είσοδος για την τιμή του κλειδιού αναζήτησης υπάρχει στο ευρετήριο, αντικαθιστούμε την εγγραφή στο ευρετήριο με το επόμενη τιμή του κλειδιού αναζήτησης στο αρχείο (με τη σειρά του κλειδιού αναζήτησης). Εάν η επόμενη τιμή του κλειδιού αναζήτησης υπάρχει ήδη, η εγγραφή διαγράφεται αντί να αντικατασταθεί. Η εγγραφή ευρετηρίου για την συγκεκεριμένη τιμή κλειδιού δείχνει στην εγγραφή που θα διαγραφεί το σύστημα ενημερώνει την εγγραφή ευρετηρίου για να δείχνει στην επόμενη εγγραφή με την ίδια τιμή κλειδιού Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 11

Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 12

Ενημέρωση ευρετηρίου: Εισαγωγή Εισαγωγή σε ενός επιπέδου ευρετήριο: Αναζήτηση χρησιμοποιώντας τη τιμή του κλειδιού αναζήτησης που εμφανίζεται στην εγγραφή που πρόκειται να εισάγουμε. Πυκνά ευρετήρια Εάν η τιμή του κλειδιού αναζήτησης δεν εμφανίζεται στο ευρετήρο, εισήγαγε το. Αραιά ευρετήρια Εάν ένα ευρετήριο αποθηκεύει μία είσοδο για κάθε block του αρχείου, δεν χρειάζεται να γίνει καμμιά αλλαγή στο ευρετήριο εκτός εάν δημιουργηθεί ένα νέο block. Σ αυτή την περίπτωση, η πρώτη τιμή κλειδιού αναζήτησης που εμφανίζεται σε ένα νέο block εισάγεται στο ευρετήριο. Πολλαπλών επιπέδων αλγόριθμοι εισαγωγής (διαγραφής) είναι απλές επεκτάσεις των ενός επιπέδου αλγορίθμων Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 13

Δευτερεύοντα ευρετήρια Κάποιος θέλει να βρει όλες τις εγγραφές των οποίων οι τιμές σε συγκεκριμένα πεδία (τα οποία δεν είναι το πρωτεύον κλειδί του πρωτεύοντος ευρετηρίου) ικανοποιούν κάποια συνθήκη. Example 1: In the account database stored sequentially by account number, we may want to find all accounts in a particular branch Example 2: as above, but where we want to find all accounts with a specified balance or range of balances Μπορούμε να έχουμε ένα δευτερεύον ευρετήριο με μία εγγραφή ευρετηρίου για κάθε τιμή κλειδιού αναζήτησης; η εγγραφή του ευρετηρίου δειχνει στο bucket το οποίο περιέχει δείκτες σε όλες τις πραγματικές εγγραφές με τη συγκεκριμένη τιμή του κλειδιού αναζήτησης. Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 14

Δευτερεύον Ευρετήριο στο πεδίο balance του πίνακα account Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 15

Πρωτεύοντα και δευτερεύοντα ευρετήρια Δευτερεύοντα ευρετήρια Πυκνά. Ευρετήρια προσφέρουν σημαντικά πλεονεκτήματα όταν αναζητούμε εγγραφές. Όταν τροποποιείται ένα αρχείο, κάθε ευρετήριο πάνω σε ένα αρχείο μπορεί να ενημερωθεί. Η ενημέρωση ευρετηρίων έχει ένα πρόσθετο κόστος στην τροποποίηση της βάσης δεδομένων. Ακολουθιακή αναζήτηση χρησιμοποιώντας πρωτεύον ευρετήριο είναι αποδοτική, αλλά η ακολουθιακή αναζήτηση χρησιμοποιώντας ένα δευτερεύον ευρετήριο είναι ακριβή Κάθε προσπέλαση εγγραφής μπορεί να φέρνει ένα νέο block από το δίσκο Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 16

B + -Tree Index Files B + -tree ευρετήρια είναι εναλλακτικές λύσεις των αρχείων σειριακού ευρετηρίου Μειονεκτήματα των σειριακών αρχείων: η απόδοση περιορίζεται όσο αυξάνεται το μέγεθος αρχείου, δημιουργία πολλών blocks υπερχείλισης. Περιοδική αναδιοργάνωση ολόκληρου του αρχείου. Πλεονεκτήματα ευρετηρίων B + -tree : αυτόματη αναδιοργάνωση του ίδιου του ευρετηρίου με μικρές τοπικές αλλαγές Μειονέκτημα B + -trees: επιπλέον κόστος κατά την εισαγωγή και διαγραφή, απαιτεί επιπλέον χώρο. B + -trees χρησιμοποιούνται ευρεώς: Πλεονεκτήματα >> μειονεκτήματα Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 17

B + -Tree Index Files (Cont.) B + -tree είναι ένα δέντρο το οποίο έχει τις ακόλουθες ιδιότητες Όλα τα μονοπάτια από τη ρίζα προς τα φύλλα είναι ίδιου μήκους Κάθε κόμβος εκτός από τη ρίζα και τα φύλλα έχει τουλάχιστον [n/2] υποδέντρα (παιδιά) και [n/2] -1 κλειδιά Κάθε κόμβος έχει το πολύ n-υποδέντρα και n-1 κλειδιά Η ρίζα έχει τουλάχιστον δύο υποδέντρα και 1 κλειδί Ένας κόμβος φύλλο έχει μεταξύ [(n-1)/2] και n 1 κλειδιά Όλα τα φύλλα βρίσκονται στο ίδιο επίπεδο Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 18

B + -Tree Δομή κόμβου Τυπικός κόμβος K i are the search-key values P i are pointers to children (for non-leaf nodes) or pointers to records or buckets of records (for leaf nodes). The search-keys in a node are ordered K 1 < K 2 < K 3 <... < K n 1 Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 19

Κόμβοι φύλλα σε B + -Trees Δείχνει στην εγγραφή αρχείου με κλειδί Brighton Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 20

Κόμβοι σε B + -Trees Οι κόμβοι που δεν είναι φύλλα αποτελούν ένα πολλαπλών επιπέδων αραιό ευρετήριο πάνω στους κόμβους φύλλα. Τα κλειδία αναζήτησης στο υποδέντρο του P 1 < Κ 1 K n-2 <Τα κλειδία αναζήτησης στο υποδέντρο του P n-1 < Κ n-1 Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 21

Παράδειγμα ενός B + -tree B + -tree for account file (n = 3) Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 22

Παράδειγμα B + -tree B + -tree for account file (n = 5) Leaf nodes must have between 2 and 4 values ( (n 1)/2 and n 1, with n = 5). Non-leaf nodes other than root must have between 3 and 5 children ( (n/2 and n with n =5). Root must have at least 2 children. Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 23

Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 24

Ερωτήσεις σε B + -Trees Βρες όλες τις εγγραφές με τιμή κλειδιού k. Βήματα αλγορίθμου αναζήτησης 1. Start with the root node 1. Examine the node for the smallest searchkey value > k. 2. If such a value exists, assume it is K j. Then follow P i to the child node 3. Otherwise k K m 1, where there are m pointers in the node. Then follow P m to the child node. 2. If the node reached by following the pointer above is not a leaf node, repeat the above procedure on the node, and follow the corresponding pointer. 3. Eventually reach a leaf node. If for some i, key K i = k follow pointer P i to the desired record or bucket. Else no record with search-key value k exists. Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 25

Εισαγωγή Βρες το κατάλληλο κόμβο φύλλο για να εισάγεις το κλειδί Εάν είναι πλήρες: Δημιούργησε έναν νέο κόμβο Διαίρεσε τα περιεχόμενα του, και Εισήγαγε το κλειδί διαχωριστή στον κόμβο πατέρα Εάν ο πατέρας είναι πλήρης Δημιούργησε έναν νέο κόμβο και διαίρεσε με τον ίδιο τρόπο Συνέχισε προς τα πάνω εάν είναι απαραίτητο Εάν η ρίζα διαιρείται δημιούργησε έναν νέο κόμβο με δύο υπό-δέντρα Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 26

Παράδειγμα B+-Trees Εισαγωγή (1) Οι σελίδες δεδομένων δεν αποθηκεύουν δείκτες όπως συμβαίνει με τους κόμβους που δεν είναι φύλλα Αλλά συνδέονται μεταξύ τους Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 27

Παράδειγμα B+-Trees Εισαγωγή (2) Εισαγωγή 55 με διαίρεση σελίδας Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 28

Παράδειγμα B+-Trees Εισαγωγή (3) Εισαγωγή του 57 Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 29

Παράδειγμα B+-Trees Εισαγωγή (4) Εισαγωγή του 55 Διαίρεση σε δύο φύλλα Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 30

Παράδειγμα B + -Trees Εισαγωγή (5) B + -Tree before and after insertion of Clearview Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 31

Διαγραφή Βρες και διέγραψε το κλειδί από το φύλλο Εάν το φύλλο έχει < n/2 κλειδιά Δανεισμός εάν οι κόμβοι γείτονες έχουν περισσότερα από n/2 κλειδία (o διαχωριστής κλειδί μπορεί να αλλάξει) ή Συγχώνευση με γείτονα εάν και οι δύο έχουν < n κλειδιά προκαλεί διαγραφή του διαχωριστή στον κόμβο πατέρα Ενημέρωση του κόμβου πατέρα Συνέχισε προς τα πάνω εάν ο κόμβος πατέρας δεν είναι ρίζα και έχει λιγότερα από n/2 κλειδιά Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 32

Παράδειγμα B+-Tree διαγραφή(1) Διαγραφή 84 με δανεισμό Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 33

Παράδειγμα B + -Tree διαγραφή(2) The removal of the leaf node containing Downtown did not result in its parent having too little pointers. So the cascaded deletions stopped with the deleted leaf node s parent. Before and after deleting Downtown Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 34

Παράδειγμα B + -Tree διαγραφή (3) Node with Perryridge becomes underfull (actually empty, in this special case) and merged with its sibling. As a result Perryridge node s parent became underfull, and was merged with its sibling (and an entry was deleted from their parent) Root node then had only one child, and was deleted and its child became the new root node Deletion of Perryridge from result of previous example Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 35

Παράδειγμα B + -Tree διαγραφή (4) Before and after deletion of Perryridge from earlier example Parent of leaf containing Perryridge became underfull, and borrowed a pointer from its left sibling Search-key value in the parent s parent changes as a result Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 36

B + -Tree Οργάνωση αρχείου Το πρόβλημα μείωσης απόδοσης σε αρχεία δεδομένων λύνεται χρησιμοποιώντας Οργάνωση Αρχείων B + -Tree. Οι κόμβοι φύλλα σε μία B + -tree οργάνωση αρχείου αποθηκεύει εγγραφές, αντί δείκτες. Εγγραφές μεγαλύτερες από δείκτες ο μέγιστος αριθμός εγγραφών που μπορούν να αποθηκευτούν σε ένα φύλλο είναι μικρότερος από τον αριθμό δεικτών σε ένα κόμβο. Οι κόμβοι κλειδιά απαιτείται να είναι κατά το ήμισυ γεμάτοι. Εισαγωγές και διαγραφές διαχειρίζονται με τον ίδο τρόπο όπως και σε ένα B + -tree ευρετήριο. Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 37

B + -Tree Οργάνωση αρχείου (2) Example of B + -tree File Organization Good space utilization important since records use more space than pointers. To improve space utilization, involve more sibling nodes in redistribution during splits and merges Involving 2 siblings in redistribution (to avoid split / merge where possible) results in each node having at least 2n / 3 entries Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 38

B-Tree αρχεία ευρετηρίων (1) Παρόμοια με τα B+-tree, αλλά τα B-tree επιτρέπουν οι τιμές κλειδιού αναζήτησης να εμφανίζονται μόνο μία φορά; Περιορίζει επαναλαμβανόμενη αποθήκευση των τιμών των κλειδιών αναζήτησης. Τα κλειδιά αναζήτησης σε κόμβους που δεν είναι φύλλα δεν εμφανίζονται πουθενά αλλού εκτός από το B-tree Ένα επιπρόσθετο πεδίο δείκτη για κάθε κλειδί αναζήτησης σε ένα κόμβο που δεν είναι φύλλο. α) Generalized B-tree leaf node β) Nonleaf node pointers B i are the bucket or file record pointers. Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 39

Παράδειγμα B-Tree αρχεία ευρετηρίων B-tree (above) and B+-tree (below) on same data Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 40

B-Tree αρχεία ευρετηρίων (2) Πλεονεκτήματα ευρετηρίων B-Tree : Μπορεί να χρησιμοποιήσει λιγότερους κόμβους από το αντίστοιχο B + - Tree. Μπορεί να βρούμε τη τιμή του κλειδιού αναζήτησης πριν φτάσουμε στο φύλλο. Μειονεκτήματα ευρετηρίων B-Tree : Μόνο ένα μικρό ποσοστό από όλες τις τιμές αναζήτησης κλειδιού μπορούν να βρεθούν νωρίς Λιγότερα κλειδιά σε κόμβους που δεν είναι φύλλα B-Trees μεγαλύτρεο βάθος από τα B + -Tree υψηλότερο κόστος αναζήτησης Εισαγωγές και διαγραφές πιο πολύπλοκες από αυτές σε B + -Trees Πλεονεκτήματα B-Trees δεν εξισορροπούν τα μειονεκτήματα Οι προγραμματιστές ΒΔ προτιμούν B + -Tree Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 41