Εισαγωγή στην Επιστήμη των Υπολογιστών

Σχετικά έγγραφα
Εισαγωγή στην Επιστήμη των Υπολογιστών

Εισαγωγή στην Επιστήμη των Υπολογιστών

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

Εισαγωγή στην Επιστήμη των Υπολογιστών

Εισαγωγή στην Επιστήμη των Υπολογιστών

Εισαγωγή στην Επιστήμη των Υπολογιστών

Εισαγωγή στην Επιστήμη των Υπολογιστών

Εισαγωγή στην Επιστήμη των Υπολογιστών

Οικονομετρία. Πολλαπλή Παλινδρόμηση. Στατιστικός έλεγχος γραμμικού συνδυασμού συντελεστών. Τμήμα: Αγροτικής Οικονομίας & Ανάπτυξης

Οικονομετρία. Εξειδίκευση του υποδείγματος. Μορφή της συνάρτησης: Πολυωνυμική, αντίστροφη και αλληλεπίδραση μεταβλητών

Εισαγωγή στην Επιστήμη των Υπολογιστών

Οικονομετρία. Συστήματα συναληθευουσών εξισώσεων Το πρόβλημα της ταυτοποίησης. Τμήμα: Αγροτικής Οικονομίας & Ανάπτυξης. Διδάσκων: Λαζαρίδης Παναγιώτης

Ιστορία της μετάφρασης

Εισαγωγή στην Επιστήμη των Υπολογιστών

Εκκλησιαστικό Δίκαιο. Ενότητα 10η: Ιερά Σύνοδος της Ιεραρχίας και Διαρκής Ιερά Σύνοδος Κυριάκος Κυριαζόπουλος Τμήμα Νομικής Α.Π.Θ.

Προγραμματισμός και Εφαρμογές Υπολογιστών

Εισαγωγή στους Αλγορίθμους

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

Γεωργική Εκπαίδευση. Θεματική ενότητα 2 2/2. Όνομα καθηγητή: Αλέξανδρος Κουτσούρης Τμήμα: Αγροτικής Οικονομίας και Ανάπτυξης

Εισαγωγή στην Επιστήμη των Υπολογιστών

Εκκλησιαστικό Δίκαιο

Προγραμματισμός και Εφαρμογές Υπολογιστών

Εισαγωγή στους Αλγορίθμους

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

Οικονομετρία. Εξειδίκευση του υποδείγματος. Μορφή της συνάρτησης: Γραμμική, διπλή λογαριθμική, ημιλογαριθμική. Τμήμα: Αγροτικής Οικονομίας & Ανάπτυξης

Γενικά Μαθηματικά Ι. Ενότητα 15: Ολοκληρώματα Με Ρητές Και Τριγωνομετρικές Συναρτήσεις Λουκάς Βλάχος Τμήμα Φυσικής

Οικονομετρία. Συστήματα συναληθευουσών εξισώσεων Μέθοδοι εκτίμησης. Τμήμα: Αγροτικής Οικονομίας & Ανάπτυξης. Διδάσκων: Λαζαρίδης Παναγιώτης

Οικονομετρία. Απλή Παλινδρόμηση. Υποθέσεις του γραμμικού υποδείγματος και ιδιότητες των εκτιμητών. Τμήμα: Αγροτικής Οικονομίας & Ανάπτυξης

Οικονομετρία. Συστήματα συναληθευουσών εξισώσεων Συνθήκες ταυτοποίησης. Τμήμα: Αγροτικής Οικονομίας & Ανάπτυξης. Διδάσκων: Λαζαρίδης Παναγιώτης

Εκκλησιαστικό Δίκαιο

Ηλεκτρονικοί Υπολογιστές

Οικονομετρία. Απλή Παλινδρόμηση. Πληθυσμός και δείγμα. H μέθοδος Ελαχίστων Τετραγώνων. Τμήμα: Αγροτικής Οικονομίας & Ανάπτυξης

Εισαγωγή στην Επιστήμη των Υπολογιστών

Γενικά Μαθηματικά Ι. Ενότητα 12: Κριτήρια Σύγκλισης Σειρών. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Προγραμματισμός Η/Υ. 7 η ενότητα: Αρχεία. Τμήμα. Τεχνολόγων Περιβάλλοντος. ΤΕΙ Ιονίων Νήσων. Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων

Μικροοικονομική Ανάλυση Ι

Οικονομετρία. Ετεροσκεδαστικότητα Μέθοδοι εκτίμησης. Τμήμα: Αγροτικής Οικονομίας & Ανάπτυξης. Διδάσκων: Λαζαρίδης Παναγιώτης

Οικονομετρία. Απλή Παλινδρόμηση Βασικές έννοιες και τυχαίο σφάλμα. Τμήμα: Αγροτικής Οικονομίας & Ανάπτυξης. Διδάσκων: Λαζαρίδης Παναγιώτης

Μικροοικονομική Ανάλυση Ι

Μέθοδοι Γεωργοοικονομικής & Κοινωνιολογικής Έρευνας

Προγραμματισμός και Εφαρμογές Υπολογιστών

Οικονομετρία. Απλή Παλινδρόμηση. Έλεγχοι υποθέσεων και διαστήματα εμπιστοσύνης των συντελεστών. Τμήμα: Αγροτικής Οικονομίας & Ανάπτυξης

Προγραμματισμός και Εφαρμογές Υπολογιστών

Μικροοικονομική Ανάλυση Ι

Μέθοδοι Γεωργοοικονομικής & Κοινωνιολογικής Έρευνας

Οικονομετρία. Πολυσυγγραμμικότητα. Τμήμα: Αγροτικής Οικονομίας & Ανάπτυξης. Διδάσκων: Λαζαρίδης Παναγιώτης

Οικονομετρία. Απλή Παλινδρόμηση. Ιδιότητες της ευθείας παλινδρόμησης και συντελεστής προσδιορισμού. Τμήμα: Αγροτικής Οικονομίας & Ανάπτυξης

Εκκλησιαστικό Δίκαιο

Οικονομετρία. Ψευδομεταβλητές Δύο ή περισσότερες ψευδομεταβλητές που επιδρούν στην σταθερά της συνάρτησης. Τμήμα: Αγροτικής Οικονομίας & Ανάπτυξης

Ιστορία της μετάφρασης

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 1

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Ενότητα. Εισαγωγή στις βάσεις δεδομένων

Διπλωματική Ιστορία Ενότητα 2η:

Εισαγωγή στους Αλγορίθμους Ενότητα 10η Άσκηση Αλγόριθμος Dijkstra

Μέθοδοι Γεωργοοικονομικής & Κοινωνιολογικής Έρευνας

Εισαγωγή στην Επιστήμη των Υπολογιστών

Προγραμματισμός και Εφαρμογές Υπολογιστών

Οικονομετρία. Συστήματα συναληθευουσών εξισώσεων Ανηγμένη μορφή και βασικές υποθέσεις. Τμήμα: Αγροτικής Οικονομίας & Ανάπτυξης

Προγραμματισμός και Εφαρμογές Υπολογιστών

Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2)

Εισαγωγή στους Υπολογιστές

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

Οικονομετρία. Πολλαπλή Παλινδρόμηση. Υποθέσεις, ιδιότητες εκτιμητών και μέθοδος Ελαχίστων Τετραγώνων. Τμήμα: Αγροτικής Οικονομίας & Ανάπτυξης

Οικονομετρία. Πολλαπλή Παλινδρόμηση. Στατιστικός έλεγχος σημαντικότητας δύο ή περισσοτέρων συντελεστών ταυτόχρονα

Μηχανολογικό Σχέδιο Ι

Ηλεκτρονικοί Υπολογιστές

Μικροοικονομική Ανάλυση Ι

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Prim

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

Οικονομετρία. Συστήματα συναληθευουσών εξισώσεων. Βασικές έννοιες. Τμήμα: Αγροτικής Οικονομίας & Ανάπτυξης. Διδάσκων: Λαζαρίδης Παναγιώτης

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

Οικονομετρία. Ψευδομεταβλητές Μία ψευδομεταβλητή που επιδρά στην σταθερά της συνάρτησης. Τμήμα: Αγροτικής Οικονομίας & Ανάπτυξης

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 8: ΧΡΗΣΗ ΔΟΜΩΝ ΔΕΝΤΡΟΥ ΚΑΙ ΣΩΡΟΥ ΓΙΑ ΕΠΙΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ ΤΑΞΙΝΟΜΗΣΗΣ ΑΛΓΟΡΙΘΜΟΣ HEAPSORT

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

Οικονομία των ΜΜΕ. Ενότητα 9: Εταιρική διασπορά και στρατηγικές τιμολόγησης

Οικονομετρία. Αυτοσυσχέτιση Συνέπειες και ανίχνευση. Τμήμα: Αγροτικής Οικονομίας & Ανάπτυξης. Διδάσκων: Λαζαρίδης Παναγιώτης

Κβαντική Επεξεργασία Πληροφορίας

Οικονομετρία. Ψευδομεταβλητές Ψευδομεταβλητές που επιδρούν στην κλίση της συνάρτησης. Τμήμα: Αγροτικής Οικονομίας & Ανάπτυξης

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

Μικροοικονομική Ανάλυση Ι

Μικροοικονομική Ανάλυση Ι

Εισαγωγή στους Αλγορίθμους

Εισαγωγή στην Διατροφή

ΦΥΣΙΚΟΧΗΜΕΙΑ ΤΡΟΦΙΜΩΝ Ι

Γεωργική Εκπαίδευση Ενότητα 9

Μικροοικονομική Ανάλυση Ι

Μικροοικονομική Ανάλυση Ι

Μέθοδοι Γεωργοοικονομικής & Κοινωνιολογικής Έρευνας

Γενικά Μαθηματικά Ι. Ενότητα 1: Συναρτήσεις και Γραφικές Παραστάσεις. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Γενικά Μαθηματικά Ι. Ενότητα 14: Ολοκλήρωση Κατά Παράγοντες, Ολοκλήρωση Ρητών Συναρτήσεων Λουκάς Βλάχος Τμήμα Φυσικής

Οικονομετρία. Αυτοσυσχέτιση Μέθοδοι εκτίμησης. Τμήμα: Αγροτικής Οικονομίας & Ανάπτυξης. Διδάσκων: Λαζαρίδης Παναγιώτης

Οικονομετρία. Εξειδίκευση του υποδείγματος. Προσθήκη άσχετης μεταβλητής και παράλειψη σχετικής. Τμήμα: Αγροτικής Οικονομίας & Ανάπτυξης

Μέθοδοι Γεωργοοικονομικής & Κοινωνιολογικής Έρευνας

Βάσεις Περιβαλλοντικών Δεδομένων

Οικονομία των ΜΜΕ. Ενότητα 7: Μορφές αγοράς και συγκέντρωση των ΜΜΕ

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Kruskal

Γαλακτοκομία. Ενότητα 11: Νοθεία Γάλακτος, 1ΔΩ. Τμήμα: Επιστήμης Τροφίμων και Διατροφής Του Ανθρώπου

Λογισμός 3. Ενότητα 19: Θεώρημα Πεπλεγμένων (γενική μορφή) Μιχ. Γ. Μαριάς Τμήμα Μαθηματικών ΑΝΟΙΚΤΑ ΑΚΑ ΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Transcript:

Εισαγωγή στην Επιστήμη των Υπολογιστών Ενότητα 6: Αρχεία Δομές Αρχείων, 2ΔΩ Τμήμα: Αγροτικής Οικονομίας & Ανάπτυξης Διδάσκων: Θεόδωρος Τσιλιγκιρίδης

Μαθησιακοί Στόχοι Με την ολοκλήρωση της ενότητας ο φοιτητής/τρια θα έχει αποκτήσει γνώσεις για: Μέθοδοι Προσπέλασης σε αρχεία - Ορισμοί Ακολουθιακά (σειριακά) αρχεία Ευρετηριασμένα αρχεία (αρχεία με δείκτες) Κατακερματισμένα αρχεία Αρχεία κειμένου Δυαδικά αρχεία

Λέξεις Κλειδιά Ταξινόμηση Ακολουθιακά (σειριακά) αρχεία Ευρετηριασμένα αρχεία (αρχεία με δείκτες) Κατακερματισμένα αρχεία Σύγκρουση Δυαδικά αρχεία

Ταξινόμηση των Δομών Αρχείων Αρχεία (Μέθοδοι Προσπέλασης) Σειριακή Ακολουθιακή Τυχαία Σειριακά αρχεία Ευρετηριασμένα αρχεία Κατακερματισμένα αρχεία

Ακολουθιακά Αρχεία Ακολουθιακό Αρχείο: Είναι ένα αρχείο του οποίου το περιεχόμενο μπορεί να διαβαστεί σε σειρά. Τα δεδομένα μπορούν να αποθηκευτούν σε λογικές εγγραφές Κάθε εγγραφή αποτελείται από πεδία Ο αναγνώστης πρέπει να μπορεί να αναγνωρίζει το end-of-file (EOF) Οι εγγραφές ταξινομούνται μέσω ενός πεδίου που λέγεται πεδίο-κλειδί και η τιμή του κλειδί. Η ταξινόμηση ενός ακολουθιακού αρχείου με βάση κάποιο κλειδί μειώνει πολύ το χρόνο επεξεργασίας. Παράδειγμα: Δομή ενός αρχείου εργαζομένων Το αρχείο αποτελείται από μία σειρά 25 εγγραφών των 31 χαρακτήρων Αρχείο Λογική Εγγραφή Κάθε εγγραφή αποτελείται από δύο πεδία, το πεδίο του ονόματος του υπαλλήλου (25 χαρακτήρες) και το πεδίο του κωδικού του υπαλλήλου (6 χαρακτήρες) Όνομα Εργαζομένου 5 Κωδικός Εργαζομένου

Ακολουθιακά (Σειριακά) Αρχεία Εγγραφή σημάδι Επεξεργασία εγγραφών σε ακολουθιακό αρχείο While Not EOF { Διάβασε την επόμενη εγγραφή Επεξεργασία της εγγραφής }

Ενημέρωση Ακολουθιακού Αρχείου 1/3 Αρχεία του προγράμματος ενημέρωσης Νέο πρωτεύον αρχείο (new master file) Πρόκειται για ένα νέο μόνιμο αρχείο που περιέχει τα πλέον πρόσφατα δεδομένα Παλιό πρωτεύον αρχείο (old master file) Πρόκειται για το μόνιμο αρχείο που πρέπει να ενημερωθεί. Μετά την ενημέρωση φυλάσσεται για αναφορά.

Ενημέρωση Ακολουθιακού Αρχείου 2/3 Αρχείο κινήσεων (transaction file) Πρόκειται για το αρχείο που περιέχει τις αλλαγές που πρέπει να γίνουν στο παλιό πρωτεύον αρχείο. Οι αλλαγές μπορεί να είναι: (Π): Προσθήκη κινήσεων (Προσδιορίζει τις νέες εγγραφές που πρέπει να προστεθούν στο παλαιό πρωτεύον αρχείο). (Δ): Διαγραφή κινήσεων (Προσδιορίζει τις εγγραφές που πρέπει να διαγραφούν από το παλαιό πρωτεύον αρχείο).

Ενημέρωση Ακολουθιακού Αρχείου 3/3 (Μ): Μεταβολή κινήσεων (Προσδιορίζει τις εγγραφές του παλαιού πρωτεύοντος αρχείου που πρέπει να διορθωθούν). Αρχείο αναφοράς σφαλμάτων (error report file) Πρόκειται για το αρχείο που περιέχει τη λίστα των σφαλμάτων που παρουσιάζονται κατά τη διαδικασία ενημέρωσης.

Ενημέρωση Ακολουθιακού Αρχείου 3/3 Αρχείο κινήσεων Παλιό πρωτεύον αρχείο Ενημέρωση ακολουθιακού αρχείο Εγγραφή κίνησης Εγγραφή παλιού πρωτεύοντος αρχείου Πρόγραμμα ενημέρωσης Χώρος αποθήκευσης Εγγραφή νέου πρωτεύοντος αρχείου Αρχείο αναφοράς σφαλμάτων Νέο πρωτεύον αρχείο

Ενημέρωση Ακολουθιακού Αρχείου 3/3 Πρόγραμμα ενημέρωσης: Η ενημέρωση ενός ακολουθιακού αρχείου γίνεται περιοδικά, μέσω του προγράμματος ενημέρωσης Η διαδικασία της ενημέρωσης περιλαμβάνει τα ακόλουθα βήματα: 1. Όλα τα αρχεία ταξινομούνται με το ίδιο πεδίοκλειδί. 2. Αν το κλειδί του αρχείου κινήσεων είναι μικρότερο από το κλειδί του παλαιού πρωτεύοντος αρχείου, η κίνηση προστίθεται στο νέο πρωτεύον αρχείο.

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

Νέο πρωτεύον αρχείο Ενημέρωση Ακολουθιακού Αρχείου 3/3 Διαδικασία ενημέρωσης Π: Προσθήκη 35 Δ: Διαγραφή Μ: Μεταβολή Π 31 Μ 25 21 22 25 Π 23 20 Η διαδικασία αρχίζει με τη σύγκριση των κλειδιών των πρώτων εγγραφών Αρχείο κινήσε ων Δ 21 Π 18 Π 17 Μ 14 16 14 13 10 Παλιό πρωτεύ ον αρχείο

Διαδικασία Συγχώνευσης Δύο Ακολουθιακών Αρχείων Αλγόριθμος της διαδικασίας συγχώνευσης Αρχεία εισόδου: InputFileA, InputFileB Αρχείο εξόδου: OutputFile Procedure MergeFiles (InputFileA, InputFileB, OutputFile) If (και τα δύο αρχεία εισόδου είναι στο EOF) then (Τέλος, με το OutputFile κενό) If (το InputFileA δεν είναι στο EOF) then (Δήλωσε την πρώτη του εγγραφή σαν την τρέχουσα εγγραφή) If (το InputFileB δεν είναι στο EOF) then (Δήλωσε την πρώτη του εγγραφή σαν την τρέχουσα εγγραφή) While (κανένα από τα αρχεία εισόδου δεν είναι EOF) do {Βάλε την τρέχουσα εγγραφή με τη μικρότερη τιμή στο πεδίο κλειδιού στο OutputFile If (αυτή η τρέχουσα εγγραφή είναι η τελευταία εγγραφή του αντίστοιχου αρχείου εισόδου της) then (δήλωσε ότι το αρχείο εισόδου βρίσκεται στο EOF) else (δήλωσε ως τρέχουσα εγγραφή του συγκεκριμένου αρχείου εισόδου την επόμενη εγγραφή σε αυτό) } Ξεκινώντας από την τρέχουσα εγγραφή του αρχείου εισόδου που δεν είναι στο EOF αντέγραψε τις υπόλοιπες εγγραφές στο OutputFile

Παράδειγμα: Εφαρμογή του Αλγόριθμου Συγχώνευσης Δύο Ακολουθιακών Αρχείων Αρχείο Εξόδου Τα γράμματα χρησιμοποιούνται για την αναπαράσταση ολόκληρων εγγραφών. Το συγκεκριμένο γράμμα δείχνει την τιμή του πεδίουκλειδιού της εγγραφής.. Αρχείο Εισόδου

Ευρετηριασμένα Αρχεία (Αρχεία με Δείκτες) 1/3 Κάθε ευρετηριασμένο αρχείο αποτελείται από Ένα αρχείο δεδομένων (ακολουθιακό αρχείο) και Ένα ευρετήριο (αρχείο με δύο πεδία - το κλειδί του ακολουθιακού αρχείου και τη διεύθυνση της αντίστοιχης εγγραφής). Η αντιστοίχιση των κλειδιών στις διευθύνσεις γίνεται μέσω του ευρετηρίου Κύρια Μνήμη Το ευρετήριο μεταφέρεται στην κύρια μνήμη όταν ανοίγει το ευρετηριασμένο αρχείο Μέσο αποθήκευσης Ευρετήριο Ευρετη - ριασμένο αρχείο Το ευρετήριο αποθηκεύεται στο μέσο αποθήκευσης ως ξεχωριστό αρχείο

Αντιστοίχιση σε ένα αρχείο με δείκτες Ευρετηριασμένα Αρχεία (Αρχεία με Δείκτες) 2/3 Ευρετήριο: Λίστα με όλες τις τιμές κλειδιά που είναι αποθηκευμένα σε αυτό, μαζί με τις καταχωρίσεις που προσδιορίζουν τις θέσεις (διευθύνσεις) όπου είναι αποθηκευμένη η εγγραφή που περιέχει το κάθε κλειδί. Για να βρεθεί μια συγκεκριμένη εγγραφή βρίσκουμε το προσδιοριστικό κλειδί στο ευρετήριο και μετά ανακτούμε το τμήμα πληροφοριών που είναι αποθηκευμένο στη θέση (διεύθυνση) η οποία σχετίζεται με το συγκεκριμένο κλειδί. Ευρετήριο Κλειδί Διεύθυνση Κλειδί Διεύθυνση

Ευρετηριασμένα Αρχεία (Αρχεία με Δείκτες) 3/3 Αλγόριθμος προσπέλασης εγγραφής σε ευρετηριακό αρχείο 1. Το αρχείο του ευρετηρίου φορτώνεται στην κύρια μνήμη 2. Ερευνώνται οι καταχωρίσεις με κάποιον αποδοτικό αλγόριθμο αναζήτησης, όπως η δυαδική αναζήτηση, για να βρεθεί το επιθυμητό πεδίο. 3. Ανακτάται η διεύθυνση της εγγραφής 4. Χρησιμοποιείται η διεύθυνση για να ανακτηθεί η εγγραφή δεδομένων και να μεταβιβαστεί στο χρήστη. Αντεστραμμένα αρχεία: Τύπος ευρετηριασμένου αρχείου που επιτρέπει την παρουσία πολλών ευρετηρίων, το καθένα από τα οποία έχει διαφορετικό κλειδί.

Λογική Αναπαράσταση Ευρετηριασμένου Αρχείου Κλειδί Αρχείο δεδομένων Μαρία Παπαδάκη Κλειδί Διεύθυνση Γιώργος Νικολάου Τάσος Νάσος Μαίρη Δρούγκα Δεδομένα Γιάννης Μαρδάκης Στέλλα Λούρου Κώστας Ντόλας

Κατακερματισμένα Αρχεία Κατακερματισμός (hashing) είναι μία τεχνική που εντοπίζει μια εγγραφή ενός αρχείου απευθείας από το κλειδί της αντιστοιχίζοντας το με τη διεύθυνση της εγγραφής μέσω κάποιας συνάρτησης. Το αρχείο που εφαρμόζει τη μέθοδο κατακερματισμού λέγεται κατακερματισμένο αρχείο. Η συνάρτηση που καθορίζει τη διεύθυνση της εγγραφής από το κλειδί της λέγεται συνάρτηση κατακερματισμού. Δεν απαιτείται ευρετήριο με αποτέλεσμα η μέθοδος να είναι πιο αποτελεσματική από αυτήν που χρησιμοποιεί ευρετήριο αντί για συνάρτηση. Κλειδί Διεύθυνση = Συνάρτηση κατακερματισμού (Κλειδί) Διεύθυνση Αντιστοίχιση σε ένα κατακερματισμένο αρχείο

Μέθοδος Άμεσου Κατακερματισμού 1/2 Άμεση μέθοδος κατακερματισμού: Το κλειδί αποτελεί και τη διεύθυνση. Διεύθυνση Εγγραφή 001 Ανδρέας Κόρος... 002 Βασίλης Λιγνός... Κλειδί Κατακερματισμός Διεύθυνση = Κλειδί 025 Ιωάννα Ψαρρού... 100 Χρίστος Μανιός...

Μέθοδος Άμεσου Κατακερματισμού 2/2 Παράδειγμα: Εφαρμογή της άμεσης μεθόδου σε κωδικούς υπαλλήλων (<=100) κάποιας εταιρείας. Κάθε εγγραφή υπαλλήλου έχει κλειδί τον κωδικό του υπαλλήλου. Η εγγραφή κάθε υπαλλήλου έχει διεύθυνση το κλειδί της εγγραφής, δηλαδή τον κωδικό του υπαλλήλου

Μέθοδος Κατακερματισμού Υπολοίπου Διαίρεσης 1/2 Μέθοδος κατακερματισμού υπολοίπου διαίρεσης (διαίρεσης Modulo): Η διεύθυνση της εγγραφής προσδιορίζεται από το υπόλοιπο της διαίρεσης του κλειδιού της εγγραφής με το μέγεθος της λίστας των εγγραφών του αρχείου (πλήθος εγγραφών) συν ένα. Συνάρτηση: Διεύθυνση = Κλειδί % μέγεθος λίστας % +1

Μέθοδος Κατακερματισμού Υπολοίπου Διαίρεσης 2/2 Διεύθυνση Εγγραφή Κλειδί 125870 Ανδρέας Κόρος... Κατακερματισμός Διεύθυνση = Κλειδί % 307 +1 = 121267 % 307 +1 = 2+1 =3 Η συνάρτηση λειτουργεί με οποιοδήποτε μέγεθος λίστας Πρόβλημα: Δύο κλειδιά κατακερματισμού υπολοίπου διαίρεσης οδηγούν στο ίδιο υπόλοιπο και επομένως στην ίδια διεύθυνση. Αντιμετώπιση: Επιλέγουμε, όπου αυτό είναι δυνατόν, το μέγεθος λίστας να είναι πρώτος αριθμός. Παράδειγμα: Αν θέλουμε να διαθέσουμε χώρο για 300 εγγραφές (υπαλλήλους) επιλέγουμε μέγεθος λίστας 307 εγγραφές ο αμέσως μεγαλύτερος του 300 πρώτος αριθμός. 122801 Βασίλης Λιγνός... 121267 Ελένη Γλινού... 123413 Χρίστος Μανιός... 395 307(121267 121265 2

Άλλες Μέθοδοι Κατακερματισμού Μέθοδος εξαγωγής ψηφίων: Τα επιλεγμένα ψηφία εξάγονται από το κλειδί και χρησιμοποιούνται ως διεύθυνση της εγγραφής. Μέθοδος μέσου τετραγώνου Μέθοδος αναδίπλωσης Περιστροφική μέθοδος Ψευδοτυχαία μέθοδος (Άσκηση: Να γραφεί ο αλγόριθμος κάθε μία από τις ανωτέρω μεθόδους).

Σύγκρουση 1/2 Σύγκρουση έχουμε όταν η μέθοδος κατακερματισμού παράγει μία διεύθυνση η οποία είναι ήδη κατειλημμένη. Τα κλειδιά που οδηγούν στην ίδια διεύθυνση λέγονται συνώνυμα. Η διεύθυνση που παράγεται από τον αλγόριθμο κατακερματισμού λέγεται οικεία διεύθυνση. Το τμήμα του αρχείου που περιέχει όλες τις οικείες διευθύνσεις λέγεται κύρια περιοχή. Επίλυση: Όταν δύο κλειδιά συγκρούονται σε μία οικία διεύθυνση η σύγκρουση πρέπει να επιλυθεί με την τοποθέτηση της μιας εγγραφής (κλειδί και των δεδομένων της εγγραφής που αντιστοιχεί) σε άλλη θέση.

Σύγκρουση 2/2 Εγγραφή Διεύθυνση 122803 Γιώργος Σταύρου... Εγγραφή 151354 Κώστας Γούσιος... Κατακερματισμός Διεύθυνση = Κλειδί % 307 +1 = 122803 % 307 +1 = 3 + 1 =4 Κατακερματισμός Διεύθυνση Κατακερματισμός = Κλειδί % 307 +1 Διεύθυνση = Κλειδί % 307 +1 = 151354 % 307 + 1 = 3 + 1 =4 Διεύθυνση Σύγκρουση (Ίδια Διεύθυνση) 400 307(122803 122800 3 493 307(151354 151357 3

Σύγκρουση: Επίλυση Ανοιχτής Διευθυνσιοδότησης Επίλυση ανοιχτής διευθυνσιοδότησης: Όταν συμβαίνει μια σύγκρουση οι διευθύνσεις της κύριας περιοχής αναζητούν μία μη κατειλημμένη (ανοιχτή) διεύθυνση για να τη διαθέσουν στην πρόσθετη (δεύτερη) εγγραφή. Διεύθυνση Εγγραφή Η διεύθυνση αυτή προσδιορίζεται από την Στην οικεία συνάρτηση: Διεύθυνση = οικεία διεύθυνση διεύθυνση διεύθυνση +1 Κατακερματισμός Διεύθυνση = Κλειδί % 307 +1 Στην οικεία 122803 Γιώργος Σταύρου... 151354 Κώστας Γούσιος... Στην επόμενη διεύθυνση (οικία διεύθυνση +1 = 4+1 = 5) Συνάρτηση Κατακερματισμού: Διεύθυνση = Κλειδί % 307 +1 Οικεία Διεύθυνση: 122803 % 307 + 1 = 3 + 1 = 4 151354 % 307 + 1 = 3 + 1 = 4 Επόμενη Διεύθυνση: Οικεία διεύθυνση + 1 = 4 + 1 = 5 Δεν επιλύεται πλήρως το πρόβλημα αφού κάθε σύγκρουση αυξάνει την πιθανότητα μελλοντικών συγκρούσεων

Σύγκρουση: Επίλυση Συνδεδεμένης Λίστας Διεύθυνση Εγγραφή Κατακερματισμός Διεύθυνση = Κλειδί % 307 +1 Στην οικεία διεύθυνση 122803 Γιώργος Σταύρου... Η πρώτη εγγραφή αποθηκεύεται στην οικεία διεύθυνση Η εγγραφή περιέχει και ένα πρόσθετο πεδίοδείκτη που δείχνει τη δεύτερη εγγραφή 151354 Κώστας Γούσιος... Περιοχή υπερχείλισης

Σύγκρουση: Επίλυση Κατακερματισμού Κάδου 1/3 Ο χώρος αποθήκευσης διαιρείται τμήματα που ονομάζονται κάδοι. Κάθε κάδος είναι ένας κόμβος που μπορεί να συμπεριλάβει πολλές εγγραφές ταυτόχρονα. Κάθε εγγραφή έχει ένα πεδίο-κλειδί. Μία συνάρτηση κατακερματισμού υπολογίζει τον αριθμό του κάδου για κάθε κλειδί (τιμή του πεδίου-κλειδί) για κάθε εγγραφή. Κάθε εγγραφή αποθηκεύεται στον κάδο που αντιστοιχεί στον κατακερματισμό του κλειδιού της. Όταν τα δύο κλειδιά κατακερματισμού οδηγούν στην ίδια διεύθυνση κάδου έχουμε σύγκρουση. Πρόκειται για μεγάλο πρόβλημα όταν ο πίνακας είναι γεμάτος πάνω από 75% Λύση: Αύξηση του αριθμού των κάδων και επανακατακερματισμό όλων των δεδομένων. Διεύθυνση κάδου Κάδος 122803 Γιώργος Σταύρου... Κατακερματισμός Διεύθυνση = Κλειδί % 307 +1 151354 Κώστας Γούσιος...

Σύγκρουση: Επίλυση Κατακερματισμού Κάδου 2/3 Παράδειγμα: Κατακερματισμός της τιμής του πεδίουκλειδιού 25X3Z σε ένα από τους 41 κάδους Τιμή Πεδίου-Κλειδιού (κλειδί): Αναπαράσταση ASCI II: Ισοδύναμη δεκαδική τιμή : Υπόλοιπο μετά τη διαίρεση με 41: Αριθμός κάδου:

Σύγκρουση: Επίλυση Κατακερματισμού Κάδου 3/3 Κατακερματισμός κάδου Υπόλοιπα Κατά τη διαίρεση με το 41 οι τιμές πεδίου κλειδιού 15, 55 και 96 παράγουν ένα υπόλοιπο ίσο με 14. Έτσι αυτές οι εγγραφές αποθηκεύονται στον κάδο 41. Κάδοι στο μέσο αποθήκευσης

Ερμηνεία Αρχείου Κειμένου και Δυαδικού Αρχείου Τα αρχεία κειμένου είναι αρχεία χαρακτήρων που δεν περιέχουν ακεραίους, αριθμούς κινητής υποδιαστολής, ή άλλες δομές δεδομένων που έχουν αποθηκευτεί στην εσωτερική μορφή του υπολογιστή. Τα δυαδικά αρχεία είναι μία συλλογή δεδομένων που έχουν αποθηκευτεί στην εσωτερική μορφή του υπολογιστή (π.χ. ακέραιοι, αριθμοί κινητής υποδιαστολής, χαρακτήρες, ή οποιαδήποτε άλλη μορφή δομημένων πληροφοριών). Ερμηνεύεται ως αρχείο κειμένου Ερμηνεύεται ως δυαδικό αρχείο Δύο bytes αντιπροσωπεύουν δύο χαρακτήρες (το Α και το Β) Δύο bytes αντιπροσωπεύουν έναν αριθμό (το 16706)

Βιβλιογραφία Α. Σιδερίδης, Εισαγωγή στην Επιστήμη των Υπολογιστών, Αθήνα. J. Glenn Brookshearr, Η επιστήμη των Υπολογιστών - Μια Ολοκληρωμένη Παρουσίαση, Κλειδάριθμος. L. Goldschlager, A. M. Lister, Εισαγωγή στη Σύγχρονη Επιστήμη των Υπολογιστών, Δίαυλος Behrouz Forouzan, Firouz Mosharraf, Εισαγωγή στην Επιστήμη των Υπολογιστών - 2η Αγγλική Έκδοση - Επιμέλεια: Γιώργος Στεφανίδης, Αλέξανδρος Χατζηγεωργίου. Κλειδάριθμος.

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδεια χρήσης, η άδεια χρήσης αναφέρεται ρητώς.

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στo πλαίσιo του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα Γεωπονικού Πανεπιστημίου Αθηνών» έχει χρηματοδοτήσει μόνο την αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους.

Σημείωμα Αναφοράς Copyright Γεωπονικό Πανεπιστήμιο Αθηνών. Τμήμα Αγροτικής Οικονομίας και Ανάπτυξης, Θεόδωρος Τσιλιγκιρίδης, «Εισαγωγή στην Επιστήμη των Υπολογιστών». Έκδοση: 1.0. Αθήνα 2015. Διαθέσιμο από τη δικτυακή διεύθυνση: https://oceclass.aua.gr/courses/ocdaerd111/

Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά, Παρόμοια Διανομή 4.0 [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων, π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό και τα οποία αναφέρονται μαζί με τους όρους χρήσης τους στο «Σημείωμα Χρήσης Έργων Τρίτων». Η άδεια αυτή ανήκει στις άδειες που ακολουθούν τις προδιαγραφές του Oρισμού Ανοικτής Γνώσης [2], είναι ανοικτό πολιτιστικό έργο [3] και για το λόγο αυτό αποτελεί ανοικτό περιεχόμενο [4]. [1] http://creativecommons.org/licenses/by-sa/4.0/ [2] http://opendefinition.org/okd/ellinika/ [3] http://freedomdefined.org/definition/el [4] http://opendefinition.org/buttons/

Διατήρηση Σημειωμάτων Οποιαδήποτε αναπαραγωγή ή διασκευή του υλικού θα πρέπει να συμπεριλαμβάνει: το Σημείωμα Αναφοράς το Σημείωμα Αδειοδότησης τη δήλωση Διατήρησης Σημειωμάτων το Σημείωμα Χρήσης Έργων Τρίτων (εφόσον υπάρχει) μαζί με τους συνοδευόμενους υπερσυνδέσμους.