Εφαρμογή Οπτικοποίησης Αποθηκών Δεδομένων

Σχετικά έγγραφα
Συστήματα OLAP. Πασχάλης Θρήσκος, PhD Λάρισα

ΣΤΡΑΤΗΓΙΚΟ MANAGEMENT KAI EΠΙΧΕΙΡHΜΑΤΙΚΗ ΕΥΦΥΙΑ. Παρουσίαση 2 ο μέρος:

5.1.1 Περιγραφή των συστατικών τμημάτων ενός γραφήματος

Εξόρυξη Γνώσης από εδοµένα (Data Mining)

1 Συστήματα Αυτοματισμού Βιβλιοθηκών

Ενότητα 3: Διαχείριση πληροφοριακών πόρων με τη χρήση βάσεων δεδομένων

Η προέλευση του Sketchpad 1

Περιεχόμενα. 1 Εισαγωγή Χαρτογραφική Πληροφορία...29

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ

Οδηγίες σχεδίασης στο περιβάλλον Blender

Εννοιολογική χαρτογράφηση: Διδακτική αξιοποίηση- Αποτελέσματα για το μαθητή

ΕΝΟΤΗΤΑ 6 ΜΟΤΙΒΑ ΠΟΛΛΑΠΛΑΣΙΑΣΜΟΥ 2, 5 ΚΑΙ 10. Αρ2.7 Ανακαλύπτουν, διατυπώνουν και εφαρμόζουν τα κριτήρια διαιρετότητας του 2, 5 και του 10.

ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ ΓΙΑ ΤΗ ΔΙΕΝΕΡΓΕΙΑ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΜΕΛΕΤΩΝ

Bubble Hack Οπτικοποίηση του αλγορίθμου ταξινόμησης Bubble Sort στο Scratch

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ Π ΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ Π ΕΡΙΒΑΛΛΟΝ

Αρχιτεκτονική σχεδίαση με ηλεκτρονικό υπολογιστή

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

O7: Πρόγραμμα Κατάρτισης Εκπαιδευτικών O7-A1: Αναπτύσσοντας εργαλεία για το Πρόγραμμα Κατάρτισης Εκπαιδευτικών

Βάσεις Δεδομένων. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

ΛΕΞΕΙΣ ΚΛΕΙΔΙΑ: Λήψη απόφασης, Συστήματα Υποστήριξης Αποφάσεων, OLAP Ανάλυση, Περιβαλλοντική Εκπαίδευση ΕΙΣΑΓΩΓΗ

Εισαγωγή στη Σχεδίαση Λογισμικού

Οπτική αντίληψη. Μετά?..

Εξαγωγή Μετασχηματισμός Εισαγωγή Δεδομένων στην Αποθήκη Πληροφοριών (ETL) ETL) Αριστομένης Μακρής

Τίτλος Πακέτου Certified Computer Expert-ACTA

Κεφάλαιο 4 Σχεδίαση Βάσεων Δεδομένων

Στ Τάξη. Α/Α Μαθηματικό περιεχόμενο Δείκτες Επιτυχίας Ώρες Διδ. 1 ENOTHTA 1

ΠΑΡΟΥΣΙΑΣΗ ΣΤΑΤΙΣΤΙΚΩΝ ΔΕΔΟΜΕΝΩΝ

Απόδοση θεματικών δεδομένων

ΓΕΩΓΡΑΦΙΚΑ ΣΥΣΤΗΜΑΤΑ ΠΛΗΡΟΦΟΡΙΩΝ ΓΕΩΓΡΑΦΙΚΑ ΣΥΣΤΗΜΑΤΑ ΠΛΗΡΟΦΟΡΙΩΝ - ΕΝΟΤΗΤΑ 1 7/4/2013 ΕΝΟΤΗΤΕΣ ΜΑΘΗΜΑΤΟΣ. Ορισμός

Τύποι γραφημάτων στήλης

ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΔΙΟΙΚΗΣΗΣ

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον

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

6. ΕΠΙΣΚΟΠΗΣΗ ΤΟΥ ΧΑΡΤΗ

Περιεχόμενο του μαθήματος

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

Διαδικτυακό Περιβάλλον Διαχείρισης Ασκήσεων Προγραμματισμού

Άμεση Αναλυτική Επεξεργασία (OLAP)

ΧΑΡΤΟΓΡΑΦΙΑ. μεθόδους οι οποίες και ονομάζονται χαρτογραφικές προβολές. Η Χαρτογραφία σχετίζεται στενά με την επιστήμη της

Η Oracle ανακοίνωσε την πιο ολοκληρωμένη λύση στον τομέα της Ανάλυσης δεδομένων στο Cloud

ΜΑΘΗΜΑ: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ. 1 η ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ: ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ

Εισαγωγή στα Πληροφοριακά Συστήματα

710 -Μάθηση - Απόδοση

710 -Μάθηση - Απόδοση

Αρχιτεκτονική Υπολογιστών

Πληροφορική ΙΙ Εισαγωγή στις Βάσεις Δεδομένων. Τμήμα Λογιστικής

ΣΥΜΒΟΛΙΣΜΟΣ ΧΑΡΤΟΓΡΑΦΙΚΩΝ ΟΝΤΟΤΗΤΩΝ

9. Τοπογραφική σχεδίαση

Εκπαιδευτική Μονάδα 10.2: Εργαλεία χρονοπρογραμματισμού των δραστηριοτήτων.

Περιεχόμενα. Κεφάλαιο 1 Γνωριμία με το Excel... 9

Προσδιορισμός Σημαντικών Χαρακτηριστικών της Αυθόρμητης Δραστηριότητας Απομονωμένου Εγκεφαλικού Φλοιού in vitro

Η προσεγγιση της. Αρχιτεκτονικης Συνθεσης. ΜΑΡΓΑΡΙΤΑ ΓΡΑΦΑΚΟΥ Καθηγητρια της Σχολης Αρχιτεκτονων Ε.Μ.Π.

Εργαλεία CASE. Computer Assisted Systems Engineering. Δρ Βαγγελιώ Καβακλή. Τμήμα Πολιτισμικής Τεχνολογίας και Επικοινωνίας Πανεπιστήμιο Αιγαίου

Σχεδιαστικά Προγράμματα Επίπλου

Η γραφική απεικόνιση µιας κατανοµής συχνότητας µπορεί να γίνει µε δύο τρόπους, µε ιστόγραµµα και µε πολυγωνική γραµµή.

Εργασία-3: Παρουσίαση Εργασίας. Ομάδα Α. Προετοιμασία Αναφοράς

Διαδραστικότητα και πλοήγηση σε ψηφιακούς χάρτες

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος

4. ΔΗΜΙΟΥΡΓΙΑ ΜΟΝΤΕΛΟΥ ΠΟΛΥΔΙΑΣΤΑΤΗΣ ΑΝΑΛΥΣΗΣ

Εισαγωγή στην Πληροφορική

5. ΠΟΛΥΔΙΑΣΤΑΤΗ ΑΝΑΛΥΣΗ ΔΕΔΟΜΕΝΩΝ

Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων

Field Service Management ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ

Κεφάλαιο 7. Τρισδιάστατα Μοντέλα

Η εργασία που επέλεξες θα σου δώσει τη δυνατότητα να συνεργαστείς με συμμαθητές σου και να σχεδιάσετε μια εικονική εκδρομή με το Google Earth.

Εισαγωγικό Μάθημα Βασικές Έννοιες - Ανάλυση Απαιτήσεων

. Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Μάθημα Βασικές Έννοιες - Ανάλυση Απαιτήσεων

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

Πληροφοριακού Συστήματος Ενημέρωσης Καιρικών Συνθηκών

κεφάλαιο Βασικές Έννοιες Επιστήμη των Υπολογιστών

µια λειτουργική προσέγγιση στην απεικόνιση του χάρτη σηµασιολογία και και σύνταξη των των χαρτογραφικών σηµάτων

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Επιχειρηματική Μοντελοποίηση. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική

ΔΗΜΙΟΥΡΓΙΑ ΚΑΙ ΠΑΡΑΓΩΓΗ ΔΙΑΦΗΜΙΣΗΣ

PowerPoint Ένα εργαλείο παρουσίασης

ΕΠΛ 003.3: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ. Για οικονομολόγους

Περιεχόμενα. Κεφάλαιο 1 Εισαγωγή στην Access...9. Κεφάλαιο 2 Χειρισμός πινάκων... 25

Κεφάλαιο 20. Ανακάλυψη Γνώσης σε Βάσεις δεδοµένων. Τεχνητή Νοηµοσύνη - Β' Έκδοση Ι. Βλαχάβας, Π. Κεφαλάς, Ν. Βασιλειάδης, Φ. Κόκκορας, Η.

Στρατηγική Επιλογή Capital B.O.S. Capital B.O.S.

Πίνακας περιεχομένων. Κεφάλαιο 1 Λειτουργίες βάσης δεδομένων Κεφάλαιο 2 Συγκεντρωτικοί πίνακες Πρόλογος... 11

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM).

Προγραμματισμός ΙI (Θ)

Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19

Περιεχόμενα. Κεφάλαιο 1 Γνωριμία με το Excel...9

Οδηγός γρήγορης εκκίνησης

Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων

Περιεχόμενα. 2 Αριθμητικά συστήματα

ΕΝΟΤΗΤΑ 5 ΜΟΤΙΒΑ ΠΟΛΛΑΠΛΑΣΙΑΣΜΟΥ, ΚΛΑΣΜΑΤΑ ΕΜΒΑΔΟΝ ΚΑΙ ΠΕΡΙΜΕΤΡΟΣ ΟΡΘΟΓΩΝΙΟΥ ΔΕΙΚΤΕΣ ΕΠΙΤΥΧΙΑΣ

Ο Οδηγός γρήγορης εκκίνησης

Βάσεις Δεδομένων. Εισαγωγή Ανάλυση Απαιτήσεων. Φροντιστήριο 1 ο

Οι διαθέσιμες μέθοδοι σε γενικές γραμμές είναι:

Πολυδιάστατη Ανάλυση Δεδομένων

Άμεση Αναλυτική Επεξεργασία (OLAP)

Γεωγραφικά Πληροφοριακά Συστήµατα (Geographical Information Systems GIS)

Γεωµετρικές έννοιες και µετρήσεις µεγεθών. (ή, διαφορετικά, αντίληψη του χώρου)

ΠΙΝΑΚΙΔΕΣ ΠΑΡΟΥΣΙΑΣΗΣ

A ΕΠΑ.Λ ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 5 η ΕΝΟΤΗΤΑ: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Εκπαιδευτικοί: ΓΑΛΑΝΟΣ ΓΕΩΡΓΙΟΣ ΜΠΟΥΣΟΥΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ

ΟΜΑΔΟΠΟΙΗΣΗ ΑΡΙΘΜΗΤΙΚΩΝ ΔΕΔΟΜΕΝΩΝ

Εισαγωγή στις Αρχές της επιστήμης των ΗΥ

Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων

Κεφάλαιο 8. Οπτικοποίηση Απαλοιφή

Transcript:

ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ "ΠΡΟΗΓΜΕΝΑ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ" ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ Εφαρμογή Οπτικοποίησης Αποθηκών Δεδομένων Δήμητρα Π. Χαριδάκου Κεραμίδα Επιβλέποντες: Ιωαννίδης Ιωάννης, Καθηγητής ΕΚΠΑ ΑΘΗΝΑ ΜΑΡΤΙΟΣ 2013

ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ Εφαρμογή Οπτικοποίησης Αποθηκών Δεδομένων Δήμητρα Π. Χαριδάκου Κεραμίδα Α.Μ.: 1008 ΕΠΙΒΛΕΠΟΝΤΕΣ: Ιωαννίδης Ιωάννης, Καθηγητής ΕΚΠΑ ΕΞΕΤΑΣΤΙΚΗ ΕΠΙΤΡΟΠΗ: Χατζόπουλος Μιχάλης, Καθηγητής ΕΚΠΑ Μάρτιος 2013

ΠΕΡΙΛΗΨΗ Στα πλαίσια αυτής της εργασίας, ασχοληθήκαμε με την οπτικοποίηση δεδομένων. Ο στόχος μας ήταν η υλοποίηση μας διαδικτυακής εφαρμογής η οποία μετατρέπει δεδομένα σε διαγράμματα και προσφέρει στο χρήστη την επιλογή να αλλάξει την παραχθείσα οπτικοποίηση και να αλληλεπιδράσει με αυτήν. Ο τομέας της οπτικοποίησης πληροφορίας έχει γνωρίσει μεγάλη ανάπτυξη τις τελευταίες δεκαετίες. Σε συνδυασμό με τεχνικές διάδρασης, η οπτικοποίηση μπορεί να συμβάλλει ενεργά στην αύξηση της κατανόησης και της απόσπασης πληροφορίας από δεδομένα. Τα τελευταία χρόνια έχουν αναπτυχθεί πολλά εργαλεία οπτικοποίησης δεδομένων, από πολύ απλά, που διαβάζουν δεδομένα από κάποιο αρχείο και τα παρουσιάζουν σε στατικά κυρίως διαγράμματα, μέχρι περίπλοκα εργαλεία επιχειρησιακής νοημοσύνης που χρησιμοποιούνται στην ανάλυση και εξόρυξη δεδομένων. Για την εφαρμογή που αναπτύχθηκε στα πλαίσια αυτής της εργασίας, θεωρήσαμε ότι τα δεδομένα βρίσκονται αποθηκευμένα σε μια αποθήκη δεδομένων, έναν ειδικό τύπο σχεσιακών βάσεων οι οποίες περιέχουν ιστορικά κυρίως δεδομένα που δεν ενημερώνονται συχνά. Οι λειτουργίες που προσφέρει η εφαρμογή μας είναι κυρίως οπτικοποίησης αλλά και διαχείρισης της αποθήκης δεδομένων. Υπάρχει η δυνατότητα παραγωγής διαφόρων ειδών διαγραμμάτων (διαγραμμάτων γραμμών, ιστογραμμάτων, διαγραμμάτων διασποράς, φυσαλίδας, χωροπληθών χαρτών, πινάκων, κ.ά.) με κάποιες λειτουργίες διάδρασης και προσαρμογής της εμφάνισής τους και των κεφαλίδων τους. Η εφαρμογή μας μπορεί να εμφανίσει στο ίδιο διάγραμμα πολλές συνιστώσες των δεδομένων, χρησιμοποιώντας για την οπτικοποίηση τους διαφορετικά στοιχεία οπτικοποίησης (π.χ., απόσταση ως προς κάποιον από τους άξονες, σχήμα, χρώμα, μέγεθος). Ο χρήστης μπορεί να επιλέξει με μεγάλη ευελιξία τα δεδομένα προς οπτικοποίηση, διαλέγοντας πίνακες και στήλες από την αποθήκη δεδομένων, εφαρμόζοντας συναθροίστηκες συναρτήσεις, ομαδοποιώντας τα με βάση την τιμή τους σε κάποιο από τα πεδία της βάσης, αποκλείοντας πεδία με συγκεκριμένες τιμές ή εύρος τιμών, κ.ά. ΘΕΜΑΤΙΚΗ ΠΕΡΙΟΧΗ: οπτικοποίηση πληροφορίας, αποθήκες δεδομένων ΛΕΞΕΙΣ ΚΛΕΙΔΙΑ: διαδικτυακή εφαρμογή, οπτικοποίηση, διάδραση, αποθήκες δεδομένων, διαγράμματα

ABSTRACT The subject of this master thesis is data visualization. Our objective was to implement a web application that converts data into charts and offers the user the option to change the visualization generated and interact with it. The field of Information Visualization has experienced strong growth in recent decades. In conjunction with interaction techniques, visualization can increase human understanding and facilitate the extraction of information from data. In recent years many visualization tools have been developed, from very simple ones that read data from a file and present them as static charts primarily, to complex business intelligence tools used for data analysis and mining. For the application developed in this thesis, the data are stored in a data warehouse, a special type of relational databases that contains mainly historic data that are not updated frequently. Our application focuses mostly on visualization functionality but also deals with data warehouse management. It produces various types of diagrams (line charts, bar charts, scatter plots, bubble charts, choropleth maps, tables, etc.) that can be customized in their appearance and can be interactive. Our application can visualize several fields in the same diagram, using a different visual characteristic for each one (e.g., distance to one of the axes, shape, color, size). The user has great flexibility in choosing which data will be visualized, identifying tables and fields from the data warehouse, using aggregate functions, grouping them, excluding some of them, etc. SUBJECT AREA: information visualization, data warehouses KEYWORDS: web application, visualization, interaction, data warehouses, charts

ΠΕΡΙΕΧΟΜΕΝΑ ΠΡΟΛΟΓΟΣ... 10 1. ΕΙΣΑΓΩΓΗ... 11 2. ΟΠΤΙΚΟΠΟΙΗΣΗ... 13 2.1 Οπτικοποίηση Πληροφορίας... 14 2.2 Θεωρητικό υπόβαθρο... 15 3. ΑΝΑΠΑΡΑΣΤΑΣΗ ΚΑΙ ΔΙΑΔΡΑΣΗ... 18 3.1 Αναπαράσταση πληροφορίας... 18 3.2 Παραδείγματα τεχνικών αναπαράστασης... 20 3.2.1 Διαγράμματα... 20 3.2.2 Γραφήματα ποσοστών... 22 3.2.3 Χάρτες... 24 3.3 Διάδραση... 27 3.3.1 Επιλογή (Selection) - «μάρκαρε κάτι σαν ενδιαφέρον»... 28 3.3.2 Εξερεύνηση (Explore) «δείξε μου κάτι διαφορετικό»... 28 3.3.3 Αναδιαμόρφωση (Reconfigure) «δείξε μου μια διαφορετική διάταξη»... 29 3.3.4 Κωδικοποίηση (Encode) «δείξε μου μια διαφορετική αναπαράσταση»... 29 3.3.5 Αφαίρεση/Ανάλυση (Abstract/Elaborate) «δείξε μου περισσότερη ή λιγότερη λεπτομέρεια»... 30 3.3.6 Φιλτράρισμα (Filter) «δείξε μου ό,τι πληροί κάποιες συνθήκες»... 30 3.3.7 Σύνδεση (Connect) «δείξε μου σχετικά αντικείμενα»... 31 4. ΑΠΟΘΗΚΕΣ ΔΕΔΟΜΕΝΩΝ... 32 4.1 Εισαγωγή... 32 4.2 Μοντέλο δεδομένων Ο κύβος των δεδομένων... 33 4.3 Υπολογισμοί στον κύβο δεδομένων... 37 4.3.1 Συναθροιστική άνοδος (Roll up)... 37 4.3.2 Αναλυτική κάθοδος (Drill down)... 38 4.3.3 Οριζόντιος τεμαχισμός (Slice)... 39 4.3.4 Κάθετος τεμαχισμός (Dice)... 40 4.3.5 Περιστροφή (Pivot)... 40 4.4 Υπολογίζοντας τον κύβο δεδομένων... 41 5. ΠΕΡΙΓΡΑΦΗ ΕΡΓΑΛΕΙΟΥ... 45

5.1 Χρήστες... 45 5.2 Απαιτήσεις χρηστών... 46 5.3 Γενική ανασκόπηση... 50 5.3.1 Αποθήκευση δεδομένων... 51 5.3.2 Αρχιτεκτονική εφαρμογής... 52 5.3.3 Απαιτήσεις συστήματος... 53 5.3.4 Τεχνολογίες που χρησιμοποιήθηκαν... 54 5.3.5 Είδη διαγραμμάτων και επιλογές... 56 5.4 Λεπτομέρειες υλοποίησης των επιπέδων... 56 5.4.1 Επίπεδο 1... 56 5.4.2 Επίπεδο 2... 61 5.4.3 Επίπεδο 3... 61 5.5 Παραμετροποιήσεις διαχειριστή... 63 5.6 Περιπτώσεις χρήσης (Use Cases)... 64 5.6.1 European Cluster Observatory... 64 5.6.2 Οργανισμός οικονομικής συνεργασίας και ανάπτυξης... 65 5.6.3 European e-infrastructures Observatory... 66 5.6.4 OpenAIREplus... 68 6. ΜΕΛΛΟΝΤΙΚΗ ΕΡΓΑΣΙΑ... 73 ΠΙΝΑΚΑΣ ΟΡΟΛΟΓΙΑΣ... 74 ΣΥΝΤΜΗΣΕΙΣ ΑΡΚΤΙΚΟΛΕΞΑ ΑΚΡΩΝΥΜΙΑ... 75 ΑΝΑΦΟΡΕΣ... 76

ΚΑΤΑΛΟΓΟΣ ΕΙΚΟΝΩΝ Εικόνα 1: Treemap... 24 Εικόνα 2: Χωροπληθής χάρτης... 25 Εικόνα 3: Χαρτόγραμμα... 25 Εικόνα 4: Χάρτης κουκίδων... 26 Εικόνα 5: Χάρτης συνδέσεων... 27 Εικόνα 6: Εστίαση σε ένα κελί στο εργαλείο TableLens... 28 Εικόνα 7: Άμεσος περίπατος στο εργαλείο Visual Thesaurus... 29 Εικόνα 8: Δυναμικές επερωτήσεις στο εργαλείο Dynamic HomeFinder... 30 Εικόνα 9: Brushing στην εφαρμογή InfoZoom... 31 Εικόνα 10: Roll up... 38 Εικόνα 11: Drill down... 39 Εικόνα 12: Slice... 39 Εικόνα 13: Pivot... 41 Εικόνα 14: Η σειρά των επερωτήσεων για τον υπολογισμό του πλήρη κύβου δεδομένων... 42 Εικόνα 15: Παράδειγμα κύβου δεδομένων με συγκεκριμένες τιμές... 43 Εικόνα 22: Αρχιτεκτονική συστήματος... 53 Εικόνα 17: ECO: χάρτης... 64 Εικόνα 18: ECO: διάγραμμα... 65 Εικόνα 19: OECD - πίνακας... 66 Εικόνα 20: OECD διάγραμμα... 66 Εικόνα 21: enventory χωροπληθής χάρτης και διάγραμμα... 67 Εικόνα 22: enventory χάρτης κουκίδων... 68 Εικόνα 23: Διάγραμμα με φίλτρο και δοθέν τίτλο... 69 Εικόνα 24: Διάγραμμα με δύο άξονες ψ και πολλαπλά φίλτρα... 70 Εικόνα 25: Χωροπληθής χάρτης... 71 Εικόνα 26: Πίνακας... 72

ΚΑΤΑΛΟΓΟΣ ΣΧΗΜΑΤΩΝ Σχήμα 1: Η διαδικασία της οπτικοποίησης πληροφορίας... 15 Σχήμα 2: Διάγραμμα γραμμής... 20 Σχήμα 3: Ιστόγραμμα... 21 Σχήμα 4: Διάγραμμα διασποράς... 21 Σχήμα 5: Διάγραμμα φυσαλίδας... 22 Σχήμα 6: Διάγραμμα περιοχών... 22 Σχήμα 7: Διάγραμμα πίτα... 23 Σχήμα 8: Πολυδιάστατο μοντέλο δεδομένων... 34 Σχήμα 9: Ιεραρχική σχέση διαστάσεων... 35 Σχήμα 10: Σχήμα αστέρι... 36 Σχήμα 11: Σχήμα νιφάδα... 37 Σχήμα 12: Dice... 40 Σχήμα 13: Το πλέγμα των κυβοειδών που απαρτίζουν τον κύβο δεδομένων... 41

ΚΑΤΑΛΟΓΟΣ ΠΙΝΑΚΩΝ Πίνακας 1: Λίστα απαιτήσεων χρηστών... 46 Πίνακας 2: Πεδία πίνακα Defaults... 58 Πίνακας 3: Πεδία πίνακα Metadata... 59

ΠΡΟΛΟΓΟΣ Στα πλαίσια αυτής της διπλωματικής εργασίας αναπτύχθηκε μια διαδικτυακή εφαρμογή για τη δημιουργία διαφόρων ειδών διαγραμμάτων από δεδομένα που βρίσκονται αποθηκευμένα σε μια αποθήκη δεδομένων. Ο στόχος μας ήταν η εφαρμογή αυτή να μπορεί να καλύψει τις βασικές ανάγκες για οπτικοποίηση ιστορικών δεδομένων, προσφέροντας ποικιλία διαγραμμάτων και τεχνικών διάδρασης. Η εργασία αυτή εκπονήθηκε υπό την καθοδήγηση του καθηγητή Ιωάννη Ιωαννίδη του τμήματος Πληροφορικής και Τηλεπικοινωνιών του Εθνικού και Καποδιστριακού Πανεπιστημίου Αθηνών. Θα ήθελα να ευχαριστήσω τον κ. Ιωάννη Ιωαννίδη για την ευκαιρία που μου έδωσε να ασχοληθώ με ένα τόσο ενδιαφέρον θέμα, να εμπλουτίσω τις γνώσεις μου στους τομείς της οπτικοποίησης και των αποθηκών δεδομένων, αλλά και να εντρυφήσω σε ένα τόσο δημιουργικό και αγαπητό μου αντικείμενο όπως ο προγραμματισμός και η ανάπτυξη εφαρμογών. Επίσης, θα ήθελα να τον ευχαριστήσω για την καθοδήγησή του και τον χρόνο που μου διέθεσε για να συζητήσουμε τα θέματα που προέκυψαν κατά τη διάρκεια εκπόνησης της εργασίας. Επίσης ευχαριστώ τον κ. Αντώνη Λεμπέση για την υποστήριξή του και τις πολύτιμες συμβουλές του σχετικά με διάφορα τεχνικά θέματα που αντιμετώπισα.

1. ΕΙΣΑΓΩΓΗ Αναμφίβολα ζούμε στην εποχή των δεδομένων. Κάθε μέρα παράγονται πάνω από 2.5 πεντάκις εκατομμύρια bytes δεδομένων τα οποία μπορεί να προέρχονται από παντού. Αισθητήρες που χρησιμοποιούνται για τη συλλογή πληροφοριών σε ερευνητικά πειράματα, δημοσιεύσεις σε ιστοσελίδες κοινωνικής δικτύωσης, ψηφιακές φωτογραφίες και βίντεο, αρχεία συναλλαγών αγοράς, για να αναφέρουμε μερικά παραδείγματα. Όμως, απλώς και μόνο η ύπαρξη αυτών των δεδομένων ελάχιστα βοηθά στην κατανόησή τους. Η γνώση που μπορεί να κρύβεται πίσω από αυτά τα δεδομένα δύσκολα θα εμφανιστεί χωρίς τον κατάλληλο τρόπο παρουσίασής τους. Ο Ντόναλντ Νόρμαν στο βιβλίο του «Things that make us smart»[1] έγραψε: «Η δύναμη του γυμνού νου είναι εξαιρετικά υπερτιμημένη. Χωρίς εξωτερική βοήθεια η μνήμη, η σκέψη, και η λογική είναι όλες περιορισμένες. Αλλά, η ανθρώπινη νοημοσύνη είναι άκρως ευέλικτη και ευπροσάρμοστη, εξαιρετική στο να εφευρίσκει διαδικασίες και αντικείμενα που τη βοηθούν να ξεπεράσει τα όριά της. Οι πραγματικές δυνάμεις προέρχονται από την επινόηση εξωτερικής βοήθειας: είναι τα πράγματα που μας κάνουν έξυπνους.» Συνεπώς, η ανάπτυξη τεχνικών και εργαλείων για την κατάλληλη παρουσίαση των δεδομένων είναι το κλειδί που θα μας οδηγήσει στην ανακάλυψη των μυστικών που κρύβουν. Αυτό που χρειαζόμαστε είναι ένας τρόπος να μετατρέψουμε τα δεδομένα σε pixels. Τα τελευταία χρόνια έχουν λάβει χώρα πολλές μελέτες και έρευνες στον τομέα της οπτικοποίησης και έχουν αναπτυχθεί πολλά συστήματα λογισμικού που βοηθούν τους ανθρώπους στη διαδικασία αυτή. Τα συστήματα αυτά ποικίλουν από απλές βιβλιοθήκες διαγραμμάτων 1 ή εργαλεία 2 που διαβάζουν δεδομένα από κάποιο αρχείο και τα 1 Google charts: https://developers.google.com/chart/ flot: http://www.flotcharts.org/ Highcharts: http://www.highcharts.com/ Raphael: http://raphaeljs.com/ d3.js: http://d3js.org/ 2 Microsoft excel: http://office.microsoft.com/en-us/excel/ Google fusion tables: http://www.google.com/drive/start/apps.html#fusiontables Statplanet: http://www.statsilk.com/software/statplanet ManyEyes: http://www-958.ibm.com/software/analytics/manyeyes/ Δ. Χαριδάκου Κεραμιίδα 11

παρουσιάζουν σε στατικά, συνήθως, διαγράμματα, μέχρι αρκετά πιο πολύπλοκα εργαλεία 3 που είναι προϊόντα μεγάλων εταιρειών και τα οποία χρησιμοποιούνται κυρίως στον τομέα της επιχειρησιακής νοημοσύνης όχι μόνο για παρουσίαση αλλά και για ανάλυση και εξόριση δεδομένων. Στα πλαίσια αυτής της διπλωματικής εργασίας στηριχτήκαμε σε αυτές τις μελέτες και τα συστήματα για να υλοποιήσουμε μια εφαρμογή για την οπτικοποίηση δεδομένων τα οποία βρίσκονται αποθηκευμένα σε μια αποθήκη δεδομένων. 3 Tableau: http://www.tableausoftware.com/ Spotfire: http://spotfire.tibco.com/ Qlikview: http://www.qlikview.com/ Advizor: http://www.advizorsolutions.com/ SaS: http://www.sas.com/ Δ. Χαριδάκου Κεραμιίδα 12

2. ΟΠΤΙΚΟΠΟΙΗΣΗ Οπτικοποίηση (Visualization) θεωρείται οποιαδήποτε τεχνική για τη δημιουργία εικόνων, διαγραμμάτων, κινούμενων σχεδίων με σκοπό την επικοινωνία ενός μηνύματος και την ενίσχυση της ανθρώπινης σκέψης, λογικής, και κατανόησης. Η χρήση οπτικών εικόνων είναι ένας πολύ αποτελεσματικός τρόπος επικοινωνίας τόσο αφηρημένων όσο και συγκεκριμένων ιδεών από την αυγή του κόσμου. Για τον όρο Οπτικοποίηση μέχρι σήμερα έχουν προταθεί πολυάριθμοι ορισμοί. [2][3] Η τέχνη της χαρτογραφίας είναι από τους πρωτοπόρους στον τομέα της μετατροπής δεδομένων σε εικόνα, ξεκινώντας με τη δημιουργία γεωγραφικών χαρτών και στη συνέχεια προχωρώντας στη δημιουργία θεματικών χαρτών, δηλαδή χαρτών με επιπλέον στατιστικά δεδομένα. [4][5] Όπως ήταν αναμενόμενο, με την υπολογιστική τους δύναμη και τις δυνατότητες που προσφέρουν για διάδραση σε πραγματικό χρόνο, οι ηλεκτρονικοί υπολογιστές έφεραν νέες εξελίξεις και εισήγαγαν νέες τεχνικές στον τομέα της οπτικοποίησης. Η σύγχρονη μελέτη της Οπτικοποίησης ξεκίνησε με τον κλάδο των Γραφικών στην πληροφορική και έχει, από την αρχή, χρησιμοποιηθεί στην έρευνα επιστημονικών προβλημάτων. Ωστόσο, τον πρώτο καιρό η έλλειψη γραφικής ισχύος περιόριζε συχνά τη χρησιμότητά του. Η πρόσφατη έμφαση στην Οπτικοποίηση ξεκίνησε τη δεκαετία του 80, με μια συστηματική προσπάθεια να τεθούν θεωρητικές βάσεις [6], η οποία κορυφώθηκε το 1987 με το ειδικό τεύχος του Computer Graphics στην οπτικοποίηση επιστημονικών υπολογισμών. Έκτοτε, έχουν λάβει χώρα αρκετά συνέδρια και ημερίδες, συγχρηματοδοτημένα πολλές φορές από το IEEE Computer Society και το ACM SIGGRAPH. Υπήρξαν επίσης πολλά βιβλία και άρθρα σχετικά με την έρευνα στον τομέα της Οπτικοποίησης [7]. Η μοντέρνα εκδοχή της Οπτικοποίησης μπορεί να διακριθεί σε επιστημονική οπτικοποίηση, οπτικοποίηση λογισμικού, και οπτικοποίηση πληροφορίας. Η επιστημονική οπτικοποίηση (scientific visualization) είναι ένας διεπιστημονικός κλάδος που κατά κύριο λόγο ασχολείται με την αναπαράσταση τρισδιάστατων φυσικών φαινομένων (αρχιτεκτονικά, μετεωρολογικά, ιατρικά, βιολογικά, κτλ.), όπου η έμφαση δίνεται σε ρεαλιστικές απεικονίσεις των όγκων, των επιφανειών, των πηγών φωτισμού και ούτω καθεξής, πολλές φορές με επιπλέον δυναμικό στοιχείο το χρόνο. Θεωρείται επίσης υποσύνολο των γραφικών ηλεκτρονικών υπολογιστών. [8] Δ. Χαριδάκου Κεραμιίδα 13

Η οπτικοποίηση λογισμικού (software visualization) είναι η στατική ή κινούμενη δισδιάστατη ή τρισδιάστατη οπτική αναπαράσταση των πληροφοριών σχετικά με τα συστήματα λογισμικού με βάση τη δομή τους, το μέγεθος, το ιστορικό, ή τη συμπεριφορά τους. Η οπτικοποίηση προγραμμάτων (του πηγαίου κώδικα, των δομών δεδομένων και των αλλαγών στο πρόγραμμα) βοηθά τους προγραμματιστές να διαχειριστούν πολύπλοκα λογισμικά. Η οπτικοποίηση αλγορίθμων χρησιμοποιείται για να παρακινήσει και να στηρίξει την εκμάθηση υπολογιστικών αλγορίθμων [9]. 2.1 Οπτικοποίηση Πληροφορίας Ο όρος οπτικοποίηση πληροφορίας (information visualization, μερικές φορές ονομάζεται και InfoVis) αναφέρεται στη χρήση διαδραστικών οπτικών αναπαραστάσεων αφηρημένων δεδομένων, ούτως ώστε να υποβοηθήσει στην ανακάλυψη και ερμηνεία πληροφορίας και συνεπώς στην ικανότητα του ανθρώπου για απόκτηση γνώσης και λήψη αποφάσεων. Ο όρος information visualization χρησιμοποιήθηκε πρώτη φορά από την ερευνητική ομάδα σε θέματα διεπαφών χρηστών του Xerox PARC. Το πεδίο της Οπτικοποίησης Πληροφορίας είναι μια σχετικά πρόσφατη εξέλιξη, που γνώρισε ραγδαία αύξηση τα τελευταία 15 χρόνια και μπορεί να θεωρηθεί παιδί της έρευνας στον τομέα της Επικοινωνίας Ανθρώπου-Υπολογιστή, της επιστήμης των υπολογιστών, των γραφικών, του οπτικού σχεδιασμού, της ψυχολογίας και των επιχειρησιακών μεθόδων. Εφαρμόζεται δε όλο και περισσότερο σαν κρίσιμο συστατικό στην επιστημονική έρευνα πάνω σε ψηφιακές βιβλιοθήκες, εξόρυξη δεδομένων, ανάλυση οικονομικών δεδομένων, έρευνα αγοράς (market studies), έλεγχο παραγωγής (manufacturing production control), ακόμα και στην ανακάλυψη φαρμάκων (drug discovery). [10] Τα δεδομένα προς αναπαράσταση είναι συνήθως αριθμητικά, αλλά μπορεί να είναι και μη αριθμητικά, όπως κείμενο και γεωγραφικές πληροφορίες. [10] Ο κύριος στόχος της οπτικοποίησης πληροφορίας είναι να επιτρέψει την ανάκτηση πληροφορίας από τα δεδομένα [11]. Η διαφορά μεταξύ αυτών των δύο εννοιών πρέπει να τονιστεί. Τα δεδομένα μπορεί να είναι διαφορετικού τύπου: ονομαστικά, διατεταγμένα ή ποσοτικά. Το σύγχρονο πρόβλημα έχει να κάνει με τον μεγάλο όγκο των δεδομένων όχι της πληροφορίας. Δ. Χαριδάκου Κεραμιίδα 14

Σχήμα 1: Η διαδικασία της οπτικοποίησης πληροφορίας Όπως φαίνεται και στο παραπάνω σχήμα, σε γενικές γραμμές, οπτικοποίηση είναι ουσιαστικά η διαδικασία αντιστοίχισης από μια υπολογιστική αναπαράσταση σε μια πιο αντιληπτή αναπαράσταση (perceptual representation), επιλέγοντας τεχνικές κωδικοποίησης με σκοπό τη μεγιστοποίηση της ανθρώπινης αντίληψης και επικοινωνίας. Συνεπώς ο σκοπός των τεχνικών και εφαρμογών οπτικοποίησης πληροφορίας είναι να δώσουν τη δυνατότητα σε μια ευρεία γκάμα χρηστών με ευκολία σε χώρους πληροφορίας, να παρουσιάσουν καλύτερα την ανακτηθείσα πληροφορία και να βελτιώσουν την κατανόηση τους. Με άλλα λόγια, η οπτικοποίηση πληροφορίας είναι χρήσιμη στο βαθμό που αυξάνει την ικανότητά μας να ανακαλύπτουμε, να παίρνουμε αποφάσεις, και να δίνουμε εξηγήσεις. Θέτοντάς το πιο λακωνικά: ο στόχος της οπτικοποίησης πληροφορίας είναι η διορατικότητα, όχι οι εικόνες.[2] 2.2 Θεωρητικό υπόβαθρο Οι εφαρμογές οπτικοποίησης πληροφορίας βασίζονται σε βασικά χαρακτηριστικά του ανθρώπινου συστήματος αντίληψης. Το ανθρώπινο μάτι μπορεί να επεξεργαστεί ταυτόχρονα πολλές οπτικές ενδείξεις [12]. Το γεγονός αυτό σε συνδυασμό με το ότι οι άνθρωποι έχουν μια αξιοσημείωτη ικανότητα να θυμούνται εικόνες [13] αποτελεί τη βάση για τις εφαρμογές οπτικοποίησης. Οι σχεδιαστές οπτικοποιήσεων εκμεταλλεύονται μια σειρά από γραφικές ιδιότητες που το ανθρώπινο σύστημα αντίληψης αφομοιώνει εγγενώς πολύ γρήγορα. Αυτές οι ιδιότητες δίνουν τη δυνατότητα για απεικόνιση περισσότερης πληροφορίας [5]. Οι βασικότερες από αυτές είναι οι εξής: θέση, χρώμα, σκίαση, υφή, μέγεθος, σχήμα, προσανατολισμός, και κίνηση. Δ. Χαριδάκου Κεραμιίδα 15

Στο άρθρο του ο Cleveland, περιγράφει μια σειρά από πειράματα που έκανε με σκοπό να συγκρίνει κάποια από αυτά τα χαρακτηριστικά όσον αφορά την ικανότητά τους να κωδικοποιούν αναλογική πληροφορία. Επειδή μπορούμε να αντιληφθούμε αυτά τα χαρακτηριστικά άμεσα και επειδή κάθε χαρακτηριστικό μπορεί να χρησιμοποιηθεί για να αντιπροσωπεύσει διαφορετικά τμήματα των δεδομένων, μια καλή οπτικοποίηση μας επιτρέπει όχι μόνο να αντιληφθούμε πιο εύκολα την πληροφορία αλλά και να αντιληφθούμε περισσότερη πληροφορία την ίδια στιγμή. Μπορούμε αμέσως να διακρίνουμε πρότυπα στα δεδομένα που υποδηλώνουν τάσεις, να αναγνωρίσουμε κενά, να ανακαλύψουμε ακραίες τιμές ή λάθη, να εντοπίσουμε μέγιστα και ελάχιστα καθώς και ομαδοποιήσεις τιμών. Ως αποτέλεσμα, οι εφαρμογές οπτικοποίησης πληροφορίας μας επιτρέπουν να κατανοήσουμε καλύτερα πολύπλοκα συστήματα, να πάρουμε καλύτερες αποφάσεις, και να ανακαλύψουμε πληροφορία που μπορεί διαφορετικά να παρέμενε άγνωστη. Θέτοντάς το πιο απλά, ο Bertin [15] δηλώνει ότι τα γραφήματα έχουν τουλάχιστον δύο διακριτές χρήσεις οι οποίες δεν πρέπει να συγχέονται. Πρώτον, είναι ένα μέσο επικοινωνίας πληροφορίας, στην οποία περίπτωση ο δημιουργός τους έχει κατανόηση εξ αρχής της πληροφορίας αυτής, και δεύτερον, για γραφική επεξεργασία της πληροφορίας, στην οποία περίπτωση ο χρήστης χρησιμοποιεί και χειρίζεται τα γραφικά εργαλεία για να λύσει κάποιο πρόβλημα. «Τα γραφικά είναι τα οπτικά μέσα για τη λύση λογικών προβλημάτων» [14] Η οπτικοποίηση μπορεί να ενισχύσει διαφορετικά τμήματα της ανθρώπινης μνήμης με διαφορετικούς τρόπους [15] Η εικονική μνήμη είναι η μνήμη των οπτικών ερεθισμάτων. Είναι το πώς ο εγκέφαλος θυμάται μια εικόνα. Για παράδειγμα, κοιτάξτε ένα αντικείμενο στο δωμάτιο που βρίσκεστε τώρα και στη συνέχεια κλείστε τα μάτια και σκεφτείτε αυτό το αντικείμενο. Η εικόνα που βλέπετε στο μυαλό σας είναι η εικονική μνήμη σας από αυτό το οπτικό ερέθισμα. Η εικονική μνήμη είναι τμήμα του οπτικού συστήματος μνήμης μαζί με τη μακροπρόθεσμη μνήμη και τη βραχυπρόθεσμη οπτική μνήμη. Πρόκειται για ένα είδος αισθητηριακής μνήμης που διαρκεί πολύ λίγο και ξεθωριάζει πολύ γρήγορα. Ορισμένα οπτικά μοτίβα μπορούν να ανιχνευτούν σε αυτό το στάδιο χωρίς να χρειαστεί να περάσουν από τη διαδικασία της νόησης. Ο σχεδιασμός αποτελεσματικών οπτικοποιήσεων βασίζεται στην κατανόηση της αντίληψης των μοτίβων. Δ. Χαριδάκου Κεραμιίδα 16

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

3. ΑΝΑΠΑΡΑΣΤΑΣΗ ΚΑΙ ΔΙΑΔΡΑΣΗ 3.1 Αναπαράσταση πληροφορίας Η αναπαράσταση πληροφορίας αφορά τη γραφική απεικόνιση ή παρουσίαση των δεδομένων, με άλλα λόγια, την αντιστοίχιση των δεδομένων σε οπτική μορφή. Ο σκοπός της γραφικής μορφής των δεδομένων είναι να παρουσιαστούν τα δεδομένα, συνεπώς είναι ένα εργαλείο που βοηθά τους ανθρώπους να σκεφτούν σχετικά με την πληροφορία και να εξάγουν συμπεράσματα. Η αναπαράσταση πληροφορίας, είναι η μετάβαση από την αναπαράσταση της πραγματικότητας στον υπολογιστή στις εικόνες και τα γραφήματα (Σχήμα 1Error! Reference source not found.), δηλαδή, ουσιαστικά η μετατροπή ενός πίνακα δεδομένων σε μια οπτική δομή. Ο Schneiderman [15] προτείνει την κατηγοριοποίηση των τεχνικών αναπαράστασης με βάση το είδος των δεδομένων, και διακρίνει επτά κατηγορίες: Μονοδιάστατα (1-D): αναπαράσταση δεδομένων με γραμμικό τρόπο για δεδομένα που αποτελούνται από μια σειρά χαρακτήρων, όπως τα περιεχόμενα ενός κειμένου ή ο πηγαίος κώδικας ενός προγράμματος. Δισδιάστατα (2-D): αναπαράσταση δεδομένων ως δισδιάστατα οπτικά στοιχεία (χάρτες, κατόψεις, κτλ), όπου κάθε στοιχείο κατέχει ένα μέρος της συνολικής επιφάνειας. Τρισδιάστατα (3-D): αναπαράσταση αντικειμένων του πραγματικού κόσμου (μόρια, κτήρια, κτλ) τα οποία έχουν κάποιον όγκο και πιθανώς σύνθετες σχέσεις με άλλα αντικείμενα. Πολυδιάστατα (multidimensional): αναπαράσταση πολυδιάστατων δεδομένων, με δισδιάστατο ή τρισδιάστατο τρόπο. Τέτοια δεδομένων συνήθως θεωρούνται οι στατιστικές μετρήσεις οι οποίες είναι πολύ βολικό να θεωρηθούν σημεία σε έναν ν- διάστατο χώρο. Δέντρα (trees): αναπαράσταση ιεραρχικών σχέσεων δεδομένων. Δίκτυα (networks): αναπαράσταση σχέσεων δεδομένων όταν η δενδρική μορφή δεν είναι αρκετή, δηλαδή όταν τα δεδομένα έχουν τυχαίο αριθμό και είδος συνδέσεων μεταξύ τους. Χρονικά (temporal): αναπαράσταση δεδομένων σε χρονική σειρά. Δ. Χαριδάκου Κεραμιίδα 18

Η αναπαράσταση δεδομένων σε εικόνα μπορεί να γίνει με πολλούς διαφορετικούς τρόπους, χρησιμοποιώντας χρώματα, γραμμές, κουκίδες, σταυρούς κ.α. Σύμφωνα με τον Tufte [4], για να είναι αποτελεσματική, η γραφική απεικόνιση των δεδομένων θα πρέπει: Να εμφανίζει τα δεδομένα. Να προκαλεί το θεατή να σκεφτεί την ουσία και όχι σχετικά με τη μεθοδολογία, το σχεδιασμό, ή την τεχνολογία που χρησιμοποιήθηκε για την παραγωγή των γραφικών. Να μη διαστρεβλώνει το τί έχουν να πουν τα δεδομένα. Να εμφανίζει μεγάλα σύνολα δεδομένων με συνεκτικό τρόπο. Να ενθαρρύνει το μάτι να συγκρίνει διαφορετικά κομμάτια των δεδομένων. Να δείχνει τα δεδομένα σε διαφορετικό βαθμό λεπτομέρειας, από μια ευρεία επισκόπηση σε μια πιο λεπτομερή δομή. Να έχει έναν αρκετά σαφή στόχο: περιγραφή, εξερεύνηση, πινακοποίηση, ή ωραιοποίηση. Να είναι στενά συνδεδεμένη με τις στατιστικές και λεκτικές περιγραφές των συνόλων δεδομένων. Οι οπτικές δομές κατασκευάζονται με κάποιο είδος χωρικής τοποθέτησης, με σύμβολα (τα οπτικά στοιχεία, οι γραμμές, οι επιφάνειες, οι όγκοι κτλ που υπάρχουν στο χώρο), και τα γραφικά χαρακτηριστικά των συμβόλων. Η πιο θεμελιώδης πτυχή της οπτικής δομής είναι η χρήση που κάνει του χώρου, η οποία περιγράφεται με άξονες και τις ιδιότητές τους. Με λίγα λόγια, η αποτελεσματική αναπαράσταση δεδομένων είναι μια πολύ καλά σχεδιασμένη παρουσίαση ενδιαφερόντων δεδομένων θέμα ουσίας, στατιστικής και σχεδιασμού. Η αποτελεσματική αναπαράσταση αποτελείται από σύνθετες ιδέες που επικοινωνούνται με σαφήνεια, ακρίβεια, και αποτελεσματικότητα. Στη συνέχεια θα παρουσιαστεί μια συλλογή από τις πιο διαδεδομένες τεχνικές αναπαράστασης. Δ. Χαριδάκου Κεραμιίδα 19

3.2 Παραδείγματα τεχνικών αναπαράστασης 3.2.1 Διαγράμματα Το κοινό χαρακτηριστικό όλων των διαγραμμάτων είναι ότι αποτελούνται από δύο άξονες (τον χ και τον ψ), συνεπώς αναπαριστούν τη σχέση μεταξύ δύο ιδιοτήτων (για κάθε τιμή της μιας στον άξονα χ τί τιμή έχει η άλλη στον άξονα ψ). Με την εισαγωγή κι άλλων γραφικών στοιχείων, κυρίως του χρώματος, υπάρχει η δυνατότητα κωδικοποίησης παραπάνω από δύο ιδιοτήτων. Παρακάτω παρατίθενται κάποια παραδείγματα διαγραμμάτων. Διαγράμματα Γραμμής - Line charts: είναι διαγράμματα στα οποία η πληροφορία αναπαρίσταται από μια σειρά σημείων στον δισδιάστατο χώρο, ενωμένων μεταξύ τους ούτως ώστε να δημιουργούν μια συνεχή γραμμή. Συνήθως χρησιμοποιούνται για αναπαραστήσουν τάσεις στα δεδομένα με το πέρασμα του χρόνου (σε αυτήν την περίπτωση ο άξονας χ είναι αφιερωμένος στο χρόνο). Σχήμα 2: Διάγραμμα γραμμής Ιστογράμματα - Bar charts Column charts: είναι διαγράμματα που αποτελούνται από ορθογώνιες ράβδους, με μήκος ανάλογο της τιμής που αντιπροσωπεύουν. Συνήθως χρησιμοποιούνται για τη χάραξη δεδομένων με διακριτές τιμές που είναι ασυνεχή. Οι ράβδοι μπορούν να απεικονίζονται κάθετα (columns) ή οριζόντια (bars). Δ. Χαριδάκου Κεραμιίδα 20

Σχήμα 3: Ιστόγραμμα Διαγράμματα διασποράς - Scatter plots: αυτά τα διαγράμματα είναι η πιο συμβατική προσέγγιση για την αναπαράσταση των τιμών δύο μεταβλητών. Τα δεδομένα εμφανίζονται ως μια συλλογή σημείων, των οποίων η σχετική θέση ως προς τους άξονες υποδηλώνει την τιμή κάθε μεταβλητής. Σχήμα 4: Διάγραμμα διασποράς Διαγράμματα φυσαλίδας Bubble charts: Αυτά τα γραφήματα μπορούν να θεωρηθούν παραλλαγή των γραφημάτων διασποράς όπου τα σημεία έχουν αντικατασταθεί από φούσκες. Το μέγεθος της κάθε φούσκας κωδικοποιεί την τιμή μιας τρίτης μεταβλητής. Δ. Χαριδάκου Κεραμιίδα 21

Σχήμα 5: Διάγραμμα φυσαλίδας Διαγράμματα περιοχών Area charts: Τα γραφήματα περιοχών υπογραμμίζουν το μέγεθος της αλλαγής στη διάρκεια του χρόνου και μπορεί να χρησιμοποιηθούν για να επικεντρώσουν το ενδιαφέρον στη συνολική τιμή σε μια τάση. Με την εμφάνιση του αθροίσματος των τιμών που απεικονίζονται γραφικά, ένα γράφημα περιοχών εμφανίζει επίσης τη σχέση των τμημάτων ως προς ένα σύνολο. Σχήμα 6: Διάγραμμα περιοχών 3.2.2 Γραφήματα ποσοστών Εκτός από τα διαγράμματα περιοχών υπάρχουν και άλλα γραφήματα τα οποία αναπαριστούν μέσω του εμβαδού των επιφανειών που παρουσιάζουν τη ποσοστιαία σχέση κάθε μεταβλητής με το σύνολο των τιμών όλων των μεταβλητών. Τα πιο χαρακτηριστικά παραδείγματα αυτών των γραφημάτων είναι οι πίτες και τα treemaps. Διαγράμματα πίτες Pie charts: Με τα διαγράμματα πίτες, μπορεί να απεικονιστεί κάθε φορά μόνο μια μεταβλητή. Είναι κυκλικά διαγράμματα, χωρισμένα σε τομείς, όπου το εμβαδόν κάθε τομέα αναπαριστά μια τιμή επί του συνόλου. Τα διαγράμματα πίτες Δ. Χαριδάκου Κεραμιίδα 22

είναι μια πολύ παλιά τεχνική αναπαράστασης που εξακολουθεί να χρησιμοποιείται ευρέως ακόμα και σήμερα. Παρόλα αυτά, έχει δεχθεί πολλά αρνητικά σχόλια και συνήθως οι ειδικοί της οπτικοποίησης και της ανάλυσης δεδομένων συνιστούν την αποφυγή τους [16]. Σχήμα 7: Διάγραμμα πίτα 4 Treemaps: Τα treemaps μπορούν να θεωρηθούν ως μια γενίκευση των πιτών. Δεν έχουμε πλέον κυκλική δομή αλλά ορθογώνια, όμως και σε αυτή την περίπτωση το εμβαδόν κάθε υπο-ορθογωνίου σε σχέση με το συνολικό, υποδηλώνει ποσοστό επί του συνόλου. Με την εισαγωγή διαφορετικού χρώματος σε κάθε τομέα, μπορεί να κωδικοποιηθεί και μια δεύτερη μεταβλητή. Εκτός αυτού, ένα άλλο στοιχείο που κάνει τα treemaps πολύ πιο εύχρηστα από τις πίτες είναι ότι δίνουν τη δυνατότητα αναπαράστασης μεγάλου αριθμού τιμών. Αντιθέτως στις πίτες όταν ο αριθμός των τιμών είναι πάνω από εφτά το αποτέλεσμα είναι αρκετά άστοχο. Το ιδιαίτερο χαρακτηριστικό των treemaps είναι ότι μπορούν να αναπαραστήσουν και πληροφορία ιεραρχίας. Κάθε υποτομέας μπορεί να χωριστεί σε άλλους υποτομείς, ανάλογα με το ποιές κατηγορίες περιλαμβάνει. 4 Όλες οι εικόνες διαγραμμάτων που έχουν δειχθεί μέχρι αυτό το σημείο, έχουν παρθεί από το εγχειρίδιο του Microsoft Excel - http://office.microsoft.com/el-gr/excel-help/ha001233737.aspx#bmsurfacecharts Δ. Χαριδάκου Κεραμιίδα 23

Εικόνα 1: Treemap 3.2.3 Χάρτες Οι χάρτες είναι ίσως η μεγαλύτερη υποενότητα τρόπων απεικόνισης. Υπάρχουν πολλές παραλλαγές τύπων χαρτών, η καθεμία με τις δικές της δυνάμεις. Αυτές οι παραλλαγές μπορούν να συνδυαστούν μεταξύ τους και πολλές μπορούν να παραλλαχθούν ακόμα περισσότερο για την παραγωγή νέων τύπων. Στη συνέχεια γίνεται μια επισκόπηση μερικών ειδών χαρτών και για ποιές περιπτώσεις είναι κατάλληλα. Χωροπληθείς χάρτες Choropleth maps: Οι χωροπληθείς χάρτες είναι από τα πιο συχνά χρησιμοποιούμενα είδη χαρτών στην οπτικοποίηση πληροφορίας. Για αυτούς τους χάρτες το χρώμα είναι η πιο σημαντική ιδιότητα.ένα χρώμα ή μια απόχρωση ανατίθεται σε κατηγορικά ή ποσοτικά δεδομένα, και η τιμή για κάθε περιοχή χρησιμοποιείται για να χρωματιστεί η περιοχή αυτή στον χάρτη. Αυτοί οι χάρτες συνήθως χρησιμοποιούν πολιτικά σύνορα για να οριοθετήσουν τις περιοχές. Αυτή η τεχνική αν και έχει το πλεονέκτημα ότι είναι πολύ εύκολα κατανοητή, έχει κάποια μειονεκτήματα, μιας και το μέγεθος των περιοχών είναι μεταβλητό και μεγαλύτερες περιοχές μπορεί να «τραβήξουν» πιο πολύ την προσοχή του χρήστη σε σχέση με μικρότερες. Για να ξεπεραστεί αυτό το πρόβλημα συνήθως, βαθύτερες αποχρώσεις χρησιμοποιούνται για να αναπαραστήσουν μεγαλύτερες τιμές της μεταβλητής μιας και έχει αποδειχθεί ότι το χρώμα είναι πιο ισχυρή ένδειξη για το ανθρώπινο μάτι απ ότι το μέγεθος. Δ. Χαριδάκου Κεραμιίδα 24

Εικόνα 2: Χωροπληθής χάρτης Χαρτογράμματα Cartograms: Τα χαρτογράμματα προσπαθούν να διορθώσουν το πρόβλημα των εμβαδών στους χωροπληθείς χάρτες με το να παραλλάζουν την επιφάνεια των περιοχών αναλόγα με την τιμή τους. Αυτό σημαίνει ότι τα δεδομένα αντιπροσωπεύονται ισάξια στην οθόνη. Όμως και αυτή η τεχνική παρουσιάζει προβλήματα. Συγκεκριμένα παραμορφώνει τα σύνορα και μπορεί να καταστήσει τις περιοχές μη αναγνωρίσιμες. Εικόνα 3: Χαρτόγραμμα Δ. Χαριδάκου Κεραμιίδα 25

Χάρτες κουκίδων Pinpoint maps: Οι χάρτες κουκίδων δείχνουν την ακριβή τοποθεσία πραγμάτων. Δεν κωδικοποιούν αριθμητική πληροφορία, αλλά γεωγραφική πληροφορία ενός συνόλου αντικειμένων. Εικόνα 4: Χάρτης κουκίδων Χάρτες συνδέσεων Connection maps: Οι χάρτες συνδέσεων είναι παρόμοιοι με τους χάρτες κουκίδων μόνο που έχουν μια προσθήκη. Τα σημεία έχουν συνδέσεις μεταξύ τους. Σε πολλά παραδείγματα αυτής της τεχνικής, οι συνδέσεις είναι αφηρημένες, συνεπώς αναπαριστούνται από μια ευθεία ή καμπύλη γραμμή. Αυτοί οι χάρτες είναι ουσιαστικά γράφοι ή δίκτυα, ζωγραφισμένα πάνω σε γεωγραφικούς χάρτες. Δ. Χαριδάκου Κεραμιίδα 26

Εικόνα 5: Χάρτης συνδέσεων Τα παραπάνω είναι μόνο οι πιο χαρακτηριστικές και διαδεδομένες τεχνικές οπτικοποίησης. Εκτός από αυτές υπάρχει μια τεράστια ποικιλία από άλλα είδη γραφημάτων, ή και συνδυασμοί πολλών από αυτά. 3.3 Διάδραση Το κυρίαρχο γνώρισμα που διαχωρίζει τη σύγχρονη οπτικοποίηση πληροφορίας από τις γραφικές αναπαραστάσεις που δημιουργούνται στο χαρτί είναι η διάδραση (interaction): η δυνατότητα να αλλαχθεί τί βλέπουν οι χρήστες και πώς το βλέπουν. Στο μοντέλο της οπτικοποίησης πληροφορίας που φαίνεται στο Σχήμα 1, η διάδραση είναι οι μετασχηματισμοί που παρέχουν στο χρήστη τη δυνατότητα να αλλάξει τις εικόνες/γραφήματα που βλέπει, ουσιαστικά να δει διαφορετικές πτυχές των οπτικών κωδικοποιήσεων των δεδομένων. Ο χρήστης, με διάφορους τρόπους μπορεί να αλλάξει τις παραμέτρους στη δημιουργία αυτών των κωδικοποιήσεων. Αυτοί οι τρόποι μπορεί να είναι μέρος της οπτικοποίησης, μπορεί και όχι. Η δυνατότητα να αλλάξει η εικόνα των δεδομένων έχει τεράστια οφέλη μιας και οι χώροι πληροφορίας είναι τόσο μεγάλοι που μια όψη του συνόλου πολύ δύσκολα θα μπορέσει Δ. Χαριδάκου Κεραμιίδα 27

να οδηγήσει σε κατανόηση. Το αποτέλεσμα μιας καλής οπτικοποίησης ενισχύεται με το να γίνει διαδραστικό. Διάφορες εφαρμογές απεικονίζουν την προσθήκη διάδρασης σε οπτικοποιήσεις πληροφορίας, όπως το FilmFinder, το Spotfire, το TableLens, το InfoZoom, το Dust & Magnet, το Magic Lens, το See Through, το Attribute Explorer, το Name Voyager, το Vizster, και άλλα. Επιπλέον υπάρχει αφθονία διαδικτυακών εφαρμογών όπου γίνεται χρήση διαδραστικών οπτικοποιήσεων. Πολλές μελέτες έχουν επιχειρήσει να καταγράψουν και να κατηγοριοποιήσουν τις διάφορες μεθόδους διάδρασης. Εμείς θα παρουσιάσουμε κάποιες από τις πιο βασικές και διαδεδομένες κατηγορίες. 3.3.1 Επιλογή (Selection) - «μάρκαρε κάτι σαν ενδιαφέρον» Τυπικά ένας δείκτης, ένας δρομέας, ή κάποιο άλλο οπτικό στοιχείο χρησιμοποιείται για την επιλογή ή τον εντοπισμό ενός στοιχείου. Παραδείγματα επιλογής είναι η προσθήκη σημάνσεων χώρου (placemarks) στο Google Maps ή η εστίαση (focus) στο TableLens (Εικόνα 6). Εικόνα 6: Εστίαση σε ένα κελί στο εργαλείο TableLens 3.3.2 Εξερεύνηση (Explore) «δείξε μου κάτι διαφορετικό» Η εξερεύνηση επιτρέπει στους χρήστες να δουν ένα διαφορετικό υποσύνολο των δεδομένων. Οι διάφορες τεχνικές εξερεύνησης βοηθούν στο να ξεπεραστεί ο περιορισμός που θέτει το μέγεθος της οθόνης. Δ. Χαριδάκου Κεραμιίδα 28

Δύο πολύ συνηθισμένες τεχνικές εξερεύνησης είναι το ζουμ (zoom) και η μετατόπιση (pan). Με το zoom, ο χρήστης μπορεί να αλλάξει την κλίμακα της οπτικοποίησης, έχοντας την εντύπωση ότι πλησιάζει ή απομακρύνεται από ένα συγκεκριμένο τμήμα της. Η μετατόπιση είναι η ομαλή μετακίνηση ενός πλαισίου συγκεκριμένου μεγέθους, πάνω από μια εικόνα μεγαλύτερου μεγέθους αποκαλύπτοντας έτσι κάθε φορά και διαφορετικό τμήμα της. Μια άλλη τεχνική εξερεύνησης είναι ο άμεσος περίπατος (direct walk) ο οποίος είναι η μετακίνηση από ένα αντικείμενο σε ένα άλλο μέσω μια σειράς από συνδέσμους. Εικόνα 7: Άμεσος περίπατος στο εργαλείο Visual Thesaurus 3.3.3 Αναδιαμόρφωση (Reconfigure) «δείξε μου μια διαφορετική διάταξη» Οι τρόποι αναδιαμόρφωσης προσφέρουν στο χρήστη διαφορετικές οπτικές γωνίες των ίδιων δεδομένων μέσω της αναδιάταξής τους στην οθόνη. Παραδείγματα τέτοιων τεχνικών είναι η ταξινόμηση (sorting) και οι συγκεντρωτικοί πίνακες (pivot tables), μια τεχνική που επιτρέπει στον χρήστη να αλλάζει εύκολα την αντιστοίχιση των δεδομένων σε άξονες. 3.3.4 Κωδικοποίηση (Encode) «δείξε μου μια διαφορετική αναπαράσταση» Κωδικοποίηση ουσιαστικά σημαίνει αλλαγή στην εμφάνιση της οπτικοποίησης: στα χρώματα, τα μεγέθη, το σχήμα, το φόντο, κ.α. των αντικειμένων. Δ. Χαριδάκου Κεραμιίδα 29

3.3.5 Αφαίρεση/Ανάλυση (Abstract/Elaborate) «δείξε μου περισσότερη ή λιγότερη λεπτομέρεια» Με αυτού του είδους τις τεχνικές γίνεται προσαρμογή του επιπέδου αφαίρεσης των δεδομένων. Παραδείγματα είναι τα εξής: η τεχνική drill down, με την οποία ο χρήστης μπορεί να επεκτείνει τις λεπτομέρειες μια περίπτωσης, δηλαδή να διευρύνει ένα μικρό σύνολο αντικειμένων για να αποκαλύψει περισσότερες μεταβλητές τους, τα tooltips, δηλαδή πίνακες που εμφανίζονται μετά από επιλογή συγκεκριμένων αντικειμένων και περιέχουν περισσότερες λεπτομέρειες για τα αντικείμενα αυτά, ακόμα και η τεχνική του ζουμ που αναφέρθηκε παραπάνω. 3.3.6 Φιλτράρισμα (Filter) «δείξε μου ό,τι πληροί κάποιες συνθήκες» Με το φιλτράρισμα αλλάζει το σύνολο των δεδομένων που εμφανίζονται με βάση κάποιες συνθήκες. Μια από τις πιο διαδεδομένες τεχνικές για φιλτράρισμα είναι οι δυναμικές επερωτήσεις (Εικόνα 8). Σε αυτές, με τη χρήση κουμπιών, sliders και άλλων ελέγχων θέτονται όρια για το ποιά δεδομένα θα εμφανιστούν. Οι δυναμικές επερωτήσεις είναι ένας από τους πιο γνωστούς και διαδεδομένους τρόπους να αυξάνεται η χρησιμότητα των οπτικοποιήσεων. Εικόνα 8: Δυναμικές επερωτήσεις στο εργαλείο Dynamic HomeFinder Δ. Χαριδάκου Κεραμιίδα 30

3.3.7 Σύνδεση (Connect) «δείξε μου σχετικά αντικείμενα» Με τη σύνδεση τονίζονται σχέσεις και ενώσεις μεταξύ των αντικειμένων, εμφανίζοντας κρυφά αντικείμενα που έχουν σχέση με ένα συγκεκριμένα αντικείμενο. Μια πολύ γνωστή τεχνική είναι αυτή του brushing, που έχει εφαρμογή όταν υπάρχουν πολλαπλές όψεις των ίδιων συνόλων αντικειμένων. Επιλογή μιας περίπτωσης σε μια από τις όψεις οδηγεί σε έμφαση της ίδιας περίπτωσης στις υπόλοιπες όψεις (Εικόνα 9) Εικόνα 9: Brushing στην εφαρμογή InfoZoom Δ. Χαριδάκου Κεραμιίδα 31

4. ΑΠΟΘΗΚΕΣ ΔΕΔΟΜΕΝΩΝ 4.1 Εισαγωγή Πέρα από τους πιθανούς τρόπους οπτικοποίησής τους, ένα άλλο πολύ κρίσιμο ζήτημα όσων αφορά τα δεδομένα είναι προφανώς οι τρόποι αποθήκευσής τους. Ανάλογα με το πώς γίνεται η αναπαράσταση της πραγματικότητας στον υπολογιστή (Σχήμα 1), μπορεί να βοηθηθούν ή να δυσκολευτούν πιθανώς ενδιαφέροντες υπολογισμοί πάνω σε αυτά, αλλά και οι τρόποι προσπέλασής τους. Ένας πολύ διαδεδομένος τρόπος αποθήκευσης είναι οι αποθήκες δεδομένων (data warehouses), μια ειδική κατηγορία σχεσιακών βάσεων δεδομένων, με ιδιαίτερα χαρακτηριστικά που τις κάνουν πολύ χρήσιμες κυρίως σε θέματα ανάλυσης δεδομένων και λήψης αποφάσεων. «Μια αποθήκη δεδομένων είναι μια συλλογή δεδομένων που χρησιμοποιείται κυρίως για τη λήψη αποφάσεων σε έναν οργανισμό και είναι θεματικά προσανατολισμένη, έχει ολοκληρωμένα (ενοποιημένα) δεδομένα, τα οποία διατηρούνται σε βάθος χρόνου χωρίς να διαγράφονται» [27]. Σε έναν οργανισμό, συνήθως η αποθήκη δεδομένων διατηρείται χωριστά από τη βάση δεδομένων παραγωγής του. Υπάρχουν πολλοί λόγοι γι αυτό. Η αποθήκη δεδομένων υποστηρίζει on line λειτουργίες για ανάλυση (on-line analytical processing - OLAP), για τις οποίες οι λειτουργικές απαιτήσεις και οι απαιτήσεις σε απόδοση είναι πολύ διαφορετικές απ ότι στις on-line λειτουργίες για συναλλαγές σε (on-line transaction processing - OLTP) οι οποίες παραδοσιακά υποστηρίζονται από τις επιχειρησιακές βάσεις δεδομένων. [26] Οι εφαρμογές OLTP, τυπικά αυτοματοποιούν λειτουργίες διαχείρισης δεδομένων όπως εισαγωγή παραγγελίας και οι τραπεζικές συναλλαγές, που είναι πολύ συνηθισμένες στην καθημερινότητα μιας επιχείρησης. Απαιτούν λεπτομερή και σύγχρονα δεδομένα. Αντίθετα, οι αποθήκες δεδομένων στοχεύουν στη λήψη αποφάσεων και στη σχεδίαση στρατηγικών. Χρειάζονται ιστορικά και αθροιστικά δεδομένα, πιθανώς από πολλές πηγές. Παραδείγματα επερωτήσεων τύπου OLAP μπορεί να είναι: Ποιά είναι τα δέκα πρώτα καταστήματα σε πωλήσεις CD; Τι ποσοστό από τους πελάτες που αγοράζουν αναψυκτικά, αγοράζουν και πατατάκια; Πόσο σχετίζονται οι αυξήσεις τιμών των υπολογιστών με τα κέρδη των πωλήσεων τα τελευταία δέκα χρόνια; Συνεπώς, στην περίπτωση των συναλλαγών OLAP αυτό που ενδιαφέρει πιο πολύ δεν είναι οι χρόνοι εκτέλεσης ενημερώσεων στη βάση, αλλά οι χρόνοι εκτέλεσης επερωτήσεων. Πολλές φορές οι μόνες λειτουργίες που θα εκτελεστούν ποτέ σε μια αποθήκη δεδομένων είναι η Δ. Χαριδάκου Κεραμιίδα 32

αρχική φόρτωσή της με δεδομένα και στη συνέχεια σύνθετες επερωτήσεις πάνω σε αυτά. Κατά τις προηγούμενες δεκαετίες έλαβε χώρα μια τεράστια αύξηση τόσο του αριθμού των προϊόντων και υπηρεσιών που προσφέρονται, όσο και της υιοθέτησής τους από διάφορους τομείς, κυρίως τη βιομηχανία. Οι τεχνολογίες για αποθήκες δεδομένων έχουν χρησιμοποιηθεί με επιτυχία σε πολλούς τομείς. στις κατασκευές, για καταγραφή παραγγελιών και υποστήριξη πελατών, στο εμπόριο, για δημιουργία προφίλ πελατών, και διαχείριση αποθεμάτων, στις χρηματοοικονομικές υπηρεσίες, για ανάλυση κινδύνου, ανάλυση πιστωτικών καρτών, ανίχνευση απάτης, κ.α., στις τηλεπικοινωνίες, για ανάλυση κλήσεων, ανίχνευση απάτης, κα, στις μεταφορές, για διαχείριση στόλου, στις υπηρεσίες κοινής ωφέλειας, για ανάλυση χρήσης ενέργειας, στις υπηρεσίες υγειονομικής περίθαλψης, για ανάλυση αποτελεσμάτων, κ.α. 4.2 Μοντέλο δεδομένων Ο κύβος των δεδομένων Ένα πολύ διαδεδομένο εννοιολογικό μοντέλο για τις αποθήκες δεδομένων είναι το πολυδιάστατο μοντέλο δεδομένων. Σε ένα πολυδιάστατο μοντέλο δεδομένων υπάρχουν ένα σύνολο από αριθμητικές μετρήσεις (measurements) που είναι τα αντικείμενα προς ανάλυση. Παραδείγματα τέτοιων μετρήσεων είναι οι πωλήσεις, ο προϋπολογισμός, τα έσοδα, η απογραφή, η επιστροφή από τις επενδύσεις (return-on-investment). Κάθε ένα από τα αριθμητικά μέτρα εξαρτάται από ένα σύνολο διαστάσεων (dimensions) οι οποίες παρέχουν το πλαίσιο για αυτό το μέτρο. Για παράδειγμα, οι διαστάσεις που σχετίζονται με μια ποσότητα πώλησης μπορεί να είναι η πόλη, το όνομα του προϊόντος, καθώς και η ημερομηνία κατά την οποία έγινε η πώληση. Όλες οι διαστάσεις μαζί υποτίθεται ότι χαρακτηρίζουν μοναδικά το μέτρο. Με άλλα λόγια, το πολυδιάστατο μοντέλο θεωρεί τις τιμές των μέτρων σα σημεία σε έναν πολυδιάστατο χώρο. Κάθε διάσταση περιγράφεται από ένα σύνολο χαρακτηριστικών. Για παράδειγμα η διάσταση των προϊόντων μπορεί να αποτελείται από τέσσερα χαρακτηριστικά: την κατηγορία του προϊόντος, τη βιομηχανία του, το έτος εισαγωγής του, και το μέσο περιθώριο κέρδους. Για παράδειγμα το αναψυκτικό Surge ανήκει στην κατηγορία Δ. Χαριδάκου Κεραμιίδα 33

ποτών, βιομηχανία τροφίμων, εισήχθη το 1996, και μπορεί να έχει ένα μέσο περιθώριο κέρδους 80%. Τα χαρακτηριστικά μιας διάστασης μπορεί να σχετίζονται μεταξύ τους μέσω ιεραρχικών σχέσεων. Στο παραπάνω παράδειγμα, το όνομα του προϊόντος σχετίζεται με την κατηγορία του και αυτή με τη βιομηχανία μέσα από μια τέτοια ιεραρχική σχέση. Τις περισσότερες φορές ο πολυδιάστατος αυτός χώρος αναπαρίσταται από έναν κύβο (περίπτωση όπου οι διαστάσεις είναι τρεις) και γι αυτό και ονομάζεται και κύβος δεδομένων (data cube) (βλέπε Σχήμα 8Error! Reference source not found.). Συνολικά, σε έναν ν-διάστατο χώρο ο βασικός κύβος δεδομένων σχετίζεται με 2 ν υποκύβους. Κάθε τέτοιος κύβος, ονομάζεται και κυβοειδές και αναπαριστά μια μοναδική οπτική των δεδομένων σε ένα συγκεκριμένο βαθμό λεπτομέρειας. [20] Σχήμα 8: Πολυδιάστατο μοντέλο δεδομένων Δ. Χαριδάκου Κεραμιίδα 34

Σχήμα 9: Ιεραρχική σχέση διαστάσεων Ένα άλλο ιδιαίτερο χαρακτηριστικό του εννοιολογικού μοντέλου για OLAP είναι η έμφασή του στον υπολογισμό αθροισμάτων των μέτρων με βάση μια ή περισσότερες διαστάσεις, για παράδειγμα τον υπολογισμό του συνόλου των πωλήσεων για κάθε χώρα (ή για κάθε χρόνο). Άλλες πολύ συχνές λειτουργίες είναι η σύγκριση δύο μετρήσεων (πχ οι πωλήσεις και ο προϋπολογισμός) αθροισμένες με βάση την ίδια διάσταση. Ο χρόνος σαν διάσταση είναι ιδιαιτέρας σημασίας για τη λήψη αποφάσεων (πχ στην ανάλυση των τάσεων), γι αυτό πολύ συχνά είναι επιθυμητό από ένα σύστημα αποθήκης δεδομένων να έχει ενσωματωμένη γνώση της διάστασης του χρόνου. Το παραπάνω μοντέλο, στις σχεσιακές βάσεις δεδομένων μεταφράζεται σε ένα σύνολο πινάκων δύο κατηγοριών: πίνακες διαστάσεων και πίνακες μετρήσεων. Οι πίνακες διαστάσεων έχουν πληροφορία σχετικά με κάθε διάσταση όπως πχ: Προϊόν (όνομα, μάρκα, τύπος) Χρόνος (ημέρα, εβδομάδα, μήνας, τρίμηνο, χρόνος) Οι πίνακες μετρήσεων ή πίνακες γεγονότων (fact tables) έχουν ως γνωρίσματα τις μετρήσεις και το πρωτεύον κλειδί κάθε σχετικού πίνακα διαστάσεων. Τα πιο πολλά συστήματα αποθηκών δεδομένων χρησιμοποιούν σχήμα αστέρι (star schema) για να αναπαραστήσουν τον πολυδιάστατο χώρο δεδομένων: η βάση δεδομένων αποτελείται από έναν πίνακα μετρήσεων και έναν μοναδικό πίνακα για κάθε διάσταση. Το Σχήμα 10 δείχνει ένα παράδειγμα ενός σχήματος αστέρι. Δ. Χαριδάκου Κεραμιίδα 35

Σχήμα 10: Σχήμα αστέρι Τα σχήματα αστέρι δεν προσφέρουν τρόπο έκφρασης ιεραρχιών. Το σχήμα νιφάδα (snowflake schema) είναι μια βελτίωση του σχήματος αστέρι όπου η ιεραρχία διαστάσεων κανονικοποιείται σε ένα σύνολο από μικρότερους πίνακες διαστάσεων, όπως φαίνεται στο Σχήμα 11. Αυτό οδηγεί σε πλεονεκτήματα όσων αφορά την συντήρηση των πινάκων διαστάσεων. Παρόλα αυτά η αποκανονικοποίηση των διαστάσεων σε ένα σχήμα αστέρι προσφέρει τα δικά της πλεονεκτήματα και μπορεί να είναι πιο κατάλληλη για περιήγηση στις διαστάσεις. Αστερισμοί γεγονότων (fact constellations) είναι παραδείγματα πιο πολύπλοκων δομών όπου περισσότεροι από ένας πίνακες μετρήσεων μοιράζονται κάποιους πίνακες διαστάσεων. Δ. Χαριδάκου Κεραμιίδα 36

Σχήμα 11: Σχήμα νιφάδα 4.3 Υπολογισμοί στον κύβο δεδομένων Οι τεχνολογίες OLAP είναι η βάση για τις περισσότερες εφαρμογές σε πολλά εργαλεία οπτικοποίησης δεδομένων. Ο χρήστης αυτών των εργαλείων πλοηγείται στον κύβο δεδομένων εκτελώντας συγκεκριμένες αλγεβρικές πράξεις. Οι πιο συνηθισμένες από αυτές είναι η συναθροιστική άνοδος, η αναλυτική κάθοδος, ο οριζόντιος τεμαχισμός, ο κάθετος τεμαχισμός, και η περιστροφή. 4.3.1 Συναθροιστική άνοδος (Roll up) Η συναθροιστική άνοδος περιλαμβάνει τον υπολογισμό μίας συνολικής τιμής για μία θέση στην ιεραρχία μίας διάστασης δεδομένων. Για παράδειγμα, με ένα roll-up, οι πωλήσεις σε επίπεδο πόλης παράγουν τις συνολικές πωλήσεις σε επίπεδο περιοχής και αυτές με τη σειρά τους με ένα ακόμα roll-up παράγουν τις πωλήσεις σε επίπεδο χώρας. Δ. Χαριδάκου Κεραμιίδα 37

Εικόνα 10: Roll up 4.3.2 Αναλυτική κάθοδος (Drill down) Ο χρήστης περνά από ένα ανώτερο επίπεδο μίας διάστασης που έχει συγκεντρωτικά δεδομένα σε ένα χαμηλότερο επίπεδο με πιο λεπτομερή δεδομένα. Πρόκειται για την αντίστροφη πράξη του roll-up. Για παράδειγμα, κατά το drill down, ξεκινάμε από τις πωλήσεις ανά χώρα και παίρνουμε τις αναλυτικές πωλήσεις ανά περιοχή και μετά τις πωλήσεις ανά πόλη. Δ. Χαριδάκου Κεραμιίδα 38

Εικόνα 11: Drill down 4.3.3 Οριζόντιος τεμαχισμός (Slice) Επιλογή συγκεκριμένων τιμών σε κάποια διάσταση. Για παράδειγμα, δείξε μου τις πωλήσεις για το έτος 2010. Εικόνα 12: Slice Δ. Χαριδάκου Κεραμιίδα 39

4.3.4 Κάθετος τεμαχισμός (Dice) Ο κάθετος τεμαχισμός είναι ουσιαστικά οριζόντιος τεμαχισμός σε πάνω από δύο διαστάσεις του κύβου δεδομένων, ή αλλιώς πάνω από δύο διαδοχικοί οριζόντιοι τεμαχισμοί. Σχήμα 12: Dice 4.3.5 Περιστροφή (Pivot) Αυτή η πράξη περιστρέφει τα δεδομένα προκειμένου να προσφέρει μια εναλλακτική παρουσίασή τους. Για αυτήν την πράξη δεν απαιτείται κανένας υπολογισμός στη βάση δεδομένων. Δ. Χαριδάκου Κεραμιίδα 40

Εικόνα 13: Pivot 4.4 Υπολογίζοντας τον κύβο δεδομένων Ο υπολογισμός του κύβου συνίσταται στον υπολογισμό των μετρήσεων συναθροισμένα για κάθε υποσύνολο διαστάσεων. Κάθε τέτοιο υποσύνολο αντιστοιχεί σε έναν υποκύβο. Αυτό σημαίνει ότι για ένα σύνολο τριών διαστάσεων, υπάρχουν 2 3 υποσύνολα, ή υποκύβοι. Σχήμα 13: Το πλέγμα των κυβοειδών που απαρτίζουν τον κύβο δεδομένων Στην ουσία ο κύβος δεδομένων μπορεί να δημιουργηθεί από την ένωση (UNION) μιας σειράς επερωτήσεων επιλογής (SELECT) (Εικόνα 14). [20] Δ. Χαριδάκου Κεραμιίδα 41

Εικόνα 14: Η σειρά των επερωτήσεων για τον υπολογισμό του πλήρη κύβου δεδομένων Δ. Χαριδάκου Κεραμιίδα 42

Εικόνα 15: Παράδειγμα κύβου δεδομένων με συγκεκριμένες τιμές Όπως φαίνεται και από την Εικόνα 15, ο κύβος δεδομένων είναι αρκετά μεγαλύτερος από τον πίνακα μετρήσεων. Συγκεκριμένα, για Ν διαστάσεις, αν η πληθικότητά τους είναι C 1,C 2,..., C N τότε η πληθικότητα του συνολικού κύβου θα είναι (C i +1). Όπως είναι προφανές, ο υπολογισμός του κύβου είναι μια αρκετά χρονοβόρα διαδικασία, η οποία όμως μπορεί να γίνει αποδοτικά αν ληφθούν υπόψη οι εξαρτήσεις μεταξύ των διαδοχικών κυβοειδών. Για παράδειγμα, ένα μονοδιάστατο κυβοειδές μπορεί να θεωρεί παιδί δύο δισδιάστατων κυβοειδών, και να υπολογιστεί από οποιοδήποτε από αυτά, αντί του αρχικού πίνακα μετρήσεων. Κατά καιρούς έχουν προταθεί πολλοί αλγόριθμοι για τον υπολογισμό του κύβου. Πολλές φορές όμως ο υπολογισμός του πλήρη κύβου δεν είναι επιθυμητός μιας και κάποια Δ. Χαριδάκου Κεραμιίδα 43

κυβοειδή μπορεί να μην παρουσιάζουν ενδιαφέρον. Συνεπώς έχουν προκύψει και αρκετές μέθοδοι για την εκτίμηση του υποσυνόλου του κύβου που παρουσιάζει ενδιαφέρον, και τον προ-υπολογισμό και αποθήκευση μόνο αυτού. Δ. Χαριδάκου Κεραμιίδα 44

5. ΠΕΡΙΓΡΑΦΗ ΕΡΓΑΛΕΙΟΥ Στα πλαίσια της εργασίας αυτής, αναπτύχθηκε ένα εργαλείο για τη διαχείριση αποθηκών δεδομένων και την παραγωγή διαφόρων διαγραμμάτων από τα δεδομένα τους. Η έμπνευση για ένα τέτοιο εργαλείο προέκυψε από το ευρωπαϊκό έργο enventory, στο οποίο εταίρος ήταν το Πανεπιστήμιο Αθηνών. Το έργο αυτό είχε ως κύριο στόχο την παρουσίαση ορισμένων δεικτών που αφορούν στη διείσδυση των ηλεκτρονικών υποδομών στις χώρες της Ευρώπης τα τελευταία χρόνια. Έργα με παρόμοιες ανάγκες όπως το enventory, όσων αφορά στη διαχείριση και παρουσίαση πολλών δεδομένων, υπάρχουν πολλά, γεγονός που μας οδήγησε στο να επιχειρήσουμε να σταχυολογήσουμε τις κοινές τους ανάγκες και να ξεκινήσουμε την υλοποίηση ενός εργαλείου που θα καλύπτει όσο γίνεται περισσότερες από αυτές. Κατά τη σύλληψη της ιδέας για το εργαλείο αυτό και το σχεδιασμό του θέσαμε κάποιους βασικούς στόχους που θα πρέπει να πληροί το τελικό προϊόν. Αυτοί είναι οι εξής: Να είναι, κατά το δυνατόν, ανεξάρτητο από τα δεδομένα, με την έννοια ότι θα πρέπει χωρίς αλλαγές στον κώδικα του εργαλείου, αυτό να λειτουργεί για διαφορετικά σύνολα δεδομένων. Να μπορεί να χρησιμοποιηθεί χωρίς να απαιτεί από τους χρήστες ειδικές γνώσεις προγραμματισμού ή βάσεων δεδομένων. Να είναι επεκτάσιμο όσων αφορά στο είδος των διαγραμμάτων που παράγει. Να είναι επεκτάσιμο όσων αφορά στο βαθμό παραμετροποίησης που ζητάει από το χρήστη. Στη συνέχεια αφού παρουσιαστεί η λίστα με τις απαιτήσεις των χρηστών που καλύπτει το εργαλείο μας, θα ακολουθήσει μια γενική περιγραφή της υλοποίησης και της εμφάνισής του. 5.1 Χρήστες Πριν από το σχεδιασμό οποιουδήποτε εργαλείου είναι απαραίτητο να καθοριστούν ποιοί θα είναι οι πιθανοί χρήστες του, για ποιό λόγο θα θελήσουν να το χρησιμοποιήσουν, και τί απαιτήσεις θα έχουν από αυτό. Στην περίπτωση του εργαλείου που ορίστηκε και ξεκίνησε να υλοποιείται στα πλαίσια αυτής της διπλωματικής, οι πιθανοί χρήστες ανήκουν αναγκαστικά σε μια πολύ γενικά Δ. Χαριδάκου Κεραμιίδα 45

ορισμένη ομάδα. Κι αυτό γιατί θελήσαμε να καλύπτει τις βασικές έστω ανάγκες σε όσο πιο πολλές διαφορετικές περιπτώσεις γίνεται. Οι πιθανοί χρήστες λοιπόν ενός εργαλείου για διαχείριση και οπτικοποίηση αποθηκών δεδομένων είναι όλοι εκείνοι που έχουν ένα σύνολο από ιστορικά αριθμητικά δεδομένα, θα αναφερόμαστε σε αυτά με τον όρο μετρήσεις, και θα ήθελαν: Να τα αποθηκεύσουν με αξιόπιστο και επαγγελματικό τρόπο σε μια αποθήκη δεδομένων. Να τα διαχειριστούν. Να τα αναπαραστήσουν με τρόπο κατανοητό και φιλικό προς το χρήστη. Το επίπεδο γνώσεων των χρηστών όσων αφορά την τεχνολογία και τις βάσεις δεδομένων μπορεί να ποικίλει. 5.2 Απαιτήσεις χρηστών Στη συνέχεια παραθέτουμε τη λίστα με τις πιο βασικές απαιτήσεις χρηστών που λάβαμε υπόψη μας κατά τη σχεδίαση της εφαρμογής μας. Πίνακας 1: Λίστα απαιτήσεων χρηστών Νο Απαίτηση Περιγραφή Τρόπος υλοποίησης Επίπεδο αναγκαιότητας 1 Επιλογή Να μπορεί ο χρήστης να Drop down στήλη με Απαραίτητη πίνακα επιλέξει έναν από τους, τιμές τους μετρήσεων. πιθανώς πολλούς, διαθέσιμους πίνακες πίνακες μετρήσεων της μετρήσεων. αποθήκης δεδομένων, στα δεδομένα του οποίου θα εκτελεστούν οι λειτουργίες οπτικοποίησης. Δ. Χαριδάκου Κεραμιίδα 46

Νο Απαίτηση Περιγραφή Τρόπος υλοποίησης Επίπεδο αναγκαιότητας 2 Εμφάνιση των Να μπορεί ο χρήστης να Λίστα με τις Επιθυμητή μεταδεδομένω δει για κάθε μέτρηση τα πληροφορίες των ν των μεταδεδομένα της όπου μεταδεδομένων των μετρήσεων. αυτά υπάρχουν. μετρήσεων. 3 Επιλογής μιας Να μπορεί ο χρήστης να Λίστα με τις Απαραίτητη ή επιλέξει από τη λίστα μετρήσεις του περισσότερων των μετρήσεων του επιλεγμένου πίνακα μετρήσεων επιλεγμένου πίνακα, μετρήσεων και προς ποιών τις τιμές θα ήθελε επιλογή του σε ποιόν οπτικοποίηση. να δει οπτικοποιημένες ψ άξονα του σε διάγραμμα. διαγράμματος θα εμφανιστεί το καινούργιο πεδίο. 4 Επιλογή Να μπορεί ο χρήστης να Drop down λίστα με Απαραίτητη διάστασης για επιλέξει μια ή τις διαστάσεις του τη δημιουργία περισσότερες επιλεγμένου πίνακα κατηγοριών διαστάσεις ως προς τις μετρήσεων. στην οποίες να γίνει οπτικοποίηση. ομαδοποίηση των τιμών των επιλεγμένων μετρήσεων. 5 Επιλογή Να μπορεί ο χρήστης να Απαραίτητη συνάθροισης δηλώνει για κάθε για τις μέτρηση που έχει μετρήσεις ζητήσει να προς οπτικοποιήσει ποιά οπτικοποίηση. συναθροιστική συνάρτηση θέλει να εφαρμοστεί. Δ. Χαριδάκου Κεραμιίδα 47

Νο Απαίτηση Περιγραφή Τρόπος υλοποίησης Επίπεδο αναγκαιότητας 6 Οπτικοποίηση Οπτικοποίηση των Κουμπί για επιλογή Απαραίτητη σε γράφημα. επιλεγμένων μετρήσεων του γραφήματος ως και διαστάσεων σε τρόπο κάποιου είδους οπτικοποίησης. γράφημα. 7 Οπτικοποίηση Οπτικοποίηση των Κουμπί για επιλογή Επιθυμητή σε πίνακα. επιλεγμένων μετρήσεων του πίνακα ως τρόπο και διαστάσεων σε οπτικοποίησης. πίνακα. 8 Οπτικοποίηση Οπτικοποίηση μιας Κουμπί για επιλογή Επιθυμητή σε χωροπληθή μέτρησης που εξαρτάται του χάρτη ως τρόπο χάρτη. από γεωγραφικά οπτικοποίησης. δεδομένα σε χωροπληθή χάρτη. 9 Εξαγωγή Δυνατότητα Κουμπί για Επιθυμητή δεδομένων σε αποθήκευσης σε αρχείο κατέβασμα αρχείου αρχείο. των επιλεγμένων που περιέχει τα δεδομένων. δεδομένα που οπτικοποιούνται. 10 Επιλογή Στην περίπτωση Λίστα με τους Απαραίτητη τύπου οπτικοποίησης σε διαθέσιμους τύπους γραφήματος. γραφήματα να μπορεί ο γραφημάτων. χρήστης να επιλέξει από μια λίστα τύπων διαγραμμάτων για κάθε μέτρηση που οπτικοποιεί. Δ. Χαριδάκου Κεραμιίδα 48

Νο Απαίτηση Περιγραφή Τρόπος υλοποίησης Επίπεδο αναγκαιότητας 11 Ζουμ σε Να μπορεί ο χρήστης να Επιλογή περιοχής Απαραίτητη γράφημα. κάνει ζουμ σε γραφήματος η οποία οποιοδήποτε σημείο του θα μεγιστοποιηθεί. γραφήματος, 12 Φίλτρα. Να μπορεί να εισάγει φίλτρα για οποιοδήποτε πεδίο του επιλεγμένου πίνακα μετρήσεων. 13 Tooltip. Να μπορεί να εμφανίσει πιο λεπτομερείς πληροφορίες για τα σημεία του διαγράμματος. Κουμπί για εισαγωγή νέου φίλτρου μετά από επιλογή από όλα τα διαθέσιμα πεδία. Το φίλτρο θα είναι είτε slider είτε λίστα από checkboxes, ανάλογα τον τύπο του πεδίου επιλέχτηκε. (ordinal ή nominal) Με την επιλογή κάποιου σημείου του διαγράμματος, εμφανίζεται ένα κουτί με πληροφορίες για τις ακριβείς τιμές που αναπαριστά το σημείο αυτό στο διάγραμμα. Απαραίτητη Επιθυμητή Δ. Χαριδάκου Κεραμιίδα 49

Νο Απαίτηση Περιγραφή Τρόπος υλοποίησης Επίπεδο αναγκαιότητας 14 Ορισμός Να μπορεί ο χρήστης να Πεδία κειμένου όπου Επιθυμητή επικεφαλίδων εισάγει τον δικό του ο χρήστης θα μπορεί διαγράμματος. τίτλο και υπότιτλο για το να εισάγει ονόματα παραχθέν διάγραμμα, για όλα τα στοιχεία καθώς και ονόματα για του διαγράμματος. τα επιλεγμένα πεδία. 15 Εξαγωγή Να μπορεί ο χρήστης να Κουμπί για Επιθυμητή εικόνας εξάγει και να αποθήκευση ή διαγράμματος. αποθηκεύσει την εκτύπωση του τρέχουσα οπτικοποίηση. διαγράμματος. 16 Εξαγωγή Να μπορεί ο χρήστης να Εμφάνιση ειδικού url, Επιθυμητή διαγράμματος. εξάγει ξεχωριστή html στο οποίο θα σελίδα με το τρέχον περιέχεται μόνο το διάγραμμα. διάγραμμα. 17 Ρύθμιση της Να μπορεί ο χρήστης να Αρχείο με τα Επιθυμητή εμφάνισης του επιλέξει από μια σειρά προκαθορισμένα και καμβά του προκαθορισμένων τα νέα θέματα για την διαγράμματος. θεμάτων για την εμφάνιση και επιλογή εμφάνιση των ενός από αυτά με διαγραμμάτων αλλά και χρήση radio buttons. να ορίσει νέα θέματα. 5.3 Γενική ανασκόπηση Με δεδομένους τους στόχους και τις γενικές απαιτήσεις για το εργαλείο, ορίστηκαν κάποιες γενικές προδιαγραφές και αποφασίστηκε ποιές τεχνολογίες θα χρησιμοποιηθούν. Στη συνέχεια θα παρουσιαστούν εν τάχει τα κυριότερα σημεία της εφαρμογής και τα θέματα που μας απασχόλησαν κατά το σχεδιασμό της. Δ. Χαριδάκου Κεραμιίδα 50

5.3.1 Αποθήκευση δεδομένων Μια από τις πιο κρίσιμες αποφάσεις που έπρεπε να παρθούν κατά το σχεδιασμό του εργαλείου είναι ο τρόπος αποθήκευσης των δεδομένων. Πολλά παρόμοια εργαλεία λειτουργούν με αρχεία δεδομένων, κυρίως excel ή και csv, άλλα με βάσεις δεδομένων κυρίως σχεσιακού τύπου-, και άλλα και με τα δύο. Εμείς, όπως έχει ήδη ειπωθεί, επιλέξαμε τη λύση των αποθηκών δεδομένων μιας και είναι οι πλέον κατάλληλες για την αποθήκευση ιστορικών δεδομένων με τρόπο που να υποβοηθά τους υπολογισμούς και τις λειτουργίες στα δεδομένα που επιθυμεί να εκτελέσει μια εφαρμογή οπτικοποίησης. Η επιλογή των απλών αρχείων, αν και είναι μια πολύ απλή λύση και προσιτή στους περισσότερους χρήστες, απορρίφθηκε εξ αρχής για πάρα πολλούς λόγους. Καταρχάς δεν έχει υλοποιημένους μηχανισμούς για εκτέλεση επερωτήσεων στα δεδομένα, σε αντίθεση με μια βάση δεδομένων. Η δυνατότητα δημιουργίας επερωτήσεων είναι κρίσιμη για την αποδοτική λειτουργία ενός διαδικτυακού εργαλείου όπως το δικό μας. Πέρα από τα παραπάνω, η χρήση βάσεων δεδομένων συντελεί και στην επεκτασιμότητα του εργαλείου καθώς και στο να παρθούν μέτρα για την βελτίωση της απόδοσής του αν χρειαστεί, αφού διευκολύνει τον προϋπολογισμό και προαποθήκευση υποσυνόλων δεδομένων που μπορεί να ζητηθούν από την αναπαράσταση. Η επιλογή του ειδικού τύπου των αποθηκών δεδομένων έγινε έχοντας κατά νου το είδος των δεδομένων προς αναπαράσταση, τα οποία θεωρούμε ότι θα είναι κατά κύριο λόγο αριθμητικές μετρήσεις, στις οποίες δεν θα γίνονται συχνά προσθήκες ή διαγραφές. Μια παραδοχή της εφαρμογής μας είναι ότι δεν γνωρίζει τίποτα συγκεκριμένο για τα δεδομένα παρά μόνο ότι είναι αποθηκευμένα σε μια αποθήκη δεδομένων. Επίσης, δεν μπορεί να υποθέσει τίποτα για το σχήμα της αποθήκης (για παράδειγμα δεν μπορεί να θεωρήσει ότι έχει συγκεκριμένο αριθμό διαστάσεων ή μετρήσεων) όμως ξέρει ότι το σχήμα της είναι της μορφής νιφάδας ή αστεριού. Το αν θα λειτουργεί η εφαρμογή μόνο με αποθήκες σχήματος αστέρι ή αν θα υποστηρίζει και το σχήμα νιφάδα ήταν ένα θέμα που μας απασχόλησε αρκετά. Το σκεπτικό ήταν ότι το σχήμα αστέρι είναι αρκετά απλό και εύκολα υλοποιήσιμο από κάποιον μη ειδικό, συνεπώς, θα αποφεύγαμε τυχόν μπέρδεμα του χρήστη αν εμμέναμε σε αυτό το μοντέλο μόνο. Πέρα από την απλότητά του, το σχήμα αστέρι έχει και το θετικό ότι επιταχύνει την εκτέλεση των επερωτήσεων, στη συνήθη περίπτωση που το μέγεθος των πινάκων δεν είναι εξαιρετικά μεγάλο, γιατί μειώνει τον αριθμό των απαιτούμενων συνενώσεων (joins) [21]. Επίσης ένα από τα πιο σημαντικά Δ. Χαριδάκου Κεραμιίδα 51

πλεονεκτήματα του σχήματος νιφάδα, το ότι δηλαδή απαιτεί λιγότερο χώρο για την αποθήκευση των δεδομένων μιας και είναι σε πιο κανονικοποιημένη μορφή απ ότι το σχήμα αστέρι, δεν το θεωρούσαμε αρκετό για την εισαγωγή της επιπλέον πολυπλοκότητας και για τον χρήστη και για το σύστημα. Παρόλα αυτά, τελικά αποφασίσαμε υπέρ του σχήματος νιφάδας, για το λόγο ότι μπορεί να εκφράσει πολύ πιο περίπλοκες σχέσεις που δεν υπάρχει τρόπος να αναπαρασταθούν σε ένα σχήμα αστέρι. Συγκεκριμένα η σχέση πολλά-με-πολλά (manyto-many) μιας διάστασης με μια ιδιότητά της δεν μπορεί να αναπαρασταθεί σε σχήμα αστέρι. Για παράδειγμα, αν μια διάσταση της βάσης μας ήταν οι Χώρες, και μια ιδιότητά τους η ομάδα χωρών στην οποία ανήκουν, στην περίπτωση σχήματος αστεριού δεν υπάρχει τρόπος να αναπαρασταθεί το γεγονός ότι η Ελλάδα ανήκει στις μεσογειακές χώρες αλλά και χώρες των Βαλκανίων και στις χώρες της νότιας Ευρώπης. Αντιθέτως με μικρές προσαρμογές, το σχήμα νιφάδα θα μπορούσε να αναπαραστήσει κάτι τέτοιο. 5.3.2 Αρχιτεκτονική εφαρμογής Ο τρόπος που επιλέξαμε να οργανώσουμε την εφαρμογή μας είναι σε τρία επίπεδα. Το πρώτο επίπεδο είναι υπεύθυνο για την επικοινωνία με το μέσο αποθήκευσης των δεδομένων, στην περίπτωσή μας την αποθήκη δεδομένων. Εκτελεί όλες τις λειτουργίες διαβάσματος και γραψίματος δεδομένων στη βάση, καθώς και αλλαγές στο σχήμα της βάσης, ελέγχους κα. Το δεύτερο επίπεδο είναι ο συνδετικός κρίκος μεταξύ της διεπαφής του χρήστη και του επιπέδου λειτουργιών δεδομένων. Ουσιαστικά ευθύνη του είναι να μεταβιβάζει αιτήσεις από τους χρήστες ή το σύστημα της διεπαφής του χρήστη στο πρώτο επίπεδο το οποίο τις εκτελεί, και στη συνέχεια να επιστρέφει στη διεπαφή την αντίστοιχη απάντηση. Το τρίτο επίπεδο είναι η διεπαφή του χρήστη και όλες οι λειτουργίες που υποστηρίζει, κάποιες απαραίτητες για το στήσιμο της διεπαφής και κάποιες για τη διάδραση του χρήστη. Ο τρόπος αυτός οργάνωσης, μας επιτρέπει πολύ εύκολα να υλοποιήσουμε επεκτάσεις του εργαλείου. Για παράδειγμα αν αποφασιστεί στο μέλλον ότι χρειαζόμαστε νέα επιλογή για τον τρόπο αποθήκευσης των δεδομένων, αρκεί να υλοποιηθεί μια καινούργια εκδοχή του πρώτου επιπέδου η οποία να εκτελεί, με τον δικό της διαφορετικό τρόπο, τις ίδιες λειτουργίες με το υπάρχον επίπεδο. Έτσι, απλά ρυθμίζοντας το δεύτερο επίπεδο να συνομιλεί με το νέο επίπεδο δεδομένων, χωρίς καμία άλλη αλλαγή στον κώδικα των υπόλοιπων επιπέδων, το σύστημα μπορεί να υποστηρίξει τον νέο τρόπο αποθήκευσης δεδομένων. Δ. Χαριδάκου Κεραμιίδα 52

Θεωρούμε ότι υπάρχει ένας διαχειριστής των δεδομένων, ο οποίος φροντίζει για την αποθήκευσή τους σε μια βάση, με το κατάλληλο σχήμα, και για την παροχή των κατάλληλων παραμετροποιήσεων που είναι απαραίτητες για την ορθή λειτουργία της εφαρμογής. Εικόνα 16: Αρχιτεκτονική συστήματος 5.3.3 Απαιτήσεις συστήματος Η εφαρμογή σχεδιάστηκε έτσι ώστε να μη χρειάζεται εγκατάσταση σε κάποιον υπολογιστή, αλλά να μπορεί να προσπελαστεί από οπουδήποτε. Το τρίτο επίπεδο, αυτό της διεπαφής του χρήστη, εκτελείται σε ένα οποιοδήποτε πρόγραμμα φυλλομετρητή (browser) από οποιονδήποτε υπολογιστή αρκεί να έχει πρόσβαση στο διαδίκτυο. Όμως, το πρώτο και το δεύτερο επίπεδο εκτελούνται σε έναν υπολογιστή που λειτουργεί ως εξυπηρετητής (server). Ο υπολογιστής αυτός μπορεί να είναι ο ίδιος με τον υπολογιστή στον οποίο προσπελαύνεται η διεπαφή του χρήστη, εμείς όμως για τη συνέχεια θα τους θεωρήσουμε διαφορετικούς. Συνεπώς ο υπολογιστής-server πρέπει να διαθέτει τα παρακάτω: Εγκαταστημένη την php, έκδοση 5 ή παραπάνω, Δ. Χαριδάκου Κεραμιίδα 53

Εγκατεστημένη την sqlite, έκδοση 3 ή παραπάνω, ή την mysql, ή την postgres SQL, Αποθηκευμένα σε κάποιον φάκελο προσπελάσιμο από το διαδίκτυο τα αρχεία της εφαρμογής μας. Όσων αφορά τον υπολογιστή-browser, όπως ειπώθηκε παραπάνω, θα πρέπει απλά να διαθέτει εγκατεστημένο κάποιο πρόγραμμα φυλλομετρητή, με ενεργοποιημένη τη γλώσσα javascript και υποστήριξη για css3. Δοκιμές που έγιναν, έδειξαν ότι η εφαρμογή λειτουργεί χωρίς προβλήματα σε όλους τους γνωστούς φυλλομετρητές (firefox, chrome, opera, safari, internet explorer). 5.3.4 Τεχνολογίες που χρησιμοποιήθηκαν Στη συνέχεια ακολουθεί μια λίστα με τα τεχνολογικά εργαλεία που χρησιμοποιήθηκαν για την υλοποίηση της εφαρμογής αυτής. Apache web server 5 : το λογισμικό αυτό είναι αυτό που είναι υπεύθυνο για τη μετατροπή του υπολογιστή στον οποίο υλοποιήθηκαν τα επίπεδα 1 και 2 σε server. Ο Apache θεωρείται ότι έχει παίξει καίριο ρόλο στη διάδοση του παγκόσμιου ιστού και έχει εξελιχθεί να κυριαρχήσει σε άλλους web servers όσον αφορά τη λειτουργικότητά του και την απόδοσή του. Php 6 : Η php είναι μια ευρέως χρησιμοποιούμενη, γενικού σκοπού, αντικειμενοστραφής γλώσσα προγραμματισμού, κατάλληλη για την ανάπτυξη εφαρμογών διαδικτύου. Xml 7 : Η xml είναι μια γλώσσα σήμανσης (markup language) που ορίζει ένα σύνολο κανόνων για την κωδικοποίηση εγγράφων σε μορφή που είναι αναγνώσιμη τόσο από τους ανθρώπους όσο και από τους υπολογιστές. Json 8 : Το json (Javascript Object Notation) ένα format ανταλλαγής δεδομένων, εύκολα κατανοητό και από τους ανθρώπους και από τους υπολογιστές. Βασίζεται σε ένα υποσύνολο της γλώσσας javascript αλλά είναι ανεξάρτητο της γλώσσας προγραμματισμού. 5 http://httpd.apache.org/ 6 http://php.net/ 7 http://www.w3.org/xml/ 8 http://www.json.org/ Δ. Χαριδάκου Κεραμιίδα 54

Html 9 : Η html είναι η κύρια markup γλώσσα για τη δημιουργία ιστοσελίδων και άλλων δεδομένων που μπορούν να εμφανιστούν με έναν φυλλομετρητή. Css 10 : Το css είναι μια style sheet γλώσσα που χρησιμοποιείται για τη περιγραφή της παρουσίασης (εμφάνισης και τοποθεσίας) ενός αρχείου γραμμένου σε μια markup γλώσσα. Η πιο συνηθισμένη εφαρμογή του είναι για τον καθορισμό του στυλ html σελίδων. Javascript: Η javascript είναι η πιο δημοφιλής γλώσσα προγραμματισμού. Η ιδιαιτερότητά της είναι ότι ουσιαστικά είναι κομμάτια κώδικα που ενσωματώνονται σε σελίδες html, κάνοντάς τες δυναμικές. jquery 11 : Η jquery είναι μια JavaScript βιβλιοθήκη, σχεδιασμένη για να απλοποιεί διάφορες λειτουργίες της javascript. Ajax: Το ajax (σύντμηση των λέξεων asynchronous json and xml) είναι μια ομάδα αλληλένδετων τεχνικών ανάπτυξης ιστοσελίδων που χρησιμοποιείται για τη δημιουργία ασύγχρονων διαδικτυακών εφαρμογών. Με το ajax οι διαδικτυακές εφαρμογές μπορούν να στέλνουν και να λαμβάνουν δεδομένα από έναν server ασύγχρονα, χωρίς να επηρεάζεται η εμφάνιση και η συμπεριφορά της ιστοσελίδας. Sqlite 12 /Mysql 13 /Postgres SQL 14 : Όσον αφορά το σύστημα διαχείρισης βάσεων δεδομένων που μπορεί να υποστηρίξει η εφαρμογή, υπάρχουν τρεις εναλλακτικές: sqlite, mysql, και postgres. Πρόκειται για τα τρία πιο διαδεδομένα συστήματα διαχείρισης βάσεων δεδομένων με βάση την sql. Ηighcharts 15 /Google Charts 16 : Τα highcharts και τα google charts είναι δύο πολύ πλούσιες βιβλιοθήκες διαδραστικών διαγραμμάτων, για τη γλώσσα javascript. Παρέχουν μια πληθώρα διαγραμμάτων και είναι δωρεάν για χρήση από μη κερδοσκοπικές εφαρμογές. Tα highcharts χρησιμοποιήθηκαν στην υλοποίηση 9 http://www.w3.org/html/ 10 www.w3.org/style/css/ 11 http://jquery.com/ 12 http://www.sqlite.org/ 13 http://www.mysql.com/ 14 http://www.postgresql.org/ 15 http://www.highcharts.com/ 16 https://google-developers.appspot.com/chart/ Δ. Χαριδάκου Κεραμιίδα 55

γραφημάτων και τα google charts στην υλοποίηση του πίνακα και του χωροπληθικού χάρτη. 5.3.5 Είδη διαγραμμάτων και επιλογές Ένα θέμα που μας απασχόλησε αρκετά ήταν το ποιά είδη διαγραμμάτων θα χρησιμοποιεί η εφαρμογή μας. Δεδομένου ότι θεωρούμε ότι οι μετρήσεις που έχουμε είναι αριθμητικές και με βάση το γεγονός ότι δεν έχουμε εκ των προτέρων καμία άλλη πληροφορία για αυτές, αλλά ούτε και για το είδος των διαστάσεών τους, αποφασίσαμε σε πρώτη φάση να συμπεριλάβουμε γραφήματα, δηλαδή διαγράμματα με άξονες. Είναι σίγουρο ότι αυτού του είδους τα διαγράμματα μπορούν να οπτικοποιήσουν αριθμητικά δεδομένα χωρίς να προκύψει κάτι που δεν έχει νόημα σε αντίθεση με, για παράδειγμα, τα διάφορα είδη χαρτών στα οποία είναι απαραίτητο τα δεδομένα να έχουν εξάρτηση από κάποια γεωγραφική πληροφορία. Η λίστα με τα γραφήματα τα οποία υποστηρίζει μέχρι στιγμής η εφαρμογή μας είναι: διαγράμματα γραμμών, ιστογράμματα, διαγράμματα διασποράς, διαγράμματα φυσαλίδας, διαγράμματα περιοχών, και διαγράμματα πίτες. Επίσης, υπάρχει και η δυνατότητα εμφάνισης μιας επιλεγμένης μέτρησης σε χωροπληθή χάρτη. Εκτός των παραπάνω, η εφαρμογή μας υποστηρίζει και παρουσίαση των δεδομένων σε πίνακα. Τα γραφήματα στην εφαρμογή μας έχουν την ιδιότητα να μπορούν να έχουν πάνω από έναν άξονα ψ. Δώσαμε τη δυνατότητα αυτή γιατί θέλαμε να παρέχουμε στο χρήστη την επιλογή να οπτικοποιήσει στο ίδιο διάγραμμα πάνω από μια μέτρηση. Αυτό μπορεί να γίνει είτε στον ίδιο άξονα ψ αλλά σε περιπτώσεις που το εύρος τιμών των μετρήσεων διαφέρει, είναι προτιμότερη η χρήση διαφορετικού άξονα. Πέρα από τους άξονες χ και ψ, θεωρούμε ότι έχουμε και μια τρίτη διάσταση η οποία μπορεί να αναπαρασταθεί με το μέγεθος. Επίσης, δίνεται η δυνατότητα να οπτικοποιείται με χρώμα και μια τέταρτη διάσταση. 5.4 Λεπτομέρειες υλοποίησης των επιπέδων 5.4.1 Επίπεδο 1 Το πρώτο επίπεδο, όπως είπαμε είναι υπεύθυνο για την επικοινωνία με το μέσο αποθήκευσης των δεδομένων. Στην περίπτωσή μας αυτό είναι μια βάση δεδομένων. Επίσης, είναι το επίπεδο το οποίο χρησιμοποιεί ο διαχειριστής για τη ρύθμιση των παραμέτρων της βάσης, αλλά και για όλες τις λειτουργίες διαχείρισης που προσφέρει η Δ. Χαριδάκου Κεραμιίδα 56

εφαρμογή. Το επίπεδο έχει υλοποιηθεί σε php και ουσιαστικά αποτελείται από μια κλάση, τη MYDB. Η κλάση αυτή αναλαμβάνει να διαβάσει από το δίσκο το αρχείο με τις παραμετροποιήσεις του διαχειριστή και την περιγραφή του σχήματος της βάσης και να συνδεθεί με αυτή. Λειτουργίες επιπέδου Οι λειτουργίες που εκτελεί αυτό το επίπεδο έχουν να κάνουν σχεδόν αποκλειστικά με την αποθήκη των δεδομένων, το σχήμα της ή τα δεδομένα της. Οι λειτουργίες αυτές έχουν οργανωθεί σε 5 κατηγορίες: 1) Λειτουργίες για την αρχικοποίηση της κλάσης και την ενημέρωσή της για το σχήμα της αποθήκης δεδομένων. Κατά τη δημιουργία ενός στιγμιότυπου αυτής της κλάσης, το σχήμα της αποθήκης διαβάζεται και αποθηκεύεται τοπικά σε μια εύκολα προσπελάσιμη δομή δεδομένων. Έτσι μπορούν πολύ εύκολα να γίνουν έλεγχοι πάνω σε αυτό αλλά και να χτιστούν οι επερωτήσεις οι οποίες πρέπει να εφαρμοστούν στη βάση. 2) Λειτουργίες επερωτήσεων και ελέγχου σχετικά με το σχήμα της βάσης. Σε αυτή την κατηγορία ανήκουν όλες οι συναρτήσεις που εκτελούν ελέγχους πάνω στους πίνακες και τα πεδία της αποθήκης δεδομένων (πχ. υπάρχει στη βάση ο πίνακας με το δοθέν όνομα; ο πίνακας με το δοθέν όνομα είναι πίνακας μετρήσεων;) αλλά και ερωτήσεις σχετικά με αυτό (πχ. ποιοί είναι όλοι οι πίνακες μετρήσεων που υπάρχουν στη βάση; ποιές είναι οι μετρήσεις του συγκεκριμένου πίνακα μετρήσεων;) 3) Λειτουργίες ενημέρωσης του σχήματος της βάσης. Τέτοιες είναι η δημιουργία ολόκληρου του σχήματος της βάσης, η διαγραφή του, η προσθήκη ή διαγραφή πεδίων σε κάποιον πίνακα, η προσθήκη ή διαγραφή πίνακα, κα. 4) Λειτουργίες ενημέρωσης των δεδομένων της βάσης. Σε αυτήν την κατηγορία ανήκουν όλες εκείνες οι συναρτήσεις που εισάγουν δεδομένα σε κάποιον πίνακα της βάσης διαβάζοντας από ένα αρχείο με τιμές διαχωριζόμενες από κόμμα (csv). Επίσης πέρα από εισαγωγές υπάρχουν και συναρτήσεις που εκτελούν διαγραφές δεδομένων είτε ολόκληρου πίνακα είτε συγκεκριμένου πεδίου όποτε αυτό επιτρέπεται. 5) Στην τελευταία κατηγορία λειτουργιών ανήκουν εκείνες οι οποίες έχουν να κάνουν με διάβασμα δεδομένων από τη βάση. Στις αντίστοιχες συναρτήσεις δίνεται σαν παράμετρος μια σειρά από πίνακες, πεδία, και περιορισμούς και εκείνες είναι Δ. Χαριδάκου Κεραμιίδα 57

υπεύθυνες για το χτίσιμο της κατάλληλης επερώτησης που θα επιστρέψει το επιθυμητό σύνολο δεδομένων. Εκτός από τα καθαυτά δεδομένα της βάσης, μπορεί να ζητηθούν και στατιστικά δεδομένα για τα πεδία, όπως ο αριθμός των διαφορετικών τιμών που έχουν, το εύρος των τιμών τους και άλλα. Το επίπεδο αυτό δέχεται αιτήσεις από το επίπεδο 2 και επιστρέφει τις απαντήσεις σε αυτό. Δεν έχει επικοινωνία με κανένα άλλο τμήμα της εφαρμογής. Αποθήκη δεδομένων Στο σημείο αυτό πρέπει να αναφέρουμε ότι οι πίνακες στη βάση δεδομένων διακρίνονται σε δύο κατηγορίες. Η πρώτη είναι οι πίνακες της αποθήκης δεδομένων, δηλαδή οι πίνακες διαστάσεων και οι πίνακες μετρήσεων. Η περιγραφή αυτών των πινάκων βρίσκεται σε ένα αρχείο xml μαζί με τις παραμετροποιήσεις του χρήστη. Θα αναφερθούμε σε αυτές σε επόμενη ενότητα. Η δεύτερη κατηγορία πινάκων είναι οι προκαθορισμένοι πίνακες που κατέχουν τα μεταδεδομένα. Αυτοί οι πίνακες έχουν συγκεκριμένο σχήμα και συγκεκριμένο όνομα. Είναι οι: Πίνακας Defaults ο οποίος έχει μια εγγραφή για κάθε πίνακα μετρήσεων και πεδία τα εξής: Πίνακας 2: Πεδία πίνακα Defaults Όνομα Τύπος tablename varchar xaxis varchar yaxis varchar agg zaxis varchar varchar type varchar tableorder int Το πρωτεύον κλειδί του πίνακα αυτού είναι το πεδίο tableorder. Στον πίνακα αυτό ο διαχειριστής πρέπει να ορίσει για κάθε πίνακα μετρήσεων που υπάρχει στην αποθήκη Δ. Χαριδάκου Κεραμιίδα 58

δεδομένων του, τη σειρά του σε σχέση με τους άλλους πίνακες καθώς και ένα αρχικό διάγραμμα το οποίο θα εμφανίζεται κάθε φορά που ο χρήστης της εφαρμογής επιλέγει να οπτικοποιήσει αυτόν τον πίνακα. Θεωρούμε ότι αυτό το αρχικό διάγραμμα θα μπορεί να έχει μόνο έναν άξονα ψ. Το πεδίο type κωδικοποιεί τον τύπο του διαγράμματος (line, area, bar, κτλ). Προφανώς και στη συνέχεια ο χρήστης της οπτικοποίησης θα μπορεί να αλλάξει τα δεδομένα που οπτικοποιεί, να προσθέσει άξονες, να αλλάξει το είδος του διαγράμματος να προσθέσει φίλτρα και άλλα. Οι τιμές που παίρνουν τα πεδία xaxis, yaxis και zaxis είναι το όνομα του πεδίου μαζί με το πλήρες μονοπάτι των πινάκων της βάσης ξεκινώντας από το πεδίο του πίνακα μετρήσεων. Στην περίπτωση που το πεδίο είναι πεδίο που πίνακα μετρήσεων, το όνομά του αρκεί. Για παράδειγμα, έχοντας υπόψη την αποθήκη δεδομένων στο Σχήμα 11, αν ο διαχειριστής θέλει να ορίσει ως πεδίο του άξονα χ το πεδίο Year θα πρέπει να δώσει τιμή στο xaxis ίση με «Date-Month-Year» Πίνακας Metadata ο οποίος έχει μια εγγραφή για κάθε μέτρηση στην αποθήκη δεδομένων και πεδία τα εξής: Πίνακας 3: Πεδία πίνακα Metadata Όνομα Τύπος name varchar intable category varchar varchar source varchar sourceurl varchar definition unit varchar varchar Το πρωτεύον κλειδί του πίνακα αυτού είναι ο συνδυασμός των πεδίων name και intable, τα οποία είναι το όνομα της μέτρησης και το όνομα του πίνακα μετρήσεων στον οποίο βρίσκεται αντίστοιχα. Δ. Χαριδάκου Κεραμιίδα 59

Τα πεδία category, source, sourceurl, definition, και unit είναι χρήσιμες πληροφορίες για τις μετρήσεις. Μια παραδοχή που κάναμε για την απλούστευση του εργαλείου μας, είναι ότι τα πεδία που δείχνουν σε πίνακες διαστάσεων έχουν αναγκαστικά το ίδιο όνομα με τον αντίστοιχο πίνακα διαστάσεων. Μια άλλη παραδοχή είναι ότι κάθε πίνακας διαστάσεων θα έχει δύο σύνολα πεδίων ως πρωτεύον κλειδί. Το πρώτο σύνολο προφανώς αποτελείται από το πεδίο id το οποίο υπάρχει αναγκαστικά σε κάθε πίνακα διάστασης και είναι αυτό το πεδίο που την αντιπροσωπεύει στους πίνακες διαστάσεων. Το δεύτερο σύνολο πεδίων αποτελείται από οποιαδήποτε και οσαδήποτε από τα υπόλοιπα πεδία της διάστασης. Η ύπαρξη αυτού του επιπλέον κλειδιού είναι απαραίτητη για το λόγο ότι το πεδίο id είναι κρυφό από τα υπόλοιπα επίπεδα της εφαρμογής και κυρίως από το χρήστη της οπτικοποίησης. Δεν θα είχε νόημα όταν ο χρήστης ζητήσει ένα διάγραμμα για παράδειγμα του πληθυσμού ανά χώρα, αντί για το όνομα των χωρών να του εμφανίζονταν τα ids τους. Γι αυτό το λόγο, θεωρούμε ότι δεύτερο πρωτεύον κλειδί για τις χώρες είναι το όνομά τους, και συνεπώς εμφανίζουμε αυτό στην οπτικοποίηση. Διάβασμα δεδομένων από αρχεία Το επίπεδο αυτό είναι υπεύθυνο επίσης και για τη φόρτωση δεδομένων στη βάση. Βεβαίως μπορεί να λειτουργήσει και με μία έτοιμη αποθήκη δεδομένων, συνεπώς ο διαχειριστής της μπορεί να χρησιμοποιήσει τη διεπαφή που προσφέρει το σύστημα βάσεων δεδομένων, για την εισαγωγή τους σε αυτή. Παρόλα αυτά θεωρήσαμε πολύ χρήσιμο να παρέχουμε τη δυνατότητα στο χρήστη μέσω της δικής μας διεπαφής να διαχειρίζεται τα δεδομένα της βάσης, όχι μόνο εισαγωγές αλλά και διαγραφές και ενημερώσεις. Οι εισαγωγές συγκεκριμένα μπορούν να γίνουν με τη χρήση αρχείων csv. Τα αρχεία αυτά αποτελούνται από γραμμές με διάφορες τιμές χωρισμένες μεταξύ τους με το χαρακτήρα κόμμα (, ). Η πρώτη γραμμή των αρχείων πρέπει αναγκαστικά να είναι η λίστα με τα ονόματα των πεδίων στα οποία γίνεται η εισαγωγή. Στη περίπτωση των πινάκων μετρήσεων, τα αρχικά πεδία πρέπει να είναι τα δεύτερα πρωτεύοντα κλειδιά όλων των διαστάσεων του πίνακα (δεν περιμένουμε σαν τιμή για τις διαστάσεις ο χρήστης να δώσει κάποιο id), ακολουθούμενα από κάποιες ή όλες τις μετρήσεις του. Το πρόγραμμα διαβάζει μια-μια τις γραμμές του πίνακα και εισάγει τις αντίστοιχες τιμές στον κατάλληλο πίνακα στη βάση, αφού κάνει τους απαραίτητους ελέγχους. Δ. Χαριδάκου Κεραμιίδα 60

5.4.2 Επίπεδο 2 Το επίπεδο αυτό είναι ο συνδετικός κρίκος του πρώτου και τρίτου επιπέδου. Είναι υπεύθυνο για τη δρομολόγηση των αιτήσεων του τρίτου επιπέδου στο πρώτο και αντίστοιχα την αποστολή στην κατάλληλη μορφή των απαντήσεων του πρώτου επιπέδου στο τρίτο. Αποτελείται από δύο σχετικά απλές κλάσεις: την ajaxrouter και την controller. Και οι δύο αυτές κλάσεις έχουν υλοποιηθεί σε php. ajaxrouter Η ajaxrouter είναι όπως λέει το όνομά της ο δρομολογητής των αιτήσεων ajax από το επίπεδο 3 στον controller ο οποίος και τις εκτελεί. Η μόνη του ευθύνη είναι να διαβάζει μια συγκεκριμένη παράμετρο που έχει θέσει το επίπεδο 3 και αναλόγως την τιμή της να καλεί την κατάλληλη συνάρτηση του controller. Μπορούμε να θεωρήσουμε ότι η κλάση ajaxrouter είναι το δεύτερο και ανώτερο υποεπίπεδο του επιπέδου 2, μιας και δεν έχει καμία επικοινωνία με το επίπεδο 1. controller Με τη σειρά του η κλάση controller καλείται από την ajaxrouter ή κατευθείαν από το επίπεδο 3, να εκτελέσει την κατάλληλη λειτουργία. Η δουλειά του είναι να διαβάζει όλες τις τιμές των παραμέτρων που έστειλε το επίπεδο 3, να τις ελέγχει, και αναλόγως τις τιμές τους, να καλεί τις κατάλληλες συναρτήσεις τις κλάσης MYDB του επιπέδου 1 ή να επιστρέφει μήνυμα λάθους αν διαπιστώσει ότι κάτι στις παραμέτρους δεν είναι σωστό. Όταν έχει λάβει αίτηση από τον ajaxrouter, μετατρέπει την απάντηση που έλαβε από το επίπεδο 1 σε μορφή json και την εκτυπώνει έτσι ώστε να τη λάβει το επίπεδο 3. 5.4.3 Επίπεδο 3 Το επίπεδο 3 είναι το επίπεδο της διεπαφής του χρήστη της οπτικοποίησης. Είναι το μόνο επίπεδο που δεν εκτελείται στον υπολογιστή-server κι αυτό γιατί θέλαμε να είναι προσπελάσιμο από οποιονδήποτε υπολογιστή, αρκεί να έχει πρόσβαση στο διαδίκτυο, και χωρίς να χρειάζεται την εγκατάσταση κάποιου προγράμματος, εκτός κάποιου browser. Το επίπεδο αυτό έχει υλοποιηθεί κατά κύριο λόγο με javascript και τη βιβλιοθήκη jquery και προφανώς με html. Για τη ρύθμιση της εμφάνισης αλλά και ορισμένων σημείων της συμπεριφοράς της διεπαφής χρησιμοποιήθηκε css3. Τα κυρίως αρχεία από τα οποία αποτελείται αυτό το επίπεδο είναι το visualization.html το renderer.js, το styles.css, το chart.php, το map.php, και το table.php. Δ. Χαριδάκου Κεραμιίδα 61

visualization.html Το αρχείο αυτό περιέχει τον κορμό της ιστοσελίδας της διεπαφής μας. Εξαιτίας του ότι το μεγαλύτερο μέρος του περιεχόμενου της σελίδας εξαρτάται κάθε φορά από το ποιά αποθήκη δεδομένων διαβάζει η εφαρμογή μας, το σταθερό τμήμα της είναι σχετικά μικρό. Το αρχείο αυτό κάνει το αρχικό στήσιμο της σελίδας, οριοθετώντας την οθόνη και τοποθετώντας τις επικεφαλίδες. Το περιεχόμενο κάθε τμήματος της οθόνης όμως συμπληρώνεται δυναμικά από συναρτήσεις javascript του αρχείου renderer.js. style.css Το αρχείο αυτό περιέχει κανόνες για την εμφάνιση και τοποθέτηση των διάφορων στοιχείων στην οθόνη. Επίσης ορίζει κανόνες για τη συμπεριφορά πολλών από αυτά τα στοιχεία σε περίπτωση διάφορων γεγονότων, όπως όταν ο χρήστης κάνει κλικ πάνω τους ή όταν περνάει το ποντίκι από πάνω τους. renderer.js Το αρχείο αυτό περιέχει το μεγαλύτερο μέρος της λειτουργικότητας αυτού του επιπέδου. Υλοποιεί ένα javascript αντικείμενο, το οποίο μέσω κλήσεων ajax συνομιλεί με το επίπεδο 2 στέλνοντας αιτήσεις και λαμβάνοντας τις αντίστοιχες απαντήσεις. Με την αρχική φόρτωση της html σελίδας, γίνεται κλήση σε μια από τις συναρτήσεις της javascript η οποία στέλνει μια αίτηση ajax στον ajaxrouter με σκοπό να πληροφορηθεί για το πλήρες σχήμα της αποθήκης δεδομένων. Όταν λάβει την απάντηση, δημιουργεί δυναμικά όλα τα απαραίτητα html στοιχεία και τα εισάγει στην ιστοσελίδα. Έτσι ο χρήστης αναλόγως του ποιά αποθήκη δεδομένων είναι συνδεδεμένη με την εφαρμογή, βλέπει στην οθόνη τα ονόματα των πινάκων μετρήσεων της αποθήκης, με τη σειρά που είναι ορισμένα στον πίνακα Defaults, και τρέχον τον πίνακα με τον μικρότερο αύξοντα αριθμό, τη λίστα των διαστάσεων του τρέχοντα πίνακα, με όλη την ιεραρχία τους, τη λίστα των μετρήσεών του, καθώς και το αρχικό διάγραμμα που έχει οριστεί γι αυτόν τον πίνακα στο Defaults. Αν ο χρήστης επιλέξει άλλο πίνακα μετρήσεων, οι λίστες αυτές και το διάγραμμα, ενημερώνονται κατάλληλα. chart.php Το αρχείο αυτό είναι υπεύθυνο για τη δημιουργία των γραφημάτων με άξονες. Χρησιμοποιεί όπως προείπαμε τη βιβλιοθήκη highcharts για την υλοποίησή τους. Ανάλογα με τις παραμέτρους που συμπεριλαμβάνονται στη διεύθυνση url καλείται η κατάλληλη μέθοδος του controller, ο οποίος επιστρέφει τα δεδομένα στη μορφή που απαιτεί η βιβλιοθήκη των διαγραμμάτων. Στη συνέχεια δημιουργείται με τα δεδομένα αυτά το διάγραμμα. Δ. Χαριδάκου Κεραμιίδα 62

map.php Αντίστοιχα με το αρχείο chart.php, το αρχείο map.php μετατρέπει τα δεδομένα που δέχεται από τον controller σε χωροπληθικό χάρτη με τη βοήθεια της βιβλιοθήκης google charts. table.php Το αρχείο αυτό, παρουσιάζει τα δεδομένα σε πίνακα google. Όπως φαίνεται, για την εισαγωγή νέου τύπου διαγράμματος, ή νέας βιβλιοθήκης για ήδη υπάρχον τύπο διαγράμματος, αρκεί τις περισσότερες φορές η προσθήκη ενός νέου αρχείου το οποίο μετατρέπει τα δεδομένα από τον controller στη μορφή που απαιτεί η βιβλιοθήκη και ο τύπος του διαγράμματος. Θα χρειαστεί επίσης να ενημερωθεί για την ύπαρξη αυτού του νέου αρχείου και ο renderer. 5.5 Παραμετροποιήσεις διαχειριστή Για τη σωστή λειτουργία και ρύθμιση του συστήματος ο διαχειριστής πρέπει να ορίσει κάποιες παραμετροποιήσεις: Το πιο σημαντικό αρχείο παραμετροποιήσεων είναι αυτό που περιέχει την περιγραφή του σχήματος της βάσης δεδομένων και πρέπει να είναι της μορφής xml. Εκεί πρέπει να υπάρχουν τα ονόματα όλων των πινάκων της βάσης, ο τύπος τους (πίνακας διάστασης ή πίνακας μέτρησης), τα πεδία από τα οποία αποτελείται, εξαιρουμένων των πεδίων ids, και για κάθε πεδίο ο τύπος του (ordinal ή nominal) και αν κανονικοποιείται σε κάποιον πίνακα διάστασης. Επίσης ο διαχειριστής πρέπει να δηλώσει τα στοιχεία της βάσης δεδομένων η οποία θα οπτικοποιηθεί δηλαδή, τον τύπο της (sqlite, mysql ή postgres) το όνομά της, το μηχάνημα στο οποίο βρίσκεται ή το όνομα του αρχείου στο οποίο είναι αποθηκευμένη, και όπου χρειάζεται ένα όνομα χρήστη και έναν κωδικό με τα οποία θα γίνει η σύνδεση. Μια άλλη επιλογή που προσφέρει η εφαρμογή είναι ο ορισμός θεμάτων για την εμφάνιση των διαγραμμάτων. Υπάρχουν ήδη τρία διαφορετικά θέματα, αλλά ο διαχειριστής, μπορεί να ορίσει και νέα. Αυτό γίνεται με την εισαγωγή στο αρχείο themes.js ενός νέου theme ως json αντικείμενο που αποτελείται από κανόνες css. Στη συνέχεια αναφερόμαστε σύντομα σε υπάρχοντα παραδείγματα εφαρμογών, τις βασικές ανάγκες των οποίων θα μπορούσε να καλύψει αυτή η διπλωματική, καθώς και στο πρώτο παράδειγμα χρήσης της εφαρμογής μας. Δ. Χαριδάκου Κεραμιίδα 63

5.6 Περιπτώσεις χρήσης (Use Cases) 5.6.1 European Cluster Observatory 17 To European Cluster Observatory (ECO) είναι μια πλατφόρμα για την προώθηση της γνώσης για την περιφερειακή ανταγωνιστικότητα και τις συστοιχίες υπολογιστών (clusters). Παρέχει ένα μοναδικό σημείο πρόσβασης σε πληροφορίες και αναλύσεις για τα clusters και την πολιτική όσων αφορά αυτά στην Ευρώπη. Παράγει αναλύσεις και εκθέσεις για περιφερειακή ανταγωνιστικότητα, τα διακρατικά δίκτυα clusters, τα clusters στις αναδυόμενες βιομηχανίες, και τις πρακτικές στους οργανισμούς για clusters. Ο σκοπός του είναι να ενημερώσει τους φορείς χάραξης πολιτικής, τους επαγγελματίες των clusters, και τους ερευνητές σε όλο τον κόσμο σχετικά με τα ευρωπαϊκά clusters, τις πολιτικές, και τις σχετικές πρωτοβουλίες. Το μεγαλύτερο μέρος των δεδομένων στο ECO είναι στατιστικά στοιχεία για διάφορους δείκτες που αφορούν τη γεωγραφική συγκέντρωση των διάφορων βιομηχανιών και των δεικτών των οικονομικών επιδόσεων, καθώς και στατιστικά σχετικά με την απασχόληση και την απόδοση. Για την οπτικοποίηση αυτών των δεδομένων το ECO χρησιμοποιεί μια πληθώρα μεθόδων όπως χάρτες, διάφορα διαγράμματα και πίνακες. Εικόνα 17: ECO: χάρτης 17 http://www.clusterobservatory.eu/ Δ. Χαριδάκου Κεραμιίδα 64

Εικόνα 18: ECO: διάγραμμα 5.6.2 Οργανισμός οικονομικής συνεργασίας και ανάπτυξης 18 Ο οργανισμός οικονομικής συνεργασίας και ανάπτυξης (Organization for Economic Cooperation and Development - OECD) είναι ένας διακυβερνητικός οργανισμός που συγκεντρώνει 30 κράτη-μέλη που μοιράζονται μια δέσμευση για τη δημοκρατική διακυβέρνηση και την οικονομία της αγοράς, με σκοπό να στηρίξουν τη βιώσιμη οικονομική ανάπτυξη, να ενισχύσουν την απασχόληση, να βελτιώσουν το βιοτικό επίπεδο, να διατηρήσουν τη χρηματοπιστωτική σταθερότητα, να βοηθήσουν την οικονομική ανάπτυξη άλλων χωρών, και να συμβάλουν στην ανάπτυξη του παγκόσμιου εμπορίου. Τα δεδομένα του OECD χωρίζονται σε σύνολα, δηλαδή συλλογές αριθμητικών τιμών οι οποίες μοιράζονται τις ίδιες διαστάσεις. Στις περισσότερες φορές οι διαστάσεις αυτές είναι η χώρα και ο χρόνος. Ο χρήστης όταν επιλέξει να δει κάποιο σύνολο δεδομένων, αρχικά βλέπει έναν πίνακα με τα δεδομένα αυτά, αλλά του παρέχεται η δυνατότητα οπτικοποίησής τους σε διαγράμματα γραμμών, ιστογράμματα και πίτες. Επίσης μπορεί να αλλάξει τα επιλεγμένα δεδομένα, να περιστρέψει τις διαστάσεις τους για να προκύψει διαφορετική οργάνωσή τους, να τα εξάγει και άλλα. 18 http://www.oecd.org/ Δ. Χαριδάκου Κεραμιίδα 65

Εικόνα 19: OECD - πίνακας Εικόνα 20: OECD διάγραμμα 5.6.3 European e-infrastructures Observatory 19 Το έργο enventory, όπως αναφέρθηκε και νωρίτερα αποτέλεσε την έμπνευση για τη δημιουργία της εφαρμογής μας. Ο στόχος του ήταν ο σχηματισμός ενός ηλεκτρονικού παρατηρητηρίου για τις ηλεκτρονικές υποδομές (e-infrastructures) στην Ευρώπη στο 19 http://www.enventory.eu/ Δ. Χαριδάκου Κεραμιίδα 66

οποίο θα παρουσιάζονται στοιχεία σχετικά με τα επιτεύγματα δικτύων, υπερυπολογιστών, και grids, με την δυνατότητα να είναι επεκτάσιμο και για άλλα νέα είδη υποδομών. Τα δεδομένα του enventory, είναι κυρίως αριθμητικοί δείκτες που εξαρτώνται από τη χώρα και τη χρονιά, αλλά και άλλα όπως η σύνδεση χωρών μέσω δικτύων, οι διάφοροι οργανισμοί υποδομών και ερευνητικά κέντρα στις χώρες της Ευρώπης, και άλλα. Για την οπτικοποίηση αυτών των δεικτών, το enventory χρησιμοποίησε κατά κύριο λόγο το εργαλείο Statplanet. Επίσης, υλοποίησε και άλλα διαφορετικά είδη οπτικοποίησης όπως, χάρτη κουκίδων, χάρτη συνδέσεων, treemap και άλλα. Εικόνα 21: enventory χωροπληθής χάρτης και διάγραμμα Δ. Χαριδάκου Κεραμιίδα 67

Εικόνα 22: enventory χάρτης κουκίδων 5.6.4 OpenAIREplus Η εφαρμογή που αναπτύχθηκε στα πλαίσια αυτής της διπλωματικής, χρησιμοποιήθηκε στα πλαίσια του έργου OpenAIREplus. Το έργο OpenAIREplus, συνέχεια του έργου OpenAIRE στοχεύει στην προώθηση της ανοιχτής πρόσβασης σε ερευνητικά δεδομένα στην Ευρώπη, με τη δημιουργία μιας υποδομής για αποθήκευση, αναζήτηση και παρουσίαση μεταδεδομένων επιστημονικών άρθρων, συνόλων δεδομένων, έργων και αποθετηρίων στις χώρες της ευρωπαϊκής ένωσης. Το γεγονός ότι το πλήθος των δεδομένων που κατέχει το OpenAIREplus 20 είναι αρκετά μεγάλο, προσφέρει την ευκαιρία για παραγωγή πολύ ενδιαφερόντων στατιστικών στοιχείων για την έρευνα και τα αποτελέσματά της στις χώρες της Ευρώπης. Για αυτόν το σκοπό χρησιμοποιήθηκε το εργαλείο αυτής της διπλωματικής. Στη συνέχεια παρατίθενται ορισμένες εικόνες του εργαλείου. 20 https://www.openaire.eu/ Δ. Χαριδάκου Κεραμιίδα 68

Εικόνα 23: Διάγραμμα με φίλτρο και δοθέν τίτλο Δ. Χαριδάκου Κεραμιίδα 69

Εικόνα 24: Διάγραμμα με δύο άξονες ψ και πολλαπλά φίλτρα Δ. Χαριδάκου Κεραμιίδα 70

Εικόνα 25: Χωροπληθής χάρτης Δ. Χαριδάκου Κεραμιίδα 71

Εικόνα 26: Πίνακας Δ. Χαριδάκου Κεραμιίδα 72