Κατέβασμα παρουσίασης
Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε
1
Εισαγωγή στα Ευρετήρια
Η χρήση τους και η υλοποίησή τους Δρ. Νίκος Καρούσος
2
Το βασικό πρόβλημα στην αποθήκευση
Σε μία βιβλιοθήκη πεπερασμένου χώρου θέλουμε να βάζουμε βιβλία έτσι ώστε να μπορούμε γρήγορα να τα αναζητήσουμε Πώς θα γίνει αυτό; Εισαγωγή στα ευρετήρια
3
Το βασικό πρόβλημα στην αποθήκευση
Να τα βάλουμε ανά κατηγορία; Να τα βάλουμε με αλφαβητική σειρά; Να τα βάλουμε ανά συγγραφέα; Όπως και να τα βάλουμε τελικά πόσο γρήγορα μπορώ να βρω ένα βιβλίο και πόσο εύκολα μπορώ να προσθέσω ένα άλλο; Εισαγωγή στα ευρετήρια
4
Το βασικό πρόβλημα στην αποθήκευση
Η λύση: Να τα βάλουμε όπως έρχονται αλλά…. Να δημιουργήσουμε ένα ευρετήριο: Μαρκάρουμε τα ράφια και τη σειρά κάθε βιβλίου Παίρνουμε ένα βιβλίο-κατάλογο και γράφουμε για κάθε τίτλο Σε ποιο ράφι και Σε ποια σειρά είναι Εισαγωγή στα ευρετήρια
5
Το βασικό πρόβλημα στην αποθήκευση
Η λύση: Όταν αναζητάμε απλά θα ψάχνουμε στο βιβλίο μας. Θα βρίσκουμε καθιστοί αυτό που θέλουμε Και θα πηγαίνουμε στο σημείο ακριβώς που είναι για να το βρούμε Εισαγωγή στα ευρετήρια
6
Το βασικό πρόβλημα στην αποθήκευση
Αλλά… Όταν προσθέτουμε ένα βιβλίο: 1. Το βάζουμε όπου υπάρχει χώρος. 2. Σημειώνουμε που το βάλαμε 3. Ενημερώνουμε το ευρετήριο Εισαγωγή στα ευρετήρια
7
Το ίδιο πρόβλημα υπάρχει και στις Βάσεις Δεδομένων:
Υπάλληλος (Πίνακας με 20 πεδία και εγγραφές) ΑΦΜ Όνομα Επώνυμο … Ειδικότητα 15565 Νίκος Καρούσος Καθηγητής 15578 Κώστας Αλκαίος Φύλακας 16554 Τάκης Λέλαπας Καθηγητής` 15432 Γιάννης Χλεχλές Πως θα βρω τον Καρούσο; Ψάχνοντας εγγραφή προς εγγραφή; Μπορώ αλλά θα αργήσει πάρα πολύ… Εισαγωγή στα ευρετήρια
8
Το ίδιο πρόβλημα υπάρχει και στις Βάσεις Δεδομένων: Η Λύση
Φτιάχνω ευρετήριο: Ως προς το Επώνυμο (Πεδίο Ευρετηριοποίησης) Ζευγάρι Επώνυμο-Δείκτης σε Εγγραφή Το Ευρετήριο είναι μία εσωτερική δομή στη Βάση Δεδομένων που στηρίζεται σε μικρούς πίνακες ή δέντρα και επιτρέπει τη γρήγορη αναζήτηση με βάση κάποιο συγκεκριμένο πεδίο. Υπάλληλος (Πίνακας με 20 πεδία και εγγραφές) Αρ. Εγγραφής ΑΦΜ Όνομα Επώνυμο … Ειδικότητα 1 15565 Νίκος Καρούσος Καθηγητής 2 15578 Κώστας Αλκαίος Φύλακας 3 16554 Τάκης Λέλαπας Καθηγητής` 4 15432 Γιάννης Χλεχλές Ευρετήριο ως προς το Επώνυμο Επώνυμο Αρ. Εγγραφής Αλκαίος 2 Καρούσος 1 Λέλαπας 3 Χλεχλές 4 Εισαγωγή στα ευρετήρια
9
Το ίδιο πρόβλημα υπάρχει και στις Βάσεις Δεδομένων: Η Λύση
Όταν αναζητάω τον ΚΑΡΟΥΣΟ ΔΕΝ ΨΑΧΝΩ στον πίνακα υπαλλήλων ΨΑΧΝΩ στο Ευρετήριο (το οποίο είναι συνήθως ταξινομημένο) Βρίσκω ΑΜΕΣΑ τον ΚΑΡΟΥΣΟ και διαβάζω σε ποια εγγραφή βρίσκεται. Στη συνέχεια πάω στον πίνακα Υπάλληλος απ’ ευθείας στη συγκεκριμένη εγγραφή. Υπάλληλος (Πίνακας με 20 πεδία και εγγραφές) Αρ. Εγγραφής ΑΦΜ Όνομα Επώνυμο … Ειδικότητα 1 15565 Νίκος Καρούσος Καθηγητής 2 15578 Κώστας Αλκαίος Φύλακας 3 16554 Τάκης Λέλαπας Καθηγητής` 4 15432 Γιάννης Χλεχλές Ευρετήριο ως προς το Επώνυμο Επώνυμο Αρ. Εγγραφής Αλκαίος 2 Καρούσος 1 Λέλαπας 3 Χλεχλές 4 Εισαγωγή στα ευρετήρια
10
Το ίδιο πρόβλημα υπάρχει και στις Βάσεις Δεδομένων: Το Ευρετήριο
Το ευρετήριο είναι ΜΟΝΙΜΟ Πρέπει να δηλώσουμε εμείς για ποιο/α πεδίο/α θέλουμε ευρετήριο. Η Διαδικασία υλοποίησής του είναι εσωτερική και εμείς δεν χρειάζεται να κάνουμε τίποτα. Ευρετήριο ως προς το Επώνυμο Επώνυμο Αρ. Εγγραφής Αλκαίος 2 Καρούσος 1 Λέλαπας 3 Χλεχλές 4 Εισαγωγή στα ευρετήρια
11
Το ίδιο πρόβλημα υπάρχει και στις Βάσεις Δεδομένων: Η Λύση
Όταν Προσθέτω τον ΛΑΛΑΚΗ Ενημερώνεται (αυτόματα) το ευρετήριο και αναταξινομείται Υπάλληλος (Πίνακας με 20 πεδία και εγγραφές) Αρ. Εγγραφής ΑΦΜ Όνομα Επώνυμο … Ειδικότητα 23312 Κώστας Λαλάκης Φύλακας Ευρετήριο ως προς το Επώνυμο Επώνυμο Αρ. Εγγραφής Αλκαίος 2 Καρούσος 1 Λαλάκης Λέλαπας 3 Χλεχλές 4 Εισαγωγή στα ευρετήρια
12
Χαρακτηριστικά Ευρετηρίων
Το κλειδί του πίνακα είναι πάντα Ευρετήριο Επιτρέπουν ταχύτατη αναζήτηση Μπορούμε να δηλώσουμε όσα πεδία θέλουμε (Επιλέγουμε αυτά που αποτελούν κριτήριο αναζήτησης συχνά). Χρησιμοποιούν επιπλέον ΧΩΡΟ Κάθε φορά που αλλάζουμε στοιχεία στον πίνακα (Εισαγωγή Εγγραφής / Ενημέρωση πεδίου που είναι ευρετήριο / Διαγραφή Εγγραφής) το ευρετήριο ενημερώνεται ΚΑΘΥΣΤΕΡΗΣΗ Εισαγωγή στα ευρετήρια
13
Χαρακτηριστικά Ευρετηρίων
Τι δηλώνουμε ευρετήριο τελικά; 1/3 Παράδειγμα 1 Σε μία βιβλιοθήκη καταγράφουμε τα βιβλία του ΤΕΙ μας. Στον πίνακα βιβλία ποια πεδία πρέπει να δηλωθούν ως ευρετήριο; Αυτά που αποτελούν συχνό κριτήριο αναζήτησης (π.χ. ISBN, Τίτλος, Συγγραφέας, Εκδοτικός κλπ) Μπορούμε να τα δηλώσουμε όλα; ΝΑΙ εφόσον έχουμε διαθέσιμο χώρο. Δεν συμβαίνει συχνά αλλαγή στοιχείων ενώ και η προσθήκη νέων βιβλίων δεν είναι πάρα πολύ συχνή (άρα δεν μας πειράζει να καθυστερούμε λίγο προκειμένου να κάνουμε γρήγορη αναζήτηση). Εισαγωγή στα ευρετήρια
14
Χαρακτηριστικά Ευρετηρίων
Τι δηλώνουμε ευρετήριο τελικά; 2/3 Παράδειγμα 2 Στην COSMOTE ένας πίνακας κρατά τις κλήσεις ΚΛΗΣΗ(Αρ.Καλούντος, Αρ.Καλούμενου, Ημερ.-Ώρα, Διάρκεια κ.α.). Κάθε ευρετήριο στοιχίζει 1/10 του δευτερολέπτου για να ενημερωθεί σε κάθε εισαγωγή. Που θα κάναμε ευρετήριο για να βγάλουμε τους λογαριασμούς; ΠΟΥΘΕΝΑ. Αν ο Πίνακας παίρνει κλήσεις την ώρα σε μία ώρα χρειάζεται δευτερόλεπτα για να ενημερώσει ένα ευρετήριο. Άρα 27 ΩΡΕΣ. Από την 1η ώρα το σύστημα θα κρασάρει αφού δεν θα μπορεί να προλαβαίνει τις ενημερώσεις. Ας αργήσει όσο χρειαστεί για να βγάλει το λογαριασμό μιας και το χρειαζόμαστε μία φορά το μήνα. Εισαγωγή στα ευρετήρια
15
Χαρακτηριστικά Ευρετηρίων
Τι δηλώνουμε ευρετήριο τελικά; 3/3 Λαμβάνουμε υπόψη: Τη διαθέσιμη χωρητικότητα του συστήματος Το ρυθμό εισαγωγής/αλλαγής/διαγραφής εγγραφών Το ρυθμό αναζήτησης. Αν ισχύει το 1 δηλώνουμε πολλά στο 3 και λίγα στο 2 Σε ΓΕΝΙΚΕΣ ΠΕΡΙΠΤΩΣΕΙΣ δηλώνουμε αυτά για τα οποία χρειάζεται γρήγορη αναζήτηση. Εισαγωγή στα ευρετήρια
16
Το ευρετήριο στις βάσεις δεδομένων: τρόπος αποθήκευσης εγγραφών
Τα δεδομένα αποθηκεύονται σε αρχεία στο σκληρό δίσκο ή σε άλλες μονάδες αποθήκευσης. Έτσι έχουμε εύκολη αναζήτηση και πρόσβαση στα δεδομένα Κάθε πίνακας λογίζεται ως ένα αρχείο που είναι διατεταγμένο (σε σειρά) ανάλογα με ένα πεδίο. Το πεδίο διάταξης. Αυτό συνήθως είναι το πρωτεύων κλειδί. Οι βασικές πράξεις για τα δεδομένα στα αρχεία είναι: read, modify, update, delete Το DBMS μεταφέρει τα δεδομένα σε buffer στην κύρια μνήμη Μεταφορά σε blocks μεταξύ δίσκου και μνήμης. Ένα block έχει καθορισμένο μέγεθος και μπορεί να χωρά πολλές εγγραφές ή όχι. Εισαγωγή στα ευρετήρια
17
Το ευρετήριο στις βάσεις δεδομένων: Τύποι Ευρετηρίων
Πρόσβαση δεδομένων αρχεία με διάταξη Πρωτεύον ευρετήριο (διάταξη στο κλειδί) Πυκνό (μία εγγραφή στο ευρετήριο για κάθε εγγραφή στον πίνακα) και Μη πυκνό ευρετήριο (μία εγγραφή στο ευρετήριο για κάθε block στον πίνακα) Ευρετήριο συστάδων (διάταξη σε πεδίο που δεν είναι κλειδί) Δευτερεύον ευρετήριο ή ευρετήριο χωρίς συστάδες: πρόσβαση δεδομένων κατανεμημένων ομοιόμορφα σε μια σειρά δεξαμενών Εισαγωγή στα ευρετήρια
18
Το ευρετήριο στις βάσεις δεδομένων: Με διάταξη: Πρωτεύων
Μη Πυκνό Πρωτεύων Ευρετήριο Πυκνό Πρωτεύων Ευρετήριο Εισαγωγή στα ευρετήρια
19
Το ευρετήριο στις βάσεις δεδομένων: Ποιο ευρετήριο διαλέγουμε;
Πυκνό: περισσότερο αποθηκευτικό χώρο και μεγαλύτερη μνήμη Ο χρόνος αναζήτησης είναι μικρότερος με το πυκνό Προτιμάμε πυκνό, αν το αρχείο του ευρετηρίου είναι μικρό σε σχέση με τη μνήμη που έχουμε Πρέπει να κάνουμε και μια πρόβλεψη για το πόσο μεγάλο μπορεί να γίνει το αρχείο στο μέλλον Εισαγωγή στα ευρετήρια
20
Το ευρετήριο στις βάσεις δεδομένων: Με διάταξη: Συστάδων
Η διάταξη στο αρχείο επιτρέπει διπλότυπες τιμές γιατί δεν είναι στο πρωτεύων κλειδί Το ευρετήριο είναι ΜΗ ΠΥΚΝΟ Κρατά μία εγγραφή με κάθε διαφορετική τιμή και δείκτη στο block στο οποίο υπάρχει. Εισαγωγή στα ευρετήρια
21
Το ευρετήριο στις βάσεις δεδομένων: Πολυεπίπεδο
Μπορεί το ευρετήριο να γίνει πολύ μεγάλο για να μπορεί να γίνει αποτελεσματικά αναζήτηση Λύση: indexing πολλών επιπέδων Το κύριο index γίνεται «ενδιάμεσο αρχείο» και δημιουργούμε ένα μη πυκνό index για αυτό Εισαγωγή στα ευρετήρια
22
Το ευρετήριο στις βάσεις δεδομένων: Πολυεπίπεδο
Εισαγωγή στα ευρετήρια
23
Το ευρετήριο στις βάσεις δεδομένων: Δευτερεύων Ευρετήριο
Το πεδίο ευρετηριασμού ΔΕΝ είναι ΚΛΕΙΔΙ και ΜΠΟΡΕΙ να είναι Μοναδικό αλλά ΜΠΟΡΕΙ (συνήθως) και ΟΧΙ Εισαγωγή στα ευρετήρια
24
Το ευρετήριο στις βάσεις δεδομένων: Άλλα Ευρετήρια: Ευρετήριο B-Tree
Η πιο συχνή δομή δεδομένων για indexing. Δυναμική δομή, μπορεί να μεγαλώσει και να μικρύνει Εισαγωγή στα ευρετήρια
25
Το ευρετήριο στις βάσεις δεδομένων: Άλλα Ευρετήρια: Ευρετήριο B-Tree
Τρεις τύποι κόμβων Βασικός κόμβος: δείκτες κόμβων σε κόμβους κλάδων Κόμβος κλάδου: δείκτες σε κόμβους φύλλων ή άλλους κόμβους κλάδων Κόμβος φύλλου: δείκτες σε άλλους κόμβους φύλλων ή αντικείμενα δεικτών Εισαγωγή στα ευρετήρια
26
Το ευρετήριο στις βάσεις δεδομένων: Άλλα Ευρετήρια: Ευρετήριο B-Tree
Εισαγωγή στα ευρετήρια
27
Το ευρετήριο στις βάσεις δεδομένων: Άλλα Ευρετήρια: Κατακερματισμού
Το ευρετήριο στις βάσεις δεδομένων: Άλλα Ευρετήρια: Κατακερματισμού Βασική Ιδέα Όταν αποθηκεύουμε μία εγγραφή, για το πεδίο ευρετηριασμού εφαρμόζουμε μία συνάρτηση ακρωτηριασμού. Π.Χ. Ο Κωδ_Καταστήματος είναι Η συνάρτηση κατακερματισμού είναι το =15 Άρα η συνάρτηση θα γραφτεί στη 15η θέση. Εισαγωγή στα ευρετήρια
28
Το ευρετήριο στις βάσεις δεδομένων: Άλλα Ευρετήρια: Κατακερματισμού
Το ευρετήριο στις βάσεις δεδομένων: Άλλα Ευρετήρια: Κατακερματισμού Βασική Ιδέα Όταν Αναζητήσουμε το κατάστημα με κωδ Π.Χ. Ο Κωδ_Καταστήματος είναι Η συνάρτηση κατακερματισμού είναι το =15 Άρα θα πάμε απευθείας στη 15η θέση. Εισαγωγή στα ευρετήρια
29
Το ευρετήριο στις βάσεις δεδομένων: Άλλα Ευρετήρια: Κατακερματισμού
Το ευρετήριο στις βάσεις δεδομένων: Άλλα Ευρετήρια: Κατακερματισμού Το πρόβλημα Αν έχω δύο κωδ_καταστήματος που κάνουν άθροισμα 15; Αν έχω δύο ίδιους κωδικούς Η Λύση Βρίσκω κατάλληλη συνάρτηση ανάλογα με το τι δεδομένα έχει το πεδίο. Χρησιμοποιώ προχωρημένες τεχνικές κατακερματισμού (δυναμικός κατακερματισμός-επεκτάσιμος δυναμικός κατακερματισμός) για να μπορέσω να χωρέσω όλες τις εγγραφές. Εισαγωγή στα ευρετήρια
Παρόμοιες παρουσιάσεις
© 2024 SlidePlayer.gr Inc.
All rights reserved.