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



Σχετικά έγγραφα
Βάσεις Δεδομένων ΙΙ Ενότητα 7

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Advanced Data Indexing

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

Advanced Data Indexing

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

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

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

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

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

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

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

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

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

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

Διάλεξη 23: Τεχνικές Κατακερματισμού II (Hashing)

Προηγμένη Ευρετηρίαση Δεδομένων (ΠΜΣ) Ενδεικτικές ερωτήσεις-θέματα για την εξέταση της θεωρίας

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

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

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

Ο ΑΤΔ Λεξικό. Σύνολο στοιχείων με βασικές πράξεις: Δημιουργία Εισαγωγή Διαγραφή Μέλος. Υλοποιήσεις

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

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

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

10. Πίνακες Κατακερματισμού

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

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

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

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

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

Διάλεξη 22: Τεχνικές Κατακερματισμού I (Hashing)

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

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

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

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

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

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

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

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

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

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

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

ΠΛΗ111. Ανοιξη Μάθηµα 8 ο. Αναζήτηση. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

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

Πίνακες Συμβόλων. εισαγωγή αναζήτηση επιλογή. εισαγωγή. αναζήτηση

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

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

Cuckoo Hashing. Αλγόριθμοι και Πολυπλοκότητα. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο

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

Δυναμικά Σύνολα. Δυναμικό σύνολο. Tα στοιχεία του μεταβάλλονται μέσω εντολών εισαγωγής και διαγραφής. διαγραφή. εισαγωγή

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

Δομές Δεδομένων. Κατακερματισμός. Δομές Δεδομένων & Αλγόριθμοι. Εργαστήριο Γνώσης και Ευφυούς Πληροφορικής 1

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

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

Διάλεξη 23: Τεχνικές Κατακερματισμού II (Hashing)

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

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

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

Διάλεξη 18: Τεχνικές Κατακερματισμού I (Hashing)

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

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

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

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

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

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

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

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

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

Δομές Αναζήτησης. εισαγωγή αναζήτηση επιλογή. εισαγωγή. αναζήτηση

Δυναμικά Σύνολα. Δυναμικό σύνολο. Tα στοιχεία του μεταβάλλονται μέσω εντολών εισαγωγής και διαγραφής. διαγραφή. εισαγωγή

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

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

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

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

ΕΝΟΤΗΤΑ 8 KATAKEΡΜΑΤΙΣΜΟΣ (HASHING)

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

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

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

Συναρτήσεις Κατακερματισμού και Πίνακες Κατακερματισμού

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

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

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

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

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική II. Ενότητα 6 : Δομές αρχείων. Δρ. Γκόγκος Χρήστος

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

Transcript:

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΙI Δομές Ευρετηρίων και Κατακερματισμός Αρχείων II Β. Μεγαλοοικονόμου Δ. Χριστοδουλάκης (παρουσίαση βασισμένη εν μέρη σε σημειώσεις των Silberchatz, Korth και Sudarshan και του C. Faloutsos)

Σύνοψη Ύλης Σχεσιακό μοντέλο (Relational model) -SQL Επίσημες (Formal) & Εμπορικές γλώσσες επερωτήσεων (commercial query languages) Συναρτησιακές Εξαρτήσεις (Functional Dependencies) Κανονικοποίηση (Normalization) Φυσικός Σχεδιασμός (Physical Design) Ευρετηριοποίηση (Indexing)

Ευρετηριοποίηση - Περιληπτικά ISAM and B-trees Κατακερματισμός(Hashing) Hashing vs B-trees Ευρετήρια στην SQL Προχωρημένα θέματα: Δυναμικός κατακερματισμός Ευρετηριοποίηση πολλαπλών γνωρισμάτων (multi-attribute indexing)

(Στατικός) Κατακερματισμός Πρόβλημα: Βρες την εγγραφή του ΥΠΑΛΛΗΛΟΥ με ΑΦΜ=123 Ερώτηση: Τι θα γινόταν εάν το κόστος αποθήκευσηςστονδίσκοδενήτανσημαντικό και ο χρόνος πολύ σημαντικός;

Κατακερματισμός Απάντηση: Εκπληκτική ιδέα: αντιστοίχηση κλειδιού σε διεύθυνση: #0 σελίδα 123; Σταύρου; Αιόλου #123 σελίδα #999,999,999

Κατακερματισμός Καθώς ο χώρος κοστίζει : Χρησιμοποίηση M, αντί για 999,999,999 σχισμές Συνάρτηση Κατακερματισμού: h(key) = slot-id #0 page 123; Σταύρου; Αιόλου #123 page #999,999,999

Κατακερματισμός Τυπικά : Κάθε κάδος κατακερματισμού διατηρεί πολλές εγγραφές : #0 page 123; Σταύρου; Αιόλου #h(123) M

Κατακερματισμός Παρατήρηση: μπορεί να υπάρξουν ομαδοποιημένες (clustering), ήαπλές (non-clustering) εκδόσεις: #0 page 123; Σταύρου; Αιόλου #h(123) M

Κατακερματισμός Παρατήρηση: μπορεί να υπάρξουν ομαδοποιημένες (clustering), ήαπλές(non- clustering) εκδόσεις: #0 page... Αρχείο ΥΠΑΛΛΗΛΟΙ #h(123) M... 123 234; Αντωνίου; Θράκης 123; Σταύρου; Αιόλου 345; Πέτρου; Δημοκρατίας......

Ευρετηριοποίηση- Περίληψη ISAM και B-trees Κατακερματισμός Συναρτήσεις κατακερματισμού Μέγεθος του πίνακα κατακερματισμού Επίλυση συγκρούσεων Κατακερματισμός vs B-trees Ευρετήρια σε SQL Προχωρημένα θέματα:

Επιλογές σχεδιασμού 1) Φόρμουλα h() ως συνάρτηση κατακερματισμού (hashing function) 2) Μέγεθος πίνακα κατακερματισμού M 3) Μέθοδος Επίλυσης συγκρούσεων (collision resolution method)

Επιλογές σχεδιασμού Συναρτήσεις Στόχος: Ο ομοιόμορφος διαμοιρασμός των κλειδιών στους κάδους κατακερματισμού Δημοφιλής Επιλογές: Κατακερματισμός με διαίρεση (Division hashing) Κατακερματισμός με πολλαπλασιασμό (Multiplication hashing)

Κατακερματισμός με διαίρεση h(x) = (a*x+b) mod M Π.χ., h(ssn) = (ssn) mod 1,000 Δίνει τα τρία τελευταία ψηφία του ssn M: μέγεθος size του πίνακα κατακερματισμού Επιλέγουμε επιφυλακτικά, έναν πρώτο αριθμό (Γιατί;)

Κατακερματισμός με διαίρεση Π.χ., M=2; Κατακερματισμό στο πεδίο: αριθμός-διπλώματος οδηγού (driver-license number) dln, του οποίου το τελευταίο ψηφίο είναι το φύλο (0/1 = M/F) Σε μια στρατιωτική μονάδα όπου η πλειοψηφία είναι άνδρες στρατιώτες Έτσι: για να αποφύγουμε περιπτώσεις όπου το Μ και τα κλειδιά έχουν κοινούς διαιρέτες επιλέγουμε Μ πρώτο αριθμό!

Κατακερματισμός με πολλαπλασιασμό h(x) = [ fractional-part-of ( x * φ ) ] * M φ: χρυσή αναλογία (golden ratio) ( 0.618... = ( sqrt(5)-1)/2 ) Γενικά, επιθυμούμε άρρητους αριθμούς Πλεονέκτημα: Το Μ Δεν χρειάζεται να είναι πρώτος αριθμός Αλλά ο φ πρέπει να είναι άρρητος

Άλλες συναρτήσεις κατακερματισμού Κατακερματισμός δευτέρου βαθμού (quadratic hashing) - κακή τεχνική... Συμπέρασμα: χρησιμοποιείστε κατακερματισμό με διαίρεση

Επιλογές σχεδιασμού 1) Φόρμουλα h() ως συνάρτηση κατακερματισμού (hashing function) 2) Μέγεθος πίνακα κατακερματισμού M 3) Μέθοδος Επίλυσης συγκρούσεων (collision resolution method)

Μέγεθος του πίνακα κατακερματισμού Πχ., 50,000 υπάλληλοι, 10 εγγραφές υπαλλήλων ανά σελίδα Ερώτηση: M=?? Σελίδες/κάδοι/σχισμές

Μέγεθος του πίνακα κατακερματισμού Πχ., 50,000 υπάλληλοι, 10 εγγραφές υπαλλήλων ανά σελίδα Ερώτηση: M=?? Σελίδες/κάδοι/σχισμές Απάντηση: Χρησιμοποίηση ~ 90% και M: πρώτος αριθμός Π.χ., στην περίπτωση που εξετάζουμε : M= ο εγγύτερος πρώτος στο 50,000/10/0.9 = 5,555

Επιλογές σχεδιασμού 1) Φόρμουλα h() ως συνάρτηση κατακερματισμού (hashing function) 2) Μέγεθος πίνακα κατακερματισμού M 3) Μέθοδος Επίλυσης συγκρούσεων (collision resolution method)

Επίλυση συγκρούσεων Ερώτηση: Πότε συμβαίνει μία σύγκρουση ; Απάντηση: ;;;

Επίλυση Συγκρούσεων #0 page 123; Σταύρου; Αιόλου #h(123) M

Επίλυση Συγκρούσεων Ερώτηση: Πότε συμβαίνει μία σύγκρουση ; Απάντηση: ;;; Ερώτηση: Γιατί να ανησυχούμε για συγκρούσεις/ υπερχειλίσεις; (θυμηθείτε ότι οι κάδοι είναι ~90% γεμάτοι) Απάντηση: Π.χ. Ένας τραπεζικός λογαριασμός ισορροπεί μεταξύ $0 και $10,000 και μεταξύ $90,000 και 100,000

Επίλυση Συγκρούσεων Ανοιχτή διευθυνσιοδότηση (Open addressing) linear probing (δηλ., ελέγχουμε διαδοχικές θέσεις (κάδους/σχισμές) από την αρχική θέση που προσδιόρισε η συνάρτηση κατακερματισμού μέχρι να βρεθεί ελεύθερη θέση) re-hashing Αλυσιδωτή σύνδεση (separate chaining) (δηλ., χρησιμοποιούμε συνδέσεις στις σελίδες υπερχείλισης)

Επίλυση Συγκρούσεων linear probing: #0 page 123; Σταύρου; Αιόλου #h(123) M

Επίλυση Συγκρούσεων re-hashing #0 page h1() 123; Σταύρου; Αιόλου. #h(123) h2() M

Επίλυση Συγκρούσεων separate chaining 123; Σταύρου; Αιόλου

Επιλογές σχεδιασμού - Συμπεράσματα Συνάρτηση : κατακερματισμός με διαίρεση h(x) = ( a*x+b ) mod M μέγεθος M : ~90% ποσοστό χρησιμοποίησης. Πρώτος αριθμός. Επίλυση συγκρούσεων: Αλυσιδωτή σύνδεση Ευκολότερη υλοποίηση (διαγραφές!); Δεν υπάρχει κίνδυνος υπερχείλησης

Ευρετηριοποίηση - Περίληψη ISAM και B-trees Κατακερματισμός Κατακερματισμός vs B-trees Ευρετήρια Indices in SQL Προχωρημένα θέματα: Δυναμικός κατακερματισμός Ευρετηριοποίηση πολλαπλών γνωρισμάτων (multi-attribute indexing)

Κατακερματισμός vs B-trees: Ο κατακερματισμός προσφέρει: ΤΑΧΥΤΗΤΑ! ( O(1) Χρόνος αναζήτησης ΜΕΣΗΣ περίπτωσης) αλλά τα B-trees προσφέρουν:

Κατακερματισμός vs B-trees: αλλά τα B-trees προσφέρουν: Διάταξη κλειδιών: Ερωτήματα διαστημάτων (range queries) Προσεγγιστικά ερωτήματα (proximity queries) Σειριακή σάρωση (sequential scan) O(log(N)) εγγύηση για αναζήτηση/εισαγωγή/διαγραφή Ομαλή επαύξηση / συρρίκνωση

Κατακερματισμός vs B-trees: Έτσι: Τα B-trees χρησιμοποιούνται στα περισσότερα συστήματα Σημείωση: Ο κατακερματισμός όχι (Γιατί?)

Ευρετηριοποίηση- Περίληψη ISAM και B-trees Κατακερματισμού Κατακερματισμός vs B-trees Ευρετήρια σε SQL Προχωρημένα θέματα:

Ευρετηριοποίηση σε SQL create index <index-name> on <relation-name> (<attribute-list>) create unique index <index-name> on <relation-name> (<attribute-list>) (Στην περίπτωση που το κλειδί αναζήτησης είναι υποψήφιο κλειδί(candidate key) drop index <index-name>

Ευρετηριοποίηση σε SQL Π.χ., create index ssn-index on STUDENT (ssn) ή (Π.χ., στον πίνακα TAKES(ssn,cid, grade)) : create index sc-index on TAKES (ssn, c-id)

Ευρετηριοποίηση - Περιληπτικά ISAM and B-trees Κατακερματισμός (Hashing) Hashing vs B-trees Ευρετήρια στην SQL Προχωρημένα θέματα: (θεωρητικό ενδιαφέρον) Δυναμικός κατακερματισμός Ευρετηριοποίηση πολλαπλών γνωρισμάτων (multiattribute indexing)

Πρόβλημα με τον στατικό Κατακερματισμό Πρόβλημα: υπερχείλιση ; Πρόβλημα: Υποχείλιση; (ποσοστό μη χρησιμοποίησης (under-utilization))

Λύση: Δυναμικός/ επεκτατός Κατακερματισμός Ιδέα: Συρρίκνωσε / επαύξησε τον πίνακα κατακερματισμού κατ απαίτηση..... Δυναμικός κατακερματισμός Λεπτομέρειες : Πώς θα μεγαλώσει ομαλά σε περίπτωση υπερχείλισης ; Πολλές λύσεις Μία από αυτές : Επεκτατός κατακερματισμός(extendible hashing)

Επεκτατός Κατακερματισμός (Extendible hashing) #0 page 123; Σταύρου; Αιόλου #h(123) M

Επεκτατός Κατακερματισμός Λύση: #0 page Διέσπασε τον κάδο σε δύο κάδους 123; Σταύρου; Αιόλου. #h(123) M

Επεκτατός Κατακερματισμός Λεπτομερώς: Διατήρησε ευρετήριο, με δείκτες που δείχνουν σε κάδους κατακερματισμού Ερώτηση: Πώς θα διαιρέσουμε τα περιεχόμενα ενός κάδου στα δύο; Απάντηση: αντιστοίχησε κάθε κλειδί σε μία μεγάλου μήκους ακολουθία bits. Κράτησε μόνο όσα bits είναι απαραίτητα Τελικά:

Επεκτατός Κατακερματισμός Ευρετήριο 00... 01... 10... 11... 0001... 0111... 10101... 10011... 10110... 1101... 101001...

Επεκτατός Κατακερματισμός Ευρετήριο 00... 01... 10... 11... 0001... 0111... 10101... 10011... 10110... 1101... 101001...

Επεκτατός Κατακερματισμός Ευρετήριο 00... 01... 10... 11... 0001... 0111... 10101... 10011... 10110... 101001... 1101... Διάσπαση στο τρίτο bit

Επεκτατός Κατακερματισμός Ευρετήριο 00... 01... 10... 11... 0001... 0111... 10011... 1101... 10101... 101001... 10110... Νέα σελίδα / κάδος

Επεκτατός Κατακερματισμός 000... 001... 010... 011... 100... 101... 110... 111... Ευρετήριο (doubled) 0001... 0111... 10011... 1101... 10101... 101001... 10110... Νέα σελίδα / κάδος

Επεκτατός Κατακερματισμός 00... 01... 10... 11... 0001... 0111... 10101... 10011... 10110... 101001... 1101... 0001... 0111... 10011... 1101... 10101... 101001... 10110... 000... 001... 010... 011... 100... 101... 110... ΠΡΙΝ ΜΕΤΑ 111...

Επεκτατός Κατακερματισμός Σύνοψη: Το ευρετήριο (directory) διπλασιάζεται κατ απαίτηση ή μειώνεται στο μισό, σε αρχεία που συρρικνώνονται Απαιτεί πίνακα με 2 d διευθύνσεις d: ολικό(global-depth) Κάθε κάδος διατηρεί τοπικό(local-depth) d Προσδιορίζει τον αριθμό των δυαδικών ψηφίων στα οποία βασίζεται η χρήση του κάδου. Κυρίως θεωρητικό ενδιαφέρον το ίδιο για Γραμμικός κατακερματισμός (linear hashing) του Litwin order preserving Τέλειος κατακερματισμός (perfect hashing) (χωρίς συγγρούσεις!)

Ευρετηριοποίηση - Περιληπτικά ISAM and B-trees Κατακερματισμός(Hashing) Hashing vs B-trees Ευρετήρια στην SQL Προχωρημένα θέματα: (θεωρητικό ενδιαφέρον) Δυναμικός κατακερματισμός Ευρετηριοποίηση πολλαπλών γνωρισμάτων (multiattribute indexing)

Προσπέλαση με βάση πολλαπλά κλειδιά (multiple-key access) Πώς θα υποστηρίξουμε ερωτήματα σε πολλαπλά ερωτήματα, όπως grade>=3 and course= 415 Βασικό κίνητρο: Γεωγραφικά συστήματα πληροφοριών (GIS)

Προσπέλαση με βάση πολλαπλά κλειδιά y x

Προσπέλαση με βάση πολλαπλά κλειδιά Τυπικό ερώτημα: Βρες τις πόλεις που βρίσκονται το πολύ σε απόσταση x χιλιομέτρων από την Αθήνα Έτσι επιθυμούμε να αποθηκεύσουμε κοντινές πόλεις στην ίδια σελίδα δίσκου:

Προσπέλαση με βάση πολλαπλά κλειδιά y x

Προσπέλαση με βάση πολλαπλά κλειδιά y x

Προσπέλαση με βάση πολλαπλά κλειδιά -R-trees y x

Προσπέλαση με βάση πολλαπλά κλειδιά -R-trees R-trees: πολύ επιτυχή για GIS...σε συνδυασμό με την κατά z-διάταξη (z-ordering ) Περισσότερες λεπτομέρειες... στην ενότητα SAMs II

Ευρετηριοποίηση - Σύνοψη ISAM και B-trees Κατακερματισμός Κατακερματισμός vs B-trees Ευρετήρια στην SQL Προχωρημένα θέματα: Δυναμικός κατακερματισμός industry workhorse Ευρετηριοποίηση πολλαπλών γνωρισμάτων (multi-attribute indexing)