ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ - ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ ΕΙΣΑΓΩΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ ΤΟΥΡΙΣΤΙΚΩΝ ΕΠΙΧΕΙΡΗΣΕΩΝ ΚΑΙ ΕΠΙΧΕΙΡΗΣΕΩΝ ΦΙΛΟΞΕΝΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗ I 5 η ΔΙΑΛΕΞΗ Δεδομένα ΧΑΣΑΝΗΣ ΒΑΣΙΛΕΙΟΣ
ΠΕΡΙΕΧΟΜΕΝΟ ΔΙΑΛΕΞΗΣ 1. Βασικά στοιχεία 2. Παράσταση αριθμών στον Η/Υ 3. Παράσταση χαρακτήρων 4. Δομές Δεδομένων 5. Αρχεία 6. Βάσεις δεδομένων 7. Προσωπικά δεδομένα 2
ΣΤΟΧΟΙ Να γνωρίσετε την έννοια των δεδομένων και τα χαρακτηριστικά τους Να κατανοήσετε την ανάγκη για κωδικοποίηση Να εξοικειωθείτε με τους τρόπους παράστασης αριθμών στον υπολογιστή Να εξοικειωθείτε με τους διάφορους τύπους αρχείων Να γνωρίσετε τις δομές και βάσεις δεδομένων 3
ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ Δεδομένα (data): Μία παράσταση γεγονότων, εννοιών ή εντολών σε τυποποιημένη μορφή που είναι κατάλληλη για επικοινωνία, ερμηνεία ή επεξεργασία από τον άνθρωπο ή από αυτόματα μέσα 4
ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ Επεξεργασία δεδομένων (data processing): Εκτέλεση με τoν υπολογιστή πράξεων/λειτουργιών πάνω στα δεδομένα σε μορφή κατανοητή από τον άνθρωπο ή άλλη μηχανή Το αποτέλεσμα της επεξεργασίας είναι η πληροφορία Τα δεδομένα κωδικοποιούνται και οργανώνονται με διάφορους τρόπους 5
ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΔΕΔΟΜΕΝΩΝ Τύπος: Αριθμητικού τύπου (2 ή 3,14), κειμένου ( Χασάνης ), ή λογικού τύπου (αληθές, ψευδές) Ακρίβεια: Στον υπολογιστή τα δεδομένα αποθηκεύονται και επεξεργάζονται με πεπερασμένη ακρίβεια Επιτρεπόμενες τιμές: Ανάλογα με το τι παριστάνουν, κάποιες τιμές δεν επιτρέπονται. Π.χ. Ημέρες εβδομάδας (1 7) Μέγεθος: Διαφορετικό μέγεθος ανά τύπο για αποθήκευση 6
ΠΗΓΕΣ ΔΕΔΟΜΕΝΩΝ Πληκτρολόγιο Περιφερειακά αναγνώρισης αλφαριθμητικών δεδομένων: Οπτικοί αναγνώστες χαρακτήρων (OCR), αναγνώστες ραβδωτών κωδίκων, μαγνητικές κάρτες Περιφερειακά εισαγωγής αναλογικών δεδομένων: Αναλογικά εισάγονται ήχος και εικόνα και ψηφιοποιούνται με ειδικά προγράμματα επεξεργασίας Δεδομένα από άλλους υπολογιστές: Μέσω δικτύου ή αποσπώμενων μέσων Δεδομένα από αισθητήρες: Διατάξεις αισθητήρων (sensors) που καταγράφουν φυσικά μεγέθη, όπως θερμοκρασία, πίεση, ακτινοβολία 7
ΒΑΣΙΚΑ ΔΟΜΙΚΑ ΣΤΟΙΧΕΙΑ Τα δυφία (bits) οργανώνονται σε ομάδες με διαφορετική δομή ανάλογα αν πρόκειται για: Αποθήκευση στην κεντρική μνήμη Αποθήκευση στους δίσκους Μετάδοση σε γραμμές επικοινωνιών Το αριστερότερο ψηφίο είναι το πλέον σημαντικό (MSB Most Significant Bit) Το δεξιότερο ψηφίο είναι το ελάχιστα σημαντικό (LSB Least Significant Bit) 8
ΒΑΣΙΚΑ ΔΟΜΙΚΑ ΣΤΟΙΧΕΙΑ Στους σημερινούς υπολογιστές οι μικροεπεξεργαστές χρησιμοποιούν λέξεις των 32bits ή λέξεις των 64bits, οπότε οι διευθύνσεις διαδοχικών λέξεων διαφέρουν κατά 4 bytes ή κατά 8 bytes Μεγακρική σύμβαση ΠΣByte Μικροακρική σύμβαση ΛΣByte 9
ΒΑΣΙΚΑ ΔΟΜΙΚΑ ΣΤΟΙΧΕΙΑ 10
ΠΑΡΑΣΤΑΣΗ ΑΚΕΡΑΙΩΝ Πεπερασμένο πλήθος που εξαρτάται από τον αριθμό των bits που διατίθενται για την παράσταση τους (με πρόσημο ή όχι) Εάν έχουμε n διαθέσιμα bits 2 n -1 (μη προσημασμένος ακέραιος) Προσημασμένοι ακέραιοι (πρόσημο και μέτρο) Το πλέον σημαντικό ψηφίο χρησιμοποιείται για πρόσημο (0 : +, 1 : -) 00110011 είναι ο +51 10110011 είναι ο -51 Μειονεκτήματα: Διπλή παράσταση για το μηδέν (0000,1000) 11
ΠΑΡΑΣΤΑΣΗ ΑΚΕΡΑΙΩΝ Συμπλήρωμα ως προς το ένα 00000101 (+5) 11111010 (-5) Μειονεκτήματα: Διπλή παράσταση για το μηδέν Συμπλήρωμα ως προς το δύο Αναστροφή των bits του αντίστοιχου θετικού και πρόσθεση του 1 00000101 (+5) (-5): 11111010 + 1 = 11111011 Γενικά, με n διαθέσιμα bits - 2 (n-1) έως 2 (n-1) -1 12
ΠΑΡΑΣΤΑΣΗ ΑΚΕΡΑΙΩΝ 13
ΠΑΡΑΣΤΑΣΗ ΣΤΑΘΕΡΗΣ ΥΠΟΔΙΑΣΤΟΛΗΣ H υποδιαστολή βρίσκεται σταθερά σε συγκεκριμένη θέση: 011001,01 Κατάλληλη μόνο όταν οι παριστάμενοι αριθμοί κυμαίνονται σε σχετικά μικρό εύρος και τα δεκαδικά ψηφία είναι συγκεκριμένα Εφαρμογές: Παιχνίδια Επεξεργασία σήματος Προτεραιότητα ταχύτητας έναντι ακρίβειας 14
ΠΑΡΑΣΤΑΣΗ ΚΙΝΗΤΗΣ ΥΠΟΔΙΑΣΤΟΛΗΣ Αντιμετώπιση πολύ μεγάλων ή μικρών αριθμών Αστρονομία: 15.500.000.000.000 (1,5x10 12 ) χιλιόμετρα Ατομική φυσική: 0,00000000000832 (8,32x10 13 ) μέτρα Floating point: Βασίζεται στη γνωστή μέθοδο έκφρασης αριθμών με επιστημονικό συμβολισμό (scientific notation) Τυποποίηση IEEE 754 Απλής ακρίβειας (single precision): 4 bytes Διπλής ακρίβειας (double precision): 8 bytes 15
ΠΑΡΑΣΤΑΣΗ ΚΙΝΗΤΗΣ ΥΠΟΔΙΑΣΤΟΛΗΣ n = (-1) s x 1, m x 2 e-127 Μαντίσα (βάση): 1,m είναι κανονικοποιημένη, που σημαίνει ότι προσαρμόζεται κάθε φορά ώστε να είναι μεγαλύτερη ή ίση της μονάδας, αλλά μικρότερη του 2 Το ψηφίο που βρίσκεται αριστερά της υποδιαστολής, εννοείται πάντα μονάδα (implied bit) γεγονός που επιτρέπει να μην το συμπεριλάβουμε στην αποθήκευση 16
ΠΑΡΑΣΤΑΣΗ ΚΙΝΗΤΗΣ ΥΠΟΔΙΑΣΤΟΛΗΣ Έτσι, αν και χρησιμοποιούνται 23 ψηφία στην αποθήκευση της μαντίσας, στην ουσία έχουμε ακρίβεια 24 δυαδικών ψηφίων (περίπου 7 δεκαδικών). Το -1 υψωμένο εις την s αποτελεί έναν τρόπο να αποδοθεί θετικός αριθμός αν s=0 ή αρνητικός s=1 επειδή -1 0 = 1 ενώ -1 1 = -1. Απλή ακρίβεια 1,00000000000000000000000x2-126 1,11111111111111111111111x2 127 1,175494351x10-38 3,402823466x10 38. 17
ΠΑΡΑΔΕΙΓΜΑ Ο αριθμός -0,8125 Δυαδικό: 0,1101 Με κανονικοποίηση: 1,101x2-1 Εκθέτης: Απλή ακρίβεια: e = -1+127=126 (01111110) Διπλή ακρίβεια : e = -1+1023=1022 (01111111110) Μαντίσα: 1010000 s=1 (αρνητικός) 18
ΠΑΡΑΔΕΙΓΜΑ Απλή ακρίβεια: 1 01111110 10100000000000000000000 Διπλή ακρίβεια : 1 01111111110 101000000000000000000000 0000000000000000000000000000 Μετατροπή: 1 01111110 10100000000000000000000 S = 1 01111110 = 126 (άρα εκθέτης 126-127 = -1) Μαντίσα = 1,101 (το 1 υπονοείται αριστερά) -(1+1x2-1 +0x2-2 + 1x2-3 )x2-1 =-(1+0,5 + 0,125)x0,5 = -0,8125. 19
ΠΑΡΑΣΤΑΣΗ ΚΙΝΗΤΗΣ ΥΠΟΔΙΑΣΤΟΛΗΣ Μέτρα ταχύτητας των υπολογιστών: FLOPS (Floatting Point Operations Per Second - πράξεις κινητής υποδιαστολής ανά δευτερόλεπτο) MFLOPS TFLOPS PFLOPS Γλώσσες προγραμματισμού int, float, double Μεταβλητές για την αποθήκευση, ακεραίων, κινητής υποδιαστολής απλής ακρίβειας και κινητής υποδιαστολής διπλής ακρίβειας, αντίστοιχα. 20
ΚΩΔΙΚΟΠΟΙΗΣΗ BCD Binary Coded Decimal: Δυαδική κωδικοποίηση δεκαδικών Κάθε δεκαδικό ψηφίο κωδικοποιείται σε δυαδική παράσταση 0: 0000 5: 0101 1: 0001 6: 0110 2: 0010 7: 0111 3: 0011 8: 1000 4: 0100 9: 1001 Δεν είναι ισοδύναμο με τη μετατροπή συνολικής δεκαδικής τιμής 202: 0010 0000 0010 ή 001000000010 κατά BCD 202: 11001010 (δυαδικό) (+) Ευκολία στη μετατροπή πράξεων και παράστασης στο δεκαδικό (-) Απαίτηση πολύπλοκων κυκλωμάτων για πράξεις, μεγάλο χώρο αποθήκευσης 21
ΠΑΡΑΣΤΑΣΗ ΧΑΡΑΚΤΗΡΩΝ Σε κάθε χαρακτήρα αντιστοιχίζεται ένας μοναδικός αριθμητικός κωδικός: θέση κωδικού (code position) τιμή κωδικού (code value) κωδικοσημείο (code point) Χώρος κωδικών (codespace) Το σύνολο των ακεραίων που χρησιμοποιείται για την κωδικοποίηση 22
ΠΑΡΑΣΤΑΣΗ ΧΑΡΑΚΤΗΡΩΝ Εγκωδίκευση χαρακτήρων (encoding) Ο τρόπος της ψηφιακής παράστασης χαρακτήρων μέσω της απεικόνισης αριθμητικών κωδικών χαρακτήρων σε ακολουθίες bytes (δυφιοκτάδες (octets)) Στην απλούστερη περίπτωση, κάθε χαρακτήρας απεικονίζεται σε έναν ακέραιο στην περιοχή 0 έως 255 23
ΠΑΡΑΣΤΑΣΗ ΧΑΡΑΚΤΗΡΩΝ Κάθε σύστημα κωδικοποίησης χαρακτήρων κωδικοποιεί ένα πεπερασμένο σύνολο χαρακτήρων, γνωστό ως ρεπερτόριο χαρακτήρων. Το ρεπερτόριο χαρακτήρων ορίζεται με ατομικό καθορισμό των χαρακτήρων και ένα δείγμα οπτικής παράστασής των. ΚΩΔΙΚΑΣ MORSE 24
ΚΩΔΙΚΟΠΟΙΗΣΗ ASCII Κωδικοποίηση ASCII (American Standard for Information Interchange - Αμερικανική Τυποποίηση για την Ανταλλαγή Πληροφοριών 1963) Η πρώτη κωδικοποίηση χαρακτήρων που έτυχε καθολικής αποδοχής 25
ΚΩΔΙΚΟΠΟΙΗΣΗ ASCII Κωδικοποίηση χαρακτήρων χρησιμοποιώντας 7 bits. Κωδικοποίηση 2 7 = 127 χαρακτήρων: Το λατινικό αλφάβητο σε πεζά και κεφαλαία (a-z, Α-Ζ) Σημεία στίξης, τελεστές πράξεων και άλλα σύμβολα όπως (!,@,*,/,&,# κ.α.) Μη εκτυπώσιμους χαρακτήρες ελέγχου όπως (<CR>, <BEL>, <ESC>, <LF> κ.α.). 26
ΤΥΠΟΠΟΙΗΣΕΙΣ ΜΕ ΒΑΣΗ ASCII Με την ευρεία διάδοση των υπολογιστών και σε χώρες που χρησιμοποιούσαν ειδικούς λατινικούς χαρακτήρες ή δεν χρησιμοποιούσαν λατινικούς χαρακτήρες όπως στην Ελλάδα, κατέστη αναγκαία η επέκταση του κατά ένα bit ώστε να κωδικοποιηθούν επιπλέον σύμβολα. Στη λογική επέκτασης της βασικής κωδικοποίησης ASCII, εμφανίστηκαν διάφορες τυποποιήσεις με βάση την κωδικοποίηση αυτή, με γνωστότερες τις σειρές κωδικοποιήσεων ISO-8859 και τις αντίστοιχες των Windows. 27
ΤΥΠΟΠΟΙΗΣΕΙΣ ΜΕ ΒΑΣΗ ASCII Στις κωδικοποιήσεις αυτές, οι πρώτοι 127 χαρακτήρες: χαρακτήρες ελέγχου λατινικούς χαρακτήρες κεφαλαίους και πεζούς τα δεκαδικά ψηφία 0-9 και σύμβολα στίξης τελεστές πράξεων και άλλα σύμβολα. Οι θέσεις 128-255 χρησιμοποιούνται για κωδικοποίηση ιδιαίτερων χαρακτήρων που περιλαμβάνονται σε άλλες ευρωπαϊκές γλώσσες που χρησιμοποιούν το λατινικό αλφάβητο. 28
ΤΥΠΟΠΟΙΗΣΕΙΣ ΜΕ ΒΑΣΗ ASCII Με τον τρόπο αυτό, μπορεί να χρησιμοποιηθεί μια μόνο κωδικοποίηση για να εξυπηρετηθούν γλώσσες όπως Αγγλικά, Γαλλικά, Γερμανικά, Ισπανικά Oι γλώσσες αυτές χρησιμοποιούν όλες το λατινικό αλφάβητο με σχετικά περιορισμένες προσθήκες, οι οποίες μπορούν να χωρέσουν στις θέσεις 128-255. (ISO-8859) 29
ΤΥΠΟΠΟΙΗΣΕΙΣ ΜΕ ΒΑΣΗ ASCII Αντίστοιχη κωδικοποίηση από τη Microsoft, θεωρείται η κωδικοποίηση Windows Latin 1 γνωστή και ως windows-1252 Για την Ελλάδα η σχετική κωδικοποίηση είναι η ISO-8859-7 ή "ISO Greek". Οι ελληνικοί χαρακτήρες βρίσκονται στις θέσεις 160-255. Επίσης για την Ελλάδα γνωστή κωδικοσελίδα για το περιβάλλον των Windows είναι η 1253 Windows Greek. 30
ΤΥΠΟΠΟΙΗΣΕΙΣ ΜΕ ΒΑΣΗ ASCII 31
UNICODE Η λύση χρήσης των χαμηλών θέσεων, για την κωδικοποίηση των χαρακτήρων του λατινικού αλφαβήτου και των υψηλών θέσεων για κωδικοποίηση άλλων χαρακτήρων που αντιστοιχούν είναι προβληματική στις περιπτώσεις που χρειάζεται χρήση συνδυασμών, οι οποίοι δεν υποστηρίζονται ταυτόχρονα Μία ενιαία κωδικοποίηση θα πρέπει να αντιστοιχίζει σε κάθε χαρακτήρα κάθε συστήματος γραφής έναν μοναδικό αριθμό, ανεξάρτητα από τη γλώσσα, τη γραμματοσειρά, το λειτουργικό σύστημα, το λογισμικό, ή το υλικό που χρησιμοποιείται για την απόδοσή του. 32
UNICODE Η υλοποίηση της λύσης αυτής σήμερα, ακούει στο όνομα Unicode και δίνει τη δυνατότητα να απεικονίσει κανείς ακριβώς το χαρακτήρα που θέλει σε οποιοδήποτε σύστημα υποστηρίζει Unicode. Ως σύστημα εδώ δεν θεωρείται μόνο το Λειτουργικό Σύστημα, αλλά και η εφαρμογή και το υλικό απεικόνισης (π.χ. εκτυπωτής) τα οποία πρέπει επίσης να υποστηρίζουν Unicode. Στο Unicode, ένας χαρακτήρας αντιστοιχεί σε ένα κωδικοσημείο (code point), δηλ. σε έναν ακέραιο αριθμό στον οποίο αναφέρεται κανείς με μια έκφραση του τύπου U+nnnn[nn] Η λέξη "Hello" αντιστοιχεί στα: U + 0048 U+0065 U+006C U+006C U+006F 33
UNICODE Στον Unicode υπάρχουν πολλοί εναλλακτικοί τρόποι εγκωδίκευσης όπως, UTF-8, UTF-16, UTF-32 (Unicode Transformation Format) Ένας χαρακτήρας κατά την τυποποίηση Unicode, αναγνωρίζεται από: μια αντιπροσωπευτική γλυφή (γραφικό σύμβολο) έναν μοναδικό αριθμό που δεν αλλάζει ποτέ και είναι ανεξάρτητος πλατφόρμας, προγράμματος και γλώσσας ένα όνομα μια σειρά από ιδιότητες (όπως αν πρόκειται για ψηφίο, γράμμα, σημείο στίξης, κ.λπ.) και επιπλέον σχόλια. Για παράδειγμα, ο χαρακτήρας "+" έχει ως γλυφή την +, αριθμό 002Β 16, όνομα το PLUS SIGN, γενική κατηγορία Sm (Symbol Math) και δεν έχει επιπλέον σχόλια. 34
ΚΩΔΙΚΟΠΟΙΗΣΗ ΧΑΡΑΚΤΗΡΩΝ ΣΤΗΝ ΠΡΑΞΗ Κάποια εφαρμογή μπορεί μην αναγνωρίζει την κωδικοποίηση χαρακτήρων κάποιου εγγράφου που καλείται να επεξεργαστεί. Είτε επειδή δε γνωρίζει πως έχουν κωδικοποιηθεί οι χαρακτήρες Είτε επειδή δεν υποστηρίζει καθόλου την κωδικοποίηση χαρακτήρων που χρησιμοποιήθηκε, κατά τη σύνταξη του εγγράφου. 35
ΚΩΔΙΚΟΠΟΙΗΣΗ ΧΑΡΑΚΤΗΡΩΝ ΣΤΗΝ ΠΡΑΞΗ Σε άλλες περιπτώσεις, το πρόγραμμα αναγνωρίζει τους χαρακτήρες αλλά δεν μπορεί να τους απεικονίσει επειδή δεν βρίσκει αντίστοιχο γραφικό σύμβολο (γλυφή) στην τρέχουσα γραμματοσειρά. Στην περίπτωση αυτή, τυπικά εμφανίζει στη θέση του κάποιον άλλο χαρακτήρα συνήθως τετραγωνάκια, ερωτηματικά κ.λπ. 36
ΕΠΕΞΕΡΓΑΣΤΕΣ ΚΕΙΜΕΝΟΥ ΚΑΙ ΣΥΝΤΑΚΤΕΣ Σε έναν επεξεργαστή κειμένου, μπορεί κανείς να καθορίσει την κωδικοποίηση με την οποία θα αποθηκευτεί το έγγραφό του κατά την αποθήκευση. Τα σύγχρονα προγράμματα επεξεργασίας κειμένου, συχνά λύνουν αρκετά προβλήματα κωδικοποίησης χαρακτήρων αυτόματα. 37
ΕΦΑΡΜΟΓΕΣ ΔΙΑΔΙΚΤΥΟΥ Σε προγράμματα ηλεκτρονικού ταχυδρομείου, οι χρησιμοποιούμενες κωδικοποιήσεις περιλαμβάνονται στις επικεφαλίδες του μηνύματος. Content-Type: text/plain;charset="iso-8859-7" Στα έγγραφα HTML των υπηρεσιών παγκόσμιου ιστού (web), η χρησιμοποιούμενη κωδικοποίηση και οι σχετικές πληροφορίες, αποστέλλονται από τον εξυπηρετητή της υπηρεσίας μαζί με το έγγραφο, επίσης υπό μορφή επικεφαλίδας. <html> <head> <meta http-equ v="content-type" content ="text/html;c/jarsef=utf-8"> 38
ΕΦΑΡΜΟΓΕΣ ΔΙΑΔΙΚΤΥΟΥ Αν ένα μήνυμα ηλεκτρονικού ταχυδρομείου συνταχθεί σε πρόγραμμα όπου έχει ρυθμιστεί για συγκεκριμένη κωδικοποίηση π.χ. Greek ISO, και το αντίστοιχο πρόγραμμα του παραλήπτη έχει ρυθμιστεί σε διαφορετική κωδικοποίηση, π.χ. Western European Windows, οι ελληνικοί χαρακτήρες δεν θα είναι αναγνώσιμοι 39
ΓΡΑΜΜΑΤΟΣΕΙΡΕΣ Η εμφάνιση του ίδιου χαρακτήρα μπορεί να διαφέρει, ανάλογα με τη χρησιμοποιούμενη γραμματοσειρά απεικόνισης του, ή τυχόν μορφοποίηση που του έχει αποδοθεί (έντονη, πλάγια κ.λπ.). Μια γραμματοσειρά περιέχει ένα οργανωμένο σύνολο γραφικών συμβόλων (γλυφών). Ένα γραφικό σύμβολο ή γλυφή (glyph), αποτελεί μια παράσταση συγκεκριμένου σχήματος που μπορεί να έχει ένας χαρακτήρας, όταν αυτός αποδίδεται (εμφανίζεται - τυπώνεται). 40
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Οι γλώσσες προγραμματισμού χρησιμοποιούν: Χαρακτήρες: α, β, a, b, 1, 2, #, @ Αριθμούς: 1, 32.000, 1,2Ε+11 Λογικούς τύπους: Αληθής (true) - Ψευδής (false) Η δήλωση τους (ανάλογα με τη γλώσσα) γίνεται με ειδικές εντολές: int Double Real*4 Οι βασικοί τύποι συνδυάζονται για τη δημιουργία πιο σύνθετων δομών δεδομένων 41
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Πίνακες (arrays): Πεπερασμένο διατεταγμένο σύνολο δεδομένων, μίας ή περισσότερων διαστάσεων. Κάθε στοιχείο προσπελαύνεται μέσω δείκτη Συμβολοσειρές (strings): Πεπερασμένες ακολουθίες χαρακτήρων Εγγραφές: Διατεταγμένη συλλογή, μη ομογενών στοιχείων, που λαμβάνεται ως μονάδα Στοίβες (stacks): Γραμμικές διατάξεις στοιχείων, στις οποίες εισάγονται και εξάγονται δεδομένα μόνο από το ένα άκρο Ώθηση (push) και απώθηση (pull) LIFO (Last In First Out): Το τελευταίο εισαγόμενο εξέρχεται πρώτο 42
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Ουρές (queues): Γραμμική διάταξη στοιχείων στις οποίες εισάγονται δεδομένα από το ένα άκρο (enqueue) και εξέρχονται από το άλλο άκρο (dequeue) FIFO (First In First Out): Το πρώτο εισαγόμενο εξέρχεται πρώτο Συνδεδεμένες λίστες (Linked Lists): Κάθε στοιχείο συνδέεται με το επόμενο του με τη βοήθεια κάποιου δείκτη (pointer). Τα δεδομένα της λίστας ονομάζονται κόμβοι (nodes) Δένδρα (trees): Αποτελούν μη γραμμικές δομές. Αποτελούνται από ένα σύνολο κόμβων που συνδέονται με ακμές. Από τη ρίζα (root) ξεκινούν μόνο ακμές. Οι κόμβοι στους οποίους καταλήγουν μόνο ακμές ονομάζονται φύλλα (leaves) Γράφοι (graphs): Αποτελούνται από κόμβους και ακμές χωρίς γενική ιεράρχηση 43
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Οι δομές δεδομένων διακρίνονται σε: Στατικές (static): Σταθερό μέγεθος και συγκεκριμένο πλήθος στοιχείων (πίνακες) Δυναμικές (dynamic): Το πλήθος των στοιχείων μπορεί να μεταβάλλεται (αρχεία) Γραμμικές (linear): καθορίζεται η σχέση διάταξης (στοίβες, πίνακες) Μη γραμμικές (non linear): (δέντρα) Η γραμμικότητα μίας δομής μπορεί να είναι φυσική (πίνακες) ή λογική, τα στοιχεία βρίσκονται σε μη διαδοχικές θέσεις στη μνήμη, αλλά να συνδέονται λογικά με δείκτες 44
ΑΡΧΕΙΑ ΔΕΔΟΜΕΝΩΝ Εκτελέσιμα αρχεία (executable): αρχεία που περιέχουν προγράμματα σε γλώσσα μηχανής Αρχεία δεδομένων (data files): Αρχεία κειμένου Δυαδικά αρχεία (binary files): Δεν είναι άμεσα αναγνώσιμα Κατάλογοι (directories) ή φάκελοι (folders): Χρησιμοποιούνται για την ιεραρχική δόμηση των υπόλοιπων αρχείων Μεταδεδομένα (metadata): Δεδομένα που περιγράφουν/ εξηγούν άλλα δεδομένα Μπορούν να αποθηκευθούν μαζί με το αντικείμενο που περιγράφουν (HTML) ή ξεχωριστά Αναζήτηση 45
ΑΡΧΕΙΑ ΔΟΜΗΜΕΝΩΝ ΔΕΔΟΜΕΝΩΝ Χαρακτήρας (character) Πεδίο (field): Είναι ένα σύνολο χαρακτήρων που περιγράφει ή αντιπροσωπεύει ένα δεδομένο. Το ονοματεπώνυμο, η διεύθυνση και το ΑΦΜ ενός πελάτη είναι παραδείγματα πεδίων. Κάθε πεδίο χαρακτηρίζεται από το μήκος του και τον τύπο του Λογική εγγραφή (logical record): Ένα σύνολο αλληλοσυσχετιζομένων πληροφοριών (πεδίων) που περιγράφουν μια οντότητα. 46
ΑΡΧΕΙΑ ΔΟΜΗΜΕΝΩΝ ΔΕΔΟΜΕΝΩΝ Στα αρχεία του είδους αυτού πολύ σημαντική είναι η έννοια του κλειδιού. Κλειδί (key) είναι ένα πεδίο της εγγραφής που προσδιορίζει τη λογική εγγραφή και αποτελεί τη βάση οργάνωσης του αρχείου. Για παράδειγμα, σε ένα αρχείο πελατών, κλειδί μπορεί να είναι ο κωδικός του πελάτη, σε ένα αρχείο φορολογουμένων ο ΑΦΜ, 47
ΒΑΣΙΚΕΣ ΛΕΙΤΟΥΡΓΙΕΣ ΜΕ ΑΡΧΕΙΑ Ανάκτηση πληροφοριών (retrieval): Η λήψη του περιεχομένου μιας εγγραφής, χωρίς να γίνει καμία μεταβολή επί του αρχείου. Ερώτημα (query): Αναζήτηση και ανάκτηση εγγραφών του αρχείου, οι οποίες πληρούν συγκεκριμένες συνθήκες που θέτει ο χρήστης Φιλτράρισμα: Η εμφάνιση ορισμένων μόνον από ένα σύνολο δεδομένων, με βάση κάποιες συνθήκες ή κριτήρια που πρέπει να πληρούν τα φιλτραρισμένα δεδομένα. 48
ΒΑΣΙΚΕΣ ΛΕΙΤΟΥΡΓΙΕΣ ΜΕ ΑΡΧΕΙΑ Ενημέρωση (updating): Η με οποιονδήποτε τρόπο μεταβολή των χαρακτηριστικών ενός αρχείου (πλήθος ή/και περιεχόμενο των εγγραφών του) Προσθήκη (addition) ή δημιουργία (creation): Δημιουργία νέας εγγραφής Διαγραφή ή ακύρωση (deletion): Φυσική διαγραφή: Ο χώρος που καταλαμβάνεται απελευθερώνεται και μπορεί να χρησιμοποιηθεί για τη δημιουργία μιας νέας Λογική διαγραφή: Η εγγραφή θεωρείται ως διαγραμμένη, αλλά ακόμη δεν έχει γίνει η φυσική απομάκρυνσή της. Μεταβολή ή τροποποίηση (modification): Αλλαγή στοιχείων χωρίς να αλλάζει η θέση της εγγραφής 49
ΒΑΣΙΚΕΣ ΛΕΙΤΟΥΡΓΙΕΣ ΜΕ ΑΡΧΕΙΑ Συγχώνευση (merging): Δύο ή περισσότερα ταξινομημένα αρχεία ενώνονται και δημιουργούν ένα επίσης ταξινομημένο Συνένωση ή προσάρτηση (append): Ένα αρχείο προσαρτάται στο τέλος του άλλου Αντιγραφή (Copy) Δημιουργία εφεδρικών αντιγράφων (backup) Επαλήθευση (verification): Γίνεται έλεγχος για να εξασφαλιστεί ότι τα δεδομένα που εισάγονται ταιριάζουν ακριβώς σε αυτά της αρχικής πηγής. Αυτό, όπου χρειάζεται, επιτυγχάνεται κυρίως με διπλή εισαγωγή. 50
ΒΑΣΙΚΕΣ ΛΕΙΤΟΥΡΓΙΕΣ ΜΕ ΑΡΧΕΙΑ Επικύρωση (validation): Αυτόματο έλεγχο που πραγματοποιούν τα προγράμματα ενημέρωσης αρχείων, ο οποίος εξασφαλίζει ότι τα εισαγόμενα δεδομένα είναι τα αναμενόμενα από άποψη δομής Ψηφίο ελέγχου: Η δομή του κωδικού είναι τέτοια, ώστε ένα ή δύο ψηφία σε έναν κωδικό να χρησιμοποιούνται για να διαπιστωθεί ότι τα υπόλοιπα ψηφία είναι σωστά. Για παράδειγμα το τελευταίο ψηφίο του ΑΦΜ είναι ψηφίο ελέγχου. Έλεγχος τύπου: Ελέγχεται, αν τα δεδομένα που εισάγονται είναι του αναμενόμενου τύπου. 51
ΒΑΣΙΚΕΣ ΛΕΙΤΟΥΡΓΙΕΣ ΜΕ ΑΡΧΕΙΑ Έλεγχος μήκους: Ελέγχει, αν το μήκος ενός πεδίου που εισάγεται βρίσκεται εντός των αναμενόμενων ορίων μήκους. Έλεγχος παρουσίας: Ελέγχεται, αν κάποιο υποχρεωτικό πεδίο έχει πληκτρολογηθεί ή όχι. Έλεγχος εύρους: Ελέγχεται αν η τιμή που δόθηκε σε ένα αριθμητικό πεδίο βρίσκεται εντός των αναμενόμενων για αυτό ορίων. Έλεγχος με βάση αναφορά σε πίνακα: Ελέγχεται, αν μια εισαγόμενη τιμή είναι επιτρεπτή με αναφορά σε πίνακα που περιέχει τις επιτρεπτές τιμές. 52
ΟΡΓΑΝΩΣΗ ΑΡΧΕΙΩΝ Η σειριακή οργάνωση (sequential) Η πιο φυσική οργάνωση αρχείων. Οι εγγραφές του αρχείου καταλαμβάνουν διαδοχικές θέσεις του μέσου και με τον ίδιο τρόπο μπορεί να γίνει η πρόσβαση σε αυτές. Για να διαβαστεί η ν-οστή εγγραφή, πρέπει να προηγηθεί αναγκαστικά η ανάγνωση των προηγούμενων ν-1 εγγραφών. Η σειριακή οργάνωση είναι η μόνη που επιτρέπεται στις ταινίες. Γι' αυτό πρακτικά σήμερα οι ταινίες χρησιμοποιούνται πλέον μόνο για εφεδρικά αντίγραφα. 53
ΟΡΓΑΝΩΣΗ ΑΡΧΕΙΩΝ Άμεση ή τυχαία (random) Οι εγγραφές τοποθετούνται πάλι διαδοχικά, αλλά η πρόσβαση σε αυτές μπορεί να γίνει είτε διαδοχικά, είτε άμεσα. Δεν απαιτείται πλέον η ανάγνωση των εγγραφών που προηγούνται. Αρκεί να δοθεί ο αύξων αριθμός της εγγραφής και το σύστημα φροντίζει να βρει την ακριβή θέση της και να την ανακτήσει. 54
ΟΡΓΑΝΩΣΗ ΑΡΧΕΙΩΝ Δεικτοδοτούμενη (indexed sequential) Παράλληλα με τις εγγραφές του αρχείου που δεν είναι απαραίτητο πλέον να βρίσκονται σε διαδοχικές θέσεις τηρείται και ένας πίνακας δεικτών. Ο πίνακας αυτός περιέχει τα κλειδιά των εγγραφών μαζί με τις θέσεις των τελευταίων επί του αρχείου. Για να εντοπισθεί μια εγγραφή με δοσμένο κλειδί, ψάχνεται αρχικά ο πίνακας δεικτών και μόλις βρεθεί το ζητούμενο κλειδί, γίνεται άμεση προσπέλαση στο αρχείο, στη θέση που υποδεικνύει ο δείκτης που συνοδεύει το κλειδί στον πίνακα δεικτών 55
ΟΡΓΑΝΩΣΗ ΑΡΧΕΙΩΝ Με τον τρόπο αυτό η μόνη επιβάρυνση για την προσπέλαση μιας εγγραφής οφείλεται στο ψάξιμο του πίνακα δεικτών, ο οποίος όμως είναι πολύ μικρός σε σχέση με το αρχείο. Έτσι μπορεί να μεταφέρεται ολόκληρος (ή κατά τμήματα) στην κύρια μνήμη, όπου η ταχύτητα προσπέλασης είναι σημαντικά μεγαλύτερη. Ο τρόπος αυτός οργάνωσης και πρόσβασης, χρησιμοποιείται ως βάση για την αποδοτική πρόσβαση σε πληροφορίες που τηρούνται σε απλά αρχεία, αλλά και προχωρημένα Συστήματα Διαχείρισης Βάσεων Δεδομένων 56
ΟΡΓΑΝΩΣΗ ΑΡΧΕΙΩΝ 57