Τριαντάφυλλος Πριμηκύρης* Βασικά ζητήματα μιας βάσης δεδομένων Τι είναι μια βάση δεδομένων; Ας ξεκινήσουμε με κάτι πολύ απλό! Όλοι έχετε έναν τηλεφωνικό κατάλογο. Ο κατάλογος αυτός είναι μια χειροκίνητη βάση δεδομένων. Περιλαμβάνει καρτέλες όπου εγγράφονται ομοειδείς πληροφορίες, ονόματα, ταξινομημένα κατά αλφαβητική σειρά. Ανάλογα με το τι θέλουμε μπορούμε να προσθέσουμε και κάποιες άλλες πληροφορίες, όπως μιά διεύθυνση ή ένα τηλέφωνο. Έτσι μπορούμε να πάμε στο Γ να ψάξουμε το όνομα Γιώργος και να βρούμε όνομα, διεύθυνση, τηλέφωνο. Αυτή τη χειροκίνητη βάση δεδομένων, όταν ήρθαν οι υπολογιστές, είπαν ότι μπορούμε να την περάσουμε σε μιαν ηλεκτρονική μορφή, η οποία έχει να μας προσφέρει μια ταχύτερη ακόμη αναζήτηση, μεγαλύτερο όγκο πληροφοριών και φυσικά όχι μόνον τέτοιες προσωπικού είδους πληροφορίες. Προφανώς όσοι δουλεύετε σε βιβλιοθήκες κάποιο τέτοιο σύστημα με καρτέλες το έχετε χρησιμοποιήσει χειροκίνητα για να έχετε καταχωρημένα τα δελτία και μάλιστα σε διπλές σειρές, άλλα αλφαβητικά, άλλα μέσω του συγγραφέα, άλλα με διαφορετικό τρόπο ταξινόμησης. Αν κάτι τέτοιο το περάσουμε σ'έναν υπολογιστή θα έχουμε ταχύτητα, ευκολία στην αναζήτηση κλπ. Ένα λογιστήριο δεν είναι τίποτα άλλο από μια βάση δεδομένων όπου καταχωρούμε τιμολόγια, όπως τα τιμολόγια μιας επιχείρησης. Καταχωρούνται με κάποιον αύξοντα αριθμό. Φυσικά η νέα ευκολία που προκύπτει και για την ο ποία δεν υπάρχει ανάγκη σε μια βιβλιοθήκη, είναι ότι μπορούμε, ανά πάσα στιγμή, να βρούμε τι ποσό έχει το κάθε τιμολόγιο, να τα αθροίσουμε και να βρούμε ότι έχουμε πληρώσει για τα έξοδα 1.500.000 δρχ. Ακόμη, αν θέλουμε να ξέρουμε τι έξοδα έχουμε από την 1η του μήνα, η μηχανή θα κάνει κάποια επεξεργασία στη βάση δεδομένων και θα βρει ότι είναι πχ. 200.000 δρχ. Πώς μπορεί ο απλός χρήστης του υπολογιστή να φτιάξει μια τέτοια βάση δεδομένων; Χρειαζόμαστε κατ'αρχήν ένα πρόγραμμα software, το οποίο θα * Πληροφορικός.
102 ΑΡΧΕΊΑ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΉ μας βοηθήσει να οργανώσουμε λίγο τα πράγματα μας, τα δεδομένα μας, με μια κάποια μορφή. Ένα τέτοιο παράδειγμα είναι η Access 2.0, ένα πρόγραμμα αρκετά εύκολο για το χρήστη και που θα δείτε ότι το έχουν χρησιμοποιήσει για την ταξινόμηση των αρχείων Κούππα και Ρετσίνα. Το πρώτο που πρέπει να δημιουργήσουμε είναι η έννοια του αρχείου μας. Η μονάδα βάσης του αρχείου είναι η καρτέλα, που μπορεί να περιέχει διάφορα στοιχεία (πληροφορίες) με τη μορφή των πεδίων. Σε οιοδήποτε πρόγραμμα θα πρέπει, κατ'αρχήν, να δώσετε στοιχεία εσείς στο πρόγραμμα: τι είναι η πληροφορία που θα κρατάτε. Αυτά τα ονομάζετε πεδία. Πχ. τίτλος, συγγραφέας, έτος έκδοσης, τόπος, αρ. εισαγωγής κλπ. Πού θα βρούμε αυτά τα στοιχεία; Εδώ επεμβαίνει μια άλλη νοητική διεργασία που λέει: τι θέλουμε να καταχωρίσουμε εδώ, τι θέλουμε να αντλούμε απ'αυτό το πρόγραμμα και τι άλλες διευκολύνσεις θα θέλαμε να έχουμε. Η όλη διεργασία λέγεται ανάλυση του προβλήματος μας. Άρα, πριν ξεκινήσετε να φτιάξετε τον πίνακα με τα πεδία, θα πρέπει να σκεφτείτε ποια στοιχεία θέλετε να περάσετε στις καρτέλες. Ποια πληροφορία θα πρέπει να καταχωρίσουμε, πώς θα πρέπει να την καταχωρίσουμε κλπ. Απ'αυτά τα στοιχεία που θα βάλουμε σε κάθε καρτέλα, πρέπει να ξέρουμε τι θέλουμε να παίρνουμε. Θα ψάξουμε τον τίτλο, τη χρονολογία, κλπ. Όταν βέβαια ο όγκος των δεδομένων μεγαλώνει και αντί να ψάχνει κανείς για τον τίτλο Γεωγραφικά Χρονικά, σε 1.000 τίτλους, πρέπει να ψάξει σε 10.000 ή σε 100.000 καρτέλες, αυτό και για τη μηχανή γίνεται κάποια στιγμή προβληματικό. Μπορεί να κάνει και πέντε λεπτά. Άρα, ένα στοιχείο που θα πρέπει να προσέξετε και θα σας ζητηθεί από την αρχή, είναι ποια στοιχεία είναι σημαντικά για σας. Θα πρέπει να τα σημειώσετε σαν index. Πέρα από τον πίνακα που δημιουργείτε εσείς, αυτόματα το πρόγραμμα σας δημιουργεί και έναν δεύτερο πίνακα index, όπου καταχωρεί τους τίτλους μόνον αυτούς που θέλετε, ώστε όταν θα πάει να ψάξει, δεν θα πάει να ψάξει στο σύνολο, θα ψάξει σε αυτά που είναι σύντομα, κωδικοποιημένα, ώστε να σας τα φέρει. Ευθύς εξ αρχής θα πρέπει να ξέρετε ποια είναι τα κρίσιμα πεδία. Μετά απ'αυτό είμαστε έτοιμοι να καταχωρίσουμε στοιχεία. Αν θέλετε τώρα να ψάξετε σε δύο αρχεία ταυτόχρονα, θα πρέπει να έχετε φροντίσει να υπάρχει μια σύνδεση στα δύο αυτά αρχεία.
ΑΡΧΕΊΑ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΉ 103 Reports Σε κάθε οργανωμένη 'μάζα' στοιχείων ο χρήστης, εκτός από την εξειδικευμένη πληροφορία που αναζητεί με βάση κριτήρια που προεπιλεγεί (στην ουσία πρόκειται για την αναζήτηση συγκεκριμένης εγγραφής με όλα τα πεδία της) συχνά επιθυμεί να έχει μια συνολικότερη άποψη της πληροφορίας που δίνεται με λίστες (reports). Πρόκειται για σειριακή, συνοπτική παρουσίαση των εγγραφών της βάσης δεδομένων, όλων ή επιλεγμένων ομάδων, σύμφωνα με κάποια κριτήρια που ανταποκρίνονται στην ανάγκη του χρήστη, στην οποία εμφανίζεται μέρος μόνον της πληροφορίας της εγγραφής (συγκεκριμένα πεδία) υπό μορφή καταλόγου. Ευρέσεις Ανάλογα με την ανάλυση μιας βάσης δεδομένων και τη δομή της πληροφορίας, ο χρήστης έχει τη δυνατότητα αναζήτησης/εύρεσης συγκεκριμένων στοιχείων. Μέσω μιας προσχεδιασμένης φόρμας μπορεί να κάνει προγραμματισμένες αναζητήσεις σε συγκεκριμένα πεδία, π.χ. όλους τους τίτλους βιβλίων που αρχίζουν από 'Κ', ή όσους έχουν εκδοθεί από μια ημερομηνία και πριν. Από την αναζήτηση προκύπτει ένα περιορισμένο σύνολο εγγραφών που ανταποκρίνεται στο κριτήριο, παρουσιασμένο στη μορφή μιας λίστας, στο οποίο μπορεί να ανατρέξει ο χρήστης, να δει τη συνολική πληροφορία της κάθε εγγραφής. Ο 'προχωρημένος' χρήστης μπορεί να σχεδιάσει τις δικές του, περισσότερο ή λιγότερο περίπλοκες αναζητήσεις (queries) με βάση την ανάλυση της βάσης δεδομένων και το είδος της πληροφορίας που έχει αποθηκευθεί στη βάση. Εισαγωγή/Εξαγωγή Δεδομένων Η επικοινωνία μεταξύ διαφορετικών βάσεων δεδομένων δεν είναι πάντα κάτι αυτονόητο. Συναντάται το φαινόμενο να έχει δημιουργηθεί μια συλλογή στοιχείων που πρέπει να ενσωματωθεί στη δική μας βάση, είτε γιατί την είχαμε δημιουργήσει παλαιότερα σε άλλο πρόγραμμα (και άλλο σύστημα), είτε γιατί την έχει δημιουργήσει κάποιος άλλος και μας την παραχωρεί (importing). Αντίστοιχα, μπορεί να θέλουμε να παραχωρήσουμε στοιχεία από τη δική μας βάση σε άλλο σύστημα (exporting). Τα συνήθη προβλήματα που αντιμετωπίζουμε μπορεί να είναι: α) Διαφορετικά Format b) Διαφορετικά Ελληνικά γ) Διαφορετική ανάλυση και δομή των δεδομένων.
104 ΑΡΧΕΊΑ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΉ OL σύγχρονες βάσεις δεδομένων μπορούν να χειρισθούν διαφορετικά format και να ανταποκριθούν σε αρκετά παλαιότερες καταστάσεις σε τελική ανάλυση η ανταλλαγή δεδομένων μπορεί να γίνει με αρχεία σε μορφή *.ΤΧΤ -κειμένου με διαχωρισμένα πεδία (delimited) ή σταθερού μήκους πεδία (fixed length). Οι διαφορές στους ελληνικούς χαρακτήρες είναι ένα συνηθισμένο πρόβλημα στον ελληνικό χώρο που απορρέει από την έλλειψη τυποποίησης. Σε κοινές περιπτώσεις ανταλλαγής (π.χ. DOS->WIN) υπάρχουν αρκετές δυνατότητες ενσωματωμένες στά προϊόντα για Windows, αλλά όχι πάντα επαρκείς. Σε περίπτωση διαφορετικής δομής των δεδομένων (διαφορετικοί ορισμοί πεδίων άρα διαφορετική δομή της πληροφορίας) πρέπει να σχεδιαστούν ειδικοί μετατροπείς που θα οργανώσουν την πληροφορία στα νέα ζητούμενα. Φυσικά, αναφερόμαστε πάντα σε ομοειδή πληροφορία πού έχει τη δυνατότητα να οργανωθεί στα νέα ζητούμενα και είναι ευνόητο ότι σ'αυτή την περίπτωση μπορούν να αντιμετωπισθούν και τα δύο πρώτα ζητήματα με τον κατάλληλο προγραμματισμό. Στατιστικά Συχνά οι εφαρμογές βάσεων δεδομένων περιέχουν φόρμουλες παραγωγής στατιστικών στοιχείων. Έτσι, αφού γίνουν κάποιες αναζητήσεις και εντοπισθούν κάποιες ομάδες εγγραφών, μπορούν να ενεργοποιηθούν οι φόρμουλες και να παραχθούν τα ζητούμενα στοιχεία. Οι δυνατότητες που υπάρχουν εξαρτώνται από την ικανότητα του χρήστη, ο οποίος μπορεί να παρέμβει στην επεξεργασία, να εφαρμόσει δικές του φόρμουλες που ταιριάζουν στις ανάγκες του και να δημιουργήσει γραφικές παραστάσεις με τα αποτελέσματα. Εννοείται ότι τα στατιστικά μπορούν να εφαρμοσθούν σε πεδία με αριθμητικό περιεχόμενο και να παράγουν αριθμητικά αποτελέσματα ή σε μη αριθμητικά πεδία όπου το στατιστικό αποτέλεσμα έχει να κάνει με το πλήθος ή τη συχνότητα εμφάνισης τους. Η οποιαδήποτε στατιστική επεξεργασία μπορεί να εφαρμοσθεί σε ολόκληρο το πεδίο και όχι σε τμήμα πεδίου, τουλάχιστον όσον αφορά τις ενσωματωμένες δυνατότητες των σύγχρονων εφαρμογών βάσεων δεδομένων. Λέξεις κλειδιά Σε πολλές εφαρμογές βάσεων δεδομένων η τεκμηρίωση των στοιχείων γίνεται με την κωδικοποίηση ή/και τον απλό ονοματισμό Λέξεων κλειδιών ανά εγγραφή. Οι Λέξεις κλειδιά αναφέρονται κυρίως στον θεματικό προσδιορισμό των εγγραφών και θα πρέπει να επιλέγονται κατά την καταχώριση, αυτόματο-
ΑΡΧΕΙΑ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗ 105 ποιημένα από προκατασκευασμένο κατάλογο (στη φάση της ανάλυσης) ώστε να εξασφαλιστεί η συνοχή των χαρακτηρισμών για κάθε θέμα, η όσο το δυνατόν καλύτερη κάλυψη του θέματος που τεκμηριώνεται και η αποφυγή λαθών πληκτρολόγησης, ώστε να μην έχουμε "απώλειες" εγγραφών κατά την αναζήτηση ή ομαδοποίηση. Οι Λέξεις κλειδιά είναι κατ'εξοχήν χρήσιμες για την τεκμηρίωση βιβλιογραφικών βάσεων. Σύνδεση Αρχείων Η φιλοσοφία των σύγχρονων εφαρμογών βάσεων δεδομένων επιτρέπει τη δημιουργία περισσότερων του ενός αρχείων, συσχετιζόμενων, με στόχο τη διευκόλυνση της καταχώρισης των δεδομένων αφ'ενός αλλά και τη διασφάλιση της αξιόπιστης καταχώρισης κοινής πληροφορίας που εμφανίζεται σε περισσότερες από μια εγγραφές. Η τεχνική στηρίζεται στη δημιουργία ξεχωριστών αρχείων αποτελούμενων από εγγραφές που περιέχουν την εν λόγω πληροφορία και οι οποίες καλούνται κατά την καταχώριση των δεδομένων. Για παράδειγμα, τα στοιχεία ενός εκδοτικού οίκου, ο οποίος εμφανίζεται σε περισσότερες από μιά εγγραφές σε μια βιβλιογραφική βάση, μπορούν πολύ πιο εύκολα και σύντομα να ανακληθούν από ένα ξεχωριστό αρχείο το οποίο περιλαμβάνει όλους τους εκδοτικούς οίκους με πλήρη στοιχεία. Με την ενσωμάτωση του κωδικού ονόματος του εκδοτικού οίκου στη βιβλιογραφική εγγραφή, αυτομάτως ενεργοποιείται η σύνδεση με το αρχείο των εκδοτικών οίκων και είναι διαθέσιμα τα πλήρη στοιχεία τα οποία μπορούν να εμφανισθούν σε κατάλληλα ορισμένα πεδία εμφάνισης (πεδία που δεν ανήκουν στη βιβλιογραφική εγγραφή). Με την τεχνική της σύνδεσης των αρχείων διασφαλίζεται: α) η πληρότητα της εγγραφής β) η αξιοπιστία της εγγραφής (αποφυγή λαθών πληκτρολόγησης) και επίσης επιτυγχάνεται οικονομία χρόνου κατά την καταχώριση και χώρου στο μέσο αποθήκευσης γιατί δεν επαναλαμβάνονται κοινά στοιχεία. Ταυτόχρονα διευκολύνεται η συντήρηση και ενημέρωση των ξεχωριστών αρχείων με νέα στοιχεία που θα προκύψουν μελλοντικά.