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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

9. Φυσική Οργάνωση Αρχείων στο Δίσκο & Ευρετήρια

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο 13. Αποθήκευση σε ίσκους, Βασικές οµέςαρχείων, και Κατακερµατισµός. ιαφάνεια 13-1

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο 13. Αποθήκευση σε Δίσκους, Βασικές Δομές Αρχείων, και Κατακερματισμός

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Advanced Data Indexing

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

Αποθήκευση Δεδοµένων

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

Συστήματα Πολυμέσων. Υπερκείμενα & Υπερμέσα A

Λειτουργικά Συστήματα Κεφάλαιο 2 Οργάνωση Συστήματος Αρχείων 2.1 Διαχείριση Αρχείων και Σύστημα Αρχείων(File System)

ΤΙΤΛΟΣ ΕΡΓΑΣΙΑΣ. Πετρογεωργάκης Μανούσος Σπυρόπουλος Σταύρος

Σχεσιακό Μοντέλο Περιορισμοί Μετατροπή ER σε Σχεσιακό Παράδειγμα.. Εργαστήριο Βάσεων Δεδομένων. Relational Model

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

Πεδία (Attributes) Συσχετίσεις (Relationships) Κλειδιά (Identifiers) Οντότητες είναι υποψήφια αρχεία

Λειτουργικά Συστήματα Ι. Καθηγήτρια Παπαδάκη Αναστασία

Αποθήκευση Δεδοµένων

Transcript:

Ευρετήρια 1 Ευρετήρια Ένα ευρετήριο (index) είναι μια βοηθητική δομή αρχείου που κάνει πιο αποδοτική την αναζήτηση μιας εγγραφής σε ένα αρχείο Το ευρετήριο καθορίζεται (συνήθως) σε ένα γνώρισμα του αρχείου που καλείται πεδίο ευρετηριοποίησης (indexing field) γνώρισμα Αρχείο Ευρετηρίου γνώρισμα υπόλοιπα γνωρίσματα Αρχείο εδομένων Εγγραφή στο ευρετήριο: Τιμή Πεδίου Ευρετηριοποίησης είκτης στο block της εγγραφής 2 : Ευρετήρια 1

Ευρετήρια Στόχος: αποδοτικές λειτουργίες αναζήτησης Οι λειτουργίες ενημέρωσης γίνονται γενικά πιο αργές, γιατί απαιτούν ενημέρωση και του ευρετηρίου ιαφορετικού τύπου εγγραφές ανάλογα με το πεδίο ευρετηριοποίησης: (α) πεδίο διάταξης του αρχείου ή όχι (β) κλειδί ή όχι (πρωτεύον/δευτερεύον) διαφορετικοί ορισμοί στα βιβλία 3 Ευρετήρια Πυκνό ευρετήριο: μια καταχώρηση για κάθε εγγραφή του αρχείου Μη πυκνό ευρετήριο : Ευρετήρια 2

Πρωτεύον Ευρετήριο Πρωτεύον ευρετήριο (primary index): ορισμένο στο κλειδί διάταξης του αρχείου Για κάθε block του αρχείου (μη πυκνό ευρετήριο) η εγγραφή i του ευρετηρίου είναι της μορφής (<Κ(i), P(i)>) όπου: Κ(i): η τιμή του πρωτεύοντος κλειδιού της πρώτης εγγραφής του block (άγκυρα του block) P(i): δείκτηςπροςτοblock Το ευρετήριο στο πεδίο διάταξης (+ κλειδί) είναι ένα μη πυκνό ευρετήριο 5 Πρωτεύον Ευρετήριο Αρχείο Ευρετηρίου Αρχείο εδομένων Ποιο είναι το μέγεθος του ευρετηρίου (πόσα blocks); 6 : Ευρετήρια 3

Πρωτεύον Ευρετήριο Παράδειγμα (υπολογισμός μεγέθους αρχείου ευρετηρίου) Έστω διατεταγμένο αρχείο με r A = 30.000 εγγραφές, μέγεθος block B = 102 bytes, σταθερού μεγέθους εγγραφές μεγέθους R A = 100 bytes, όπου το πεδίο κλειδιού διάταξης έχει μέγεθος V A = 9 bytes, μη εκτεινόμενη καταχώρηση. Κατασκευάζουμε πρωτεύον ευρετήριο, μέγεθος δείκτη block P = 6 bytes Μέγεθος αρχείου δεδομένων: 3.000 blocks Μέγεθος αρχείου ευρετηρίου: 5 blocks 7 Πρωτεύον Ευρετήριο Αναζήτηση υαδική αναζήτηση στο πρωτεύον ευρετήριο Ανάγνωση του block απότοαρχείοδεδομένων 8 : Ευρετήρια

Παράδειγμα (υπολογισμός κόστους αναζήτησης) εδομένα όπως πριν Πρωτεύον Ευρετήριο (Έστω διατεταγμένο αρχείο με r A = 30.000 εγγραφές, μέγεθος block B = 102 bytes, σταθερού μεγέθους εγγραφές μεγέθους R A = 100 bytes, όπου το πεδίο κλειδιού διάταξης έχει μέγεθος V A = 9 bytes, μη εκτεινόμενη καταχώρηση. Κατασκευάζουμε πρωτεύον ευρετήριο, μέγεθος δείκτη block P = 6 bytes) Μέγεθος αρχείου δεδομένων: 3.000 blocks Μέγεθος αρχείου ευρετηρίου: 5 blocks Αναζήτηση χωρίς ευρετήριο: log 3.000 = 12 blocks Αναζήτηση με ευρετήριο: log 5 + 1 = 7 blocks bfr A = 10 bfr E = 68 υαδική γιατί το αρχείο ταξινομημένο block ευρετηρίου block αρχείου 9 Πρωτεύον Ευρετήριο Εισαγωγή εγγραφής αλλαγές και στο πρωτεύον ευρετήριο μη διατεταγμένο αρχείο υπερχείλισης συνδεδεμένη λίστα εγγραφών υπερχείλισης ιαγραφή εγγραφής αλλαγές και στο πρωτεύον ευρετήριο χρήση σημαδιών διαγραφής 10 : Ευρετήρια 5

Ευρετήρια Access paths (μονοπάτια προσπέλασης) Το ευρετήριο αρχείου είναι (πάντα) ένα διατεταγμένο αρχείο με σταθερού μήκους εγγραφές Το αρχείο ευρετηρίου καταλαμβάνει μικρότερο χώρο απότοίδιοτο αρχείο δεδομένων (οι καταχωρήσεις είναι μικρότερες και λιγότερες) Κάνοντας δυαδική αναζήτηση στο ευρετήριο (γιατί το ευρετήριο είναι διατεταγμένο αρχείο) βρίσκουμε τον δείκτη στο block όπου αποθηκεύεται η εγγραφή που θέλουμε 11 Ευρετήριο Συστάδων Ευρετήριο συστάδων (clustering index): ορισμένο στο πεδίο διάταξης [το οποίο όμως δεν είναι κλειδί] Υπάρχει μια εγγραφή για κάθε διακεκριμένη τιμή του πεδίου διάταξης (συστάδας) του αρχείου που περιέχει: την τιμή αυτή ένα δείκτη προς το πρώτο block του αρχείου δεδομένων που περιέχει μια εγγραφή με την τιμή αυτή στο πεδίο συστάδας Το ευρετήριο στο πεδίο διάταξης (+ όχι κλειδί) είναι ένα μη πυκνό ευρετήριο 12 : Ευρετήρια 6

Ευρετήριο Συστάδων Ευρετήριο συστάδων ή συγκροτημένο ευρετήριο Όταν η διάταξη του ευρετηρίου ακολουθεί αυτή του αρχείου δεδομένων 13 Παράδειγμα (υπολογισμός μεγέθους ευρετηρίου) Ευρετήριο Συστάδων Έστω διατεταγμένο αρχείο με r A = 30.000 εγγραφές, μέγεθος block B = 102 bytes, σταθερού μεγέθους εγγραφές μεγέθους R A = 100 bytes, μη εκτεινόμενη καταχώρηση, όπου το πεδίο διάταξης έχει μέγεθος V A = 9 bytes και υπάρχουν 1000 διαφορετικές τιμές και οι εγγραφές είναι ομοιόμορφα κατανεμημένες ως προς τις τιμές αυτές. Υποθέτουμε ότι χρησιμοποιούνται άγκυρες block, κάθε νέα τιμή του πεδίου διάταξης αρχίζει στην αρχή ενός νέου block. Κατασκευάζουμε ευρετήριο συστάδων, μέγεθος δείκτη block P = 6 bytes Μέγεθος αρχείου δεδομένων: 3.000 blocks Μέγεθος ευρετηρίου συστάδων: 15 blocks bfr A = 10 bfr E = 68 1 : Ευρετήρια 7

Ευρετήριο Συστάδων Αναζήτηση (όπως πριν) υαδική αναζήτηση στο ευρετήριο Ανάγνωση blocks (τώρα μπορεί να είναι παραπάνω από ένα) απότοαρχείοδεδομένων 15 Παράδειγμα (υπολογισμός κόστους αναζήτησης) Ευρετήριο Συστάδων (στοιχεία όπως πριν) Έστω διατεταγμένο αρχείο με r Α = 30.000 εγγραφές, μέγεθος block B = 102 bytes, σταθερού μεγέθους εγγραφές μεγέθους R Α = 100 bytes, μη εκτεινόμενη καταχώρηση, όπου το πεδίο διάταξης έχει μέγεθος V Α = 9 bytes και υπάρχουν 1000 διαφορετικές τιμές και οι εγγραφές είναι ομοιόμορφα κατανεμημένες ως προς τις τιμές αυτές. Υποθέτουμε ότι χρησιμοποιούνται άγκυρες block, κάθε νέα τιμή του πεδίου διάταξης αρχίζει στην αρχή ενός νέου block. Κατασκευάζουμε ευρετήριο συστάδων, μέγεθος δείκτη block P = 6 bytes Μέγεθος αρχείου δεδομένων: 3.000 blocks Μέγεθος αρχείου ευρετηρίου: 15 blocks Αναζήτηση χωρίς ευρετήριο: log 3.000 + ταιριάσματα (= 3) 15 blocks Αναζήτηση με ευρετήριο: log 15 + 3 = 7 blocks 16 : Ευρετήρια 8

ευτερεύον Ευρετήριο ευτερεύον ευρετήριο (secondary index): ορισμένο σε πεδίο διαφορετικό του πεδίου διάταξης 17 ευτερεύον Ευρετήριο Περίπτωση 1: Το πεδίο ευρετηριοποίησης είναι κλειδί (καλείται και δευτερεύον κλειδί) Υπάρχει μια εγγραφή για κάθε εγγραφή του αρχείου που περιέχει: την τιμή του κλειδιού για αυτήν την εγγραφή ένα δείκτη προς το block (ή την εγγραφή) του αρχείου δεδομένων που περιέχει την εγγραφή με την τιμή αυτή Το ευρετήριο σε πεδίο ΟΧΙ διάταξης (+ κλειδί) είναι ένα πυκνό ευρετήριο 18 : Ευρετήρια 9

ευτερεύον Ευρετήριο Παράδειγμα (υπολογισμός μεγέθους ευρετηρίου) Έστω αρχείο με r Α = 30.000 εγγραφές, μέγεθος block B = 102 bytes, σταθερού μεγέθους εγγραφές μεγέθους R Α = 100 bytes, μη εκτεινόμενη καταχώρηση, όπου το πεδίο κλειδιού έχει μέγεθος V Α = 9 bytes αλλά δεν είναι πεδίο διάταξης. Κατασκευάζουμε δευτερεύον ευρετήριο, μέγεθος δείκτη block P = 6 bytes Μέγεθος αρχείου δεδομένων: 3.000 blocks Μέγεθος αρχείου ευρετηρίου: 2 blocks 5 για πρωτεύον 19 ευτερεύον Ευρετήριο Παράδειγμα (υπολογισμός κόστους αναζήτησης) Στοιχεία όπως πριν (Έστω αρχείο με r Α = 30.000 εγγραφές, μέγεθος block B = 102 bytes, σταθερού μεγέθους εγγραφές μεγέθους R Α = 100 bytes, μη εκτεινόμενη καταχώρηση, όπου το πεδίο κλειδιού έχει μέγεθος V Α = 9 bytes αλλά δεν είναι πεδίο διάταξης. Κατασκευάζουμε δευτερεύον ευρετήριο, μέγεθος δείκτη block P = 6 bytes) Μέγεθος αρχείου δεδομένων: 3.000 blocks Μέγεθος αρχείου ευρετηρίου: 2 blocks bfr A = 10 bfr E = 68 Αναζήτηση χωρίς ευρετήριο (σειριακή αναζήτηση, γιατί το αρχείο δεδομένων δεν είναι ταξινομημένο): 3.000/2 = 1500 blocks (κατά μέσο όρο) Αναζήτηση με ευρετήριο: log 2 + 1 = 10 blocks Για πρωτεύον ήταν 5 και 7 blocks αντίστοιχα 20 : Ευρετήρια 10

ευτερεύον Ευρετήριο Περίπτωση 2: Το πεδίο ευρετηριοποίησης δεν είναι κλειδί 1. Πυκνό ευρετήριο: μία καταχώρηση για κάθε εγγραφή 2. Μεταβλητού μήκους εγγραφές με ένα επαναλαμβανόμενο πεδίο για το δείκτη 3. Μία εγγραφή ευρετηρίου για κάθε τιμή του πεδίου ευρετηριοποίησης + ένα ενδιάμεσο επίπεδο για την διαχείριση των πολλαπλών δεικτών 21 ευτερεύον Ευρετήριο Συστάδων Παράδειγμα (υπολογισμός μεγέθους ευρετηρίου) Έστω μη διατεταγμένο αρχείο (αρχείο σωρού) με r A = 30.000 εγγραφές, μέγεθος block B = 102 bytes, σταθερού μεγέθους εγγραφές μεγέθους R A = 100 bytes, μη εκτεινόμενη καταχώρηση, όπου το πεδίο ευρετηριοποίησης (δηλαδή, το πεδίο στο οποίο θα κατασκευάσουμε το ευρετήριο) έχει μέγεθος V A = 9 bytes. Υπάρχουν 1000 διαφορετικές τιμές και οι εγγραφές είναι ομοιόμορφα κατανεμημένες ως προς τις τιμές αυτές. Κατασκευάζουμε ευρετήριο συστάδων χρησιμοποιώντας την επιλογή (3), μέγεθος δείκτη block P = 6 bytes Ευρετήριο bfr Ε = 68 b E = 15 κόστος αναζήτησης; Ενδιάμεσο επίπεδο -- Ποια είναι η οργάνωση του; bfr ΕE = 170 b EE = 177 blocks 22 : Ευρετήρια 11

ευτερεύον Ευρετήριο Αναζήτηση υαδική αναζήτηση στο δευτερεύον ευρετήριο Ανάγνωση του block (ή τωνblocks) από το ενδιάμεσο επίπεδο Ανάγνωση των blocks (συνήθως τόσα όσες οι εγγραφές που ταιριάζουν) από το αρχείο δεδομένων Εισαγωγή Απλή αν δεν αφορά εισαγωγή νέας τιμής στο ευρετήριο 23 Ευρετήρια Επιπρόσθετες δομές για την πιο αποδοτική εκτέλεση ερωτήσεων/αναζητήσεων προκαλούν όμως επιβάρυνση στις τροποποιήσεις Εύκολη η λογική διάταξη των εγγραφών με βάση το πεδίο ευρετηριοποίησης Ανακτήσεις με σύνθετες συνθήκες, μπορεί να γίνουν χρησιμοποιώντας τα blocks του ευρετηρίου 2 : Ευρετήρια 12

Ευρετήριο Πολλών Επιπέδων Ιδέα: Τα ευρετήρια είναι αρχεία - χτίζουμε ευρετήρια πάνω στα αρχεία ευρετηρίου Το αρχείο είναι διατεταγμένο και το πεδίο διάταξης είναι και κλειδί (άρα πρωτεύον ευρετήριο!) Υπενθύμιση (παράγοντας ομαδοποίησης: αριθμός εγγραφών ανά block) Παράγοντας ομαδοποίησης (blocking factor), όταν Β R bfr = (B / R), όπου Β μέγεθος block σε byte και R μέγεθος εγγραφής σε bytes 25 9 Ευρετήριο 3ου επιπέδου 1 33 9 69 86 129 12 Ευρετήριο 2ου επιπέδου 7 12 1 25 27 33 36 38 9 51 66 69 7 80 86 100 103 111 125 129 133 136 12 1 158 Αρχείο δεδομένων 36 Ευρετήριο 1ου επιπέδου (αρχικό ευρετήριο) 26 : Ευρετήρια 13

Ευρετήριο Πολλών Επιπέδων Έστω ότι το αρχείο ευρετηρίου είναι το πρώτο ή βασικό επίπεδο Έστω ότι ο παράγοντας ομαδοποίησης είναι f 0 και ότι έχει r 1 blocks Το αρχείο ευρετηρίου είναι διατεταγμένο και το πεδίο διάταξης είναι και κλειδί ημιουργούμε ένα πρωτεύον ευρετήριο για το ευρετήριο πρώτου επιπέδου - δεύτερο επίπεδο Παράγοντας ομαδοποίησης: f 0 Αριθμός block (r 1 /f 0 ) ημιουργούμε ένα πρωτεύον ευρετήριο για το ευρετήριο δεύτερου επιπέδου - τρίτο επίπεδο Παράγοντας ομαδοποίησης: f 0 Αριθμός block (r 1 /(f 0 ) 2 ) 27 Ευρετήριο Πολλών Επιπέδων Μέχρι πόσα επίπεδα: Μέχρι όλες οι εγγραφές του ευρετηρίου να χωρούν σε ένα block Έστω t κορυφαίο επίπεδο (top level) (r 1 /(f 0 ) t ) = 1 Το f 0 ονομάζεται και παράγοντας διακλάδωσης του ευρετηρίου 28 : Ευρετήρια 1

F O = 3 Επίπεδο Ρίζα (1 Block) 9 Ευρετήριο 3ου επιπέδου 1 33 9 69 86 129 12 Ευρετήριο 2ου επιπέδου 7 12 1 25 27 33 36 38 9 51 66 69 7 80 86 100 103 111 125 129 133 136 12 1 158 Αρχείο δεδομένων 36 Ευρετήριο 1ου επιπέδου (αρχικό ευρετήριο) 29 Ευρετήριο 3ου επιπέδου (επίπεδο ρίζας) 9 Ευρετήριο 2ου επιπέδου 12 129 86 69 9 33 1 είκτης στο αρχείο δεδομένων (ή στην περίπτωση αρχείου ενδιάμεσου επιπέδου σε αυτό) 7 12 1 25 27 33 36 38 9 51 66 69 7 80 86 100 103 111 125 129 133 136 12 1 158 Ευρετήριο 1ου επιπέδου (αρχικό ευρετήριο) Σημείωση: στο αρχικό ευρετήριο μπορεί να βάζουμε μία τιμή για κάθε εγγραφή του αρχείου δεδομένων (πυκνό ευρετήριο) ή μια εγγραφή για κάθε διακριτή τιμή κλπ ανάλογα με το τύπο του πεδίου ευρετηριοποίησης (κλειδί/πεδίο ταξινόμησης) 30 : Ευρετήρια 15

Ευρετήριο Πολλών Επιπέδων Αναζήτηση p := διεύθυνση του block του κορυφαίου επιπέδου του ευρετηρίου t := αριθμός επιπέδων του ευρετηρίου for j = t to 1 step -1 do read block με διεύθυνση p του ευρετηρίου στο επίπεδο j αναζήτηση στο block p της εγγραφής i με τιμή Κ j (i) K < K j (i+1) read το block του αρχείου δεδομένων με διεύθυνση p Aναζήτηση στο block p της εγγραφής i με τιμή Κ j (i) K < K j (i+1) 31 9 F O = 3 36 Ευρετήριο 3ου επιπέδου (επίπεδο ρίζας) 1 33 9 69 86 129 12 Ευρετήριο 2ου επιπέδου 7 12 1 25 27 33 36 38 9 51 66 69 7 80 86 100 103 111 125 129 133 136 12 1 158 Αρχείο δεδομένων 36 Ευρετήριο 1ου επιπέδου (αρχικό ευρετήριο) 32 : Ευρετήρια 16

Ευρετήριο Πολλών Επιπέδων Εισαγωγή/διαγραφή τροποποιήσεις πολλαπλών ευρετηρίων υναμικό πολυεπίπεδο ευρετήριο: Β-δέντρα και Β+-δέντρα 33 Ευρετήριο Πολλών Επιπέδων Παράδειγμα (υπολογισμός μεγέθους ευρετηρίου) Έστω αρχείο με r A = 30.000 εγγραφές, μέγεθος block B = 102 bytes, σταθερού μεγέθους εγγραφές μεγέθους R A = 100 bytes, μη εκτεινόμενη καταχώρηση, όπου το πεδίο κλειδιού έχει μέγεθος V A = 9 bytes αλλά δεν είναι πεδίο διάταξης. Κατασκευάζουμε δευτερεύον ευρετήριο, μέγεθος δείκτη block P= 6 bytes f 0 = (102 / (9 + 6)) = 68 Μέγεθος αρχείου δεδομένων: 3.000 blocks Μέγεθος αρχείου ευρετηρίου πρώτου επιπέδου: 2 blocks Μέγεθος αρχείου ευρετηρίου δεύτερου επιπέδου: (2 / 68) = 7 blocks Μέγεθος αρχείου ευρετηρίου τρίτου επιπέδου: (7 / 68) = 1 block Άρα t = 3 3 : Ευρετήρια 17

Ευρετήριο Πολλών Επιπέδων Παράδειγμα (υπολογισμός κόστους αναζήτησης) Έστω αρχείο με r A = 30.000 εγγραφές, μέγεθος block B = 102 bytes, σταθερού μεγέθους εγγραφές μεγέθους R A = 100 bytes, μη εκτεινόμενη καταχώρηση, όπου το πεδίο κλειδιού έχει μέγεθος V A = 9 bytes αλλά δεν είναι πεδίο διάταξης,. Κατασκευάζουμε δευτερεύον ευρετήριο, μέγεθος δείκτη block P = 6 bytes Άρα t = 3 Παράδειγμα t + 1 = προσπελάσεις Για το δευτερεύον ήταν 10 και χωρίς ευρετήριο 1500 35 Πολύ-επίπεδα Ευρετήρια Τα αρχεία ευρετηρίων είναι απλά αρχεία, άρα και σε αυτά μπορούν να οριστούν ευρετήρια Καταλήγουμε λοιπόν σε μια ιεραρχία δομών ευρετηρίων (πρώτο επίπεδο, δεύτερο επίπεδο, κλπ.) Κάθε επίπεδο του ευρετηρίου είναι ένα διατεταγμένο αρχείο, συνεπώς, εισαγωγές/διαγραφές εγγραφών απαιτούν επιπλέον δουλειά Ένα πολύ-επίπεδο ευρετήριο αποτελεί ένα έντρο Αναζήτησης Όπου κάθε κόμβος (block) έχει f 0 δείκτες και f 0 τιμές κλειδιού 36 : Ευρετήρια 18