ΚΕΦΑΛΑΙΟ 3 ΔΕΔΟΜΕΝΑ – ΔΟΜΕΣ
Δεδομένα είναι η
αφαιρετική αναπαράσταση της πραγματικότητας. Δηλαδή, σκεφτείτε ότι όταν
ένας άνθρωπος είναι γνωστός σας , δε χρειάζεστε δεδομένα για να έχετε μια
εικόνα του. Όμως, αν κληθείτε να περιγράψετε το γνωστό σας σε κάποιον που δεν
τον έχει ξαναδεί, θα αναγκαστείτε να χρησιμοποιήσετε δεδομένα (π.χ. ύψος, βάρος, χρώμα μαλλιών και ματιών κλπ) για να δώσετε
μια εικόνα του .
Ανάλογα τον τύπο του προβλήματος και το είδος της πληροφορίας που ψάχνουμε,
κάποια δεδομένα θεωρούνται χρήσιμα
και άλλα άχρηστα. Π.χ. για να δούμε
αν ένας μαθητής είναι καλός, χρήσιμα δεδομένα είναι οι βαθμοί στα προφορικά, στα διαγωνίσματα, ο μέσος όρος, οι απουσίες, η
διαγωγή. Άχρηστα δεδομένα είναι, λογουχάρη, τα σωματομετρικά
χαρακτηριστικά.
Η πληροφορική είναι η επιστήμη
που συλλέγει τα δεδομένα, τα επεξεργάζεται -συσχετίζει με βάση
κάποιο αλγόριθμο και αναδεικνύει την
πληροφορία.
Όταν έχουμε την πληροφορία που χρειαζόμαστε, θα κάνουμε με βάση αυτή κατάλληλες ενέργειες, που στη συνέχεια θα
παράγουν νέα δεδομένα, που θα επεξεργαστούν και αυτά και θα δώσουν νέα
πληροφορία κ.ο.κ.
Η μέτρηση, η κωδικοποίηση και η μετάδοση της πληροφορίας είναι θέμα της Θεωρίας Πληροφοριών.
Η Πληροφορική μελετά τα δεδομένα από την πλευρά των παρακάτω:
Υλικού: Δηλαδή των συσκευών που αποθηκεύουν δεδομένα
(μνήμη RAM,
δίσκοι, δισκέτες, CD, κλπ). Εδώ εξετάζεται και η μορφή που έχουν τα δεδομένα. Πχ μπορεί να
είναι σε κώδικα ASCII (πχ að 01000010), ή σε συμπλήρωμα του 1 (σε ένα δυαδικό αριθμό, όλα τα 0 γίνονται
1 και τα 1 γίνονται 0), ή συμπλήρωμα του 2 (= συμπλήρωμα του 1 προσθέτοντας το
1).
Γλωσσών προγραμματισμού: Οι γλώσσες υψηλού
επιπέδου ορίζουν με ακρίβεια τους τύπους των δεδομένων (π.χ. ακέραιοι,
πραγματικοί, λογικοί, χαρακτήρες) και τους χειρίζονται κατάλληλα.
Δομών Δεδομένων: Πρόκειται
για ένα σύνολο δεδομένων με συγκεκριμένη διάταξη και ένα σύνολο επιτρεπτών λειτουργιών
πάνω σε αυτά (π.χ. προσπέλαση, εισαγωγή, διαγραφή, αντιγραφή, συγχώνευση κλπ).
Μια δομή, για παράδειγμα είναι ένα αρχείο,
δηλαδή ένα σύνολο δεδομένων αποθηκευμένο σε κάποιο αποθηκευτικό χώρο με
συγκεκριμένο όνομα (π.χ. έγγραφο1.txt). Τα δεδομένα θα είναι κάπως έτσι:
Παρατηρούμε ότι το κόμμα χωρίζει
καθορισμένα πεδία. Η πληροφορία για
κάθε άνθρωπο που περιέχει το αρχείο αντιστοιχεί σε μία εγγραφή (γραμμή). Τα χαρακτηριστικά που έχει η κάθε εγγραφή
φαίνονται στα πεδία της (π.χ. όνομα, επίθετο, Α.Τ.,Τηλ )
Μια άλλη δομή δεδομένων είναι οι πίνακες
που θα δούμε παρακάτω. Είναι σημαντικό τα δεδομένα να είναι τοποθετημένα σε
δομές, για ταχύτερη και καλύτερη επεξεργασία τους.
Κάθε Δομή Δεδομένων αποτελείται από ένα σύνολο κόμβων.
Ανάλυσης Δεδομένων. Συχνά τα δεδομένα δεν αποθηκεύονται σε μία και
μόνη δομή (π.χ. σε ένα πίνακα) αλλά σε πολλές. Αυτές έχουν σχέση μεταξύ τους.
Φανταστείτε ότι υπάρχει ένας πίνακας (ή αρχείο) που έχει όλα τα στοιχεία των
υπαλλήλων μιας εταιρίας και ένας άλλος πίνακας που περιέχει μόνο τα τμήματα.
Κάθε υπάλληλος προφανώς ανήκει σε κάποιο τμήμα. Άρα οι δύο αυτές δομές έχουν κάποια σχέση μεταξύ τους. Αυτή η σχέση
πρέπει να καταγραφεί και να υλοποιηθεί όταν στήνουμε το σύστημα επεξεργασίας
δεδομένων (π.χ. μία βάση δεδομένων). Προφανώς, δεν είναι σωστό να
επαναλαμβάνουμε δεδομένα σε κάθε πίνακα, διότι σπαταλάμε χώρο. Έτσι, για
παράδειγμα, στον πίνακα των τμημάτων δε θα επαναλάβουμε όλα τα δεδομένα των
υπαλλήλων, αλλά μόνο ένα μοναδικό πεδίο που τους περιγράφει (π.χ. τον αριθμό
μητρώου). Όταν όμως, κάποιος παραιτηθεί, πρέπει να σβηστεί η εγγραφή από όλους
τους πίνακες. Έχοντας, λοιπόν, σχεδιάσει
σωστά τον αλληλοσυσχετισμό των δομών
αυτών, τα δεδομένα στη βάση μας θα ενημερώνονται σωστά και δε θα υπάρχουν
αποκλίσεις και λάθη. Διαφορετικά, ο κάθε πίνακας (ή αρχείο) θα δίνει διαφορετική απάντηση στο ίδιο ερώτημα
(π.χ. πόσους υπαλλήλους έχει η εταιρία;)
Είναι σημαντικό να τονιστεί ότι η κάθε δομή μπορεί να είναι αποδοτική σε
ένα είδος λειτουργίας (π.χ. αναζήτηση) , αλλά λιγότερο αποδοτική σε άλλο είδος
(π.χ. συγχώνευση)
Επομένως, γίνεται αντιληπτό ότι είναι απαραίτητο ο αλγόριθμός να
προσαρμοστεί κατάλληλα, ώστε να επεξεργάζεται
σωστά και αποδοτικά τα δεδομένα , ανάλογα με την υπάρχουσα δομή στην οποία
έχουν αποθηκευτεί. Διαφορετικά, το πρόγραμμα που θα γράψουμε αργότερα, θα είναι
λάθος (π.χ. δε θα μπορεί να διαβάζει τα δεδομένα). Ισχύει, λοιπόν, η σχέση:
Αλγόριθμοι +Δομές Δεδομένων =
Προγράμματα
Τόσο η σωστή επιλογή της δομής όσο και του αλγορίθμου μπορεί να είναι
καθοριστικής σημασίας. Μια λάθος επιλογή μπορεί να οδηγήσει σε ανεπίτρεπτες
καθυστερήσεις. Στεφτείτε, για παράδειγμα, ότι κάθε φορά που ξεκινάτε μία κλήση, το σύστημα ελέγχει το
λογαριασμό σας στη Βάση Δεδομένων της εταιρίας που είστε συνδρομητές. Μεγάλες
καθυστερήσεις από λάθος δομές ή αλγορίθμους, οδηγούν τους συνδρομητές σε
αγανάκτηση και επιλογή άλλης εταιρίας, αλλά και το σύστημα σε τραγική
συμφόρηση.
Οι λειτουργίες που πιθανόν να επιτρέπονται στα δεδομένα
μιας δομής είναι : Προσπέλαση, Εισαγωγή,
Διαγραφή, Διαχωρισμός, Συγχώνευση, Αντιγραφή, Ταξινόμηση, Αναζήτηση
Δεν υπάρχουν σχόλια:
Δημοσίευση σχολίου
Σημείωση: Μόνο ένα μέλος αυτού του ιστολογίου μπορεί να αναρτήσει σχόλιο.