ΘΕΜΑΤΑ ΔΙΠΛΩΜΑΤΙΚΩΝ ΕΡΓΑΣΙΩΝ ΓΙΑ ΤΟ ΑΚ. ΕΤΟΣ 2013-2014 Π. ΒΑΣΙΛΕΙΑΔΗΣ http://www.cs.uoi.gr/~pvassil/courses/diplomatikes ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ 1. Μελέτη της Εξέλιξης Βάσεων Δεδομένων... 2 1.1. Εξόρυξη Προτύπων από τη Χρονογραμμή της Εξέλιξης Σχημάτων Βάσεων Δεδομένων... 4 1.2. Εξόρυξη Προτύπων από τον Παλμο των Αλλαγων της Εξέλιξης Σχημάτων Βάσεων Δεδομένων... 5 D:\Users\pvassil\COURSES\DIPLOMATIKES\OLD\2013-2014\2013-2014_DiplomaTopics_PV.docx 1
1. ΜΕΛΕΤΗ ΤΗΣ ΕΞΕΛΙΞΗΣ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ Μια βάση δεδομένων, από τη στιγμή που θα δημιουργηθεί, αλλάζει εσωτερική δομή με το πέρασμα του χρόνου: νέοι πίνακες δημιουργούνται, παλαιοί καταστρέφονται, πεδία διαγράφονται, μετονομάζονται κλπ. Η διαδικασία αυτή ονομάζεται «εξέλιξη του σχήματος της βάσης δεδομένων» (schema evolution). Το εργαλείο Hecate [ https://github.com/giskou/hecate ] μπορεί να συγκρίνει δύο σχήματα και να βρει τις διαφορές τους (κίτρινο: updated attributes, red: deletions, green: insertions). Επιπλέον, υπάρχουν αρκετές συλλογές από εκδόσεις του σχήματος της ιδίας βάσης (παρακάτω ένα screenshot από τη βάση της Wikimedia). H Εκάτη μπορεί να ταξινομήσει τις επί μέρους εκδοχές του σχήματος και να τις συγκρίνει διαδοχικά. D:\Users\pvassil\COURSES\DIPLOMATIKES\OLD\2013-2014\2013-2014_DiplomaTopics_PV.docx 2
Έχουμε ήδη χρησιμοποιήσει την Εκάτη για να επεξεργαστούμε την εξέλιξη σχήματος διαφόρων βάσεων δεδομένων ανοιχτού λογισμικού, όπως για παράδειγμα, της βάσης της Wikimedia (της βάσης δεδομένων πίσω από τη Wikipedia), της βάσης του Atlas Trigger (του εργαλείου που διαχειρίζεται τα δεδομένα από το πείραμα Atlas για την ανεύρεση του μποζονίου του Χιγκς), της Ensembl (του εργαλείου για τη διαχείριση των δεδομένων του ανθρώπινου γονιδιώματος) και πολλών CMS s (opencart, coppermine, phpbb, typo3, ). Έχουμε επίσης συλλέξει την ιστορία από πολλά συστήματα ανοιχτού κώδικα που περιλαμβάνουν βάσεις δεδομένων και καταγράφουν και τις εκδοχές τους σε δημόσια αποθετήρια (κυρίως github, αλλά και svn) αλλά δεν την έχουμε επεξεργαστεί ακόμα. 100 80 Relations 60 40 20 0 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 400 350 300 250 200 150 Table Insertions Attribute Insertions Attribute Insertions w/table Table Deletions Attribute Deletions Attribute Deletions w/table Table Alteration Attribute Key Alterations Attribute Type Alterations 100 50 0 1 20 39 58 77 96 115 134 153 172 191 210 229 248 267 286 305 324 343 362 381 400 419 438 457 476 495 514 Στο παραπάνω σχήμα βλέπετε (α) το πώς εξελίχθηκε το μέγεθος του σχήματος της βάσης στο χρόνο και (β) τον παλμό των αλλαγών (το πώς διαρθρώθηκαν οι αλλαγές σε κάθε monitored version) για τη βάση Ensembl. Η έρευνα στην περιοχή αυτή είναι θεμελιώδους φύσεως και αφορά στο να κατανοήσουμε την ύπαρξη προτύπων (ή ακόμα καλύτερα νόμων) για το πώς εξελίσσονται οι βάσεις δεδομένων με την πάροδο του χρόνου. D:\Users\pvassil\COURSES\DIPLOMATIKES\OLD\2013-2014\2013-2014_DiplomaTopics_PV.docx 3
1.1. ΕΞΟΡΥΞΗ ΠΡΟΤΥΠΩΝ ΑΠΟ ΤΗ ΧΡΟΝΟΓΡΑΜΜΗ ΤΗΣ ΕΞΕΛΙΞΗΣ ΣΧΗΜΑΤΩΝ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ ΠΕΡΙΛΗΨΗ: Ο σκοπός της παρούσας εργασίας είναι η ανεύρεση επαναλαμβανόμενων προτύπων από τη χρονογραμμή της εξέλιξης των σχημάτων ΣΥΝΤΟΜΗ ΠΕΡΙΓΡΑΦΗ: Ο πρώτος στόχος είναι να υλοποιηθούν αλγόριθμοι εξόρυξης προτύπων για να δούμε αν υπάρχουν πρότυπα συμπεριφοράς στη χρονογραμμή των σχημάτων. Τα πρότυπα θα αναζητηθούν με δύο τρόπους: (α) ανά dataset χωριστά, (β) σε όλα τα datasets, στις εξής κατηγορίες: - Βάση: μέγεθος σχήματος και ρυθμός ανάπτυξης - Πίνακας: μέγεθος πίνακα (αρ. πεδίων) Αν η απλή αναζήτηση δεν λειτουργήσει, θα δοκιμάσουμε να συμπτύξουμε το χρόνο (αντί να κοιτάμε τις αλλαγές για κάθε μία version, θα συμπτύξουμε πολλές versions μαζί με τρόπο που να είναι σημασιολογικά ευσταθής, πχ., versions που είναι πολύ κοντά στο χρόνο). Ο δεύτερος στόχος είναι να μπορούμε να ελέγξουμε, διαδραστικά αν ένα πρότυπο ισχύει. Επιπλέον απαιτήσεις: - Η υλοποίηση θα πρέπει να είναι γενική ώστε να δουλεύει με μια οποιαδήποτε timeline (καθώς στο μέλλον, μπορεί να χρειαστεί να αλλάξουμε τις χρονογραμμές). - Είναι επιθυμητό να υπάρχει API στην κεντρική μηχανή εξαγωγής προτύπων. - Αφού ανευρεθούν τα πρότυπα θα πρέπει (α) να οπτικοποιούνται και (β) να μπορούμε να δούμε όλες τις εμφανίσεις ενός pattern. Μπορείτε να βρείτε έτοιμο κώδικα και αλγόριθμο (αλλά όχι σε java) στο http://www.cs.unm.edu/~mueen/projects/moen/index.html ΕΠΙΠΕΔΟ: Διπλωματική εργασία (ατομική) ΠΛΑΤΦΟΡΜΑ ΕΡΓΑΣΙΑΣ: Java ΠΡΟΚΛΗΣΕΙΣ και ΟΦΕΛΗ: Η δυσκολία έγκειται στο κομμάτι της τεχνολογίας λογισμικού, ώστε να φτιαχτεί το λογισμικό ως μια μηχανή υψηλής ποιότητας. Τα οφέλη για ένα φοιτητή είναι: (α) τεχνογνωσία σε μια προχωρημένη περιοχή, αυτή της εξόρυξης πληροφορίας (data mining), η οποία όλο και αποκτά νέα δυναμική (όσο τα δεδομένα αυξάνονται), (β) τεχνογνωσία σε θέματα εξέλιξης του σχήματος βάσεων δεδομένων, και (γ) πρακτική εμπειρία σε θέματα υλοποίησης αλγορίθμων, API, GUI σε Java. Η εργασία είναι πλέον κατάλληλη για φοιτητές με ταλέντο στον προγραμματισμό και ενδιαφέροντα στις βάσεις δεδομένων, την εξόρυξη πληροφορίας και την τεχνολογία λογισμικού. D:\Users\pvassil\COURSES\DIPLOMATIKES\OLD\2013-2014\2013-2014_DiplomaTopics_PV.docx 4
1.2. ΕΞΟΡΥΞΗ ΠΡΟΤΥΠΩΝ ΑΠΟ ΤΟΝ ΠΑΛΜΟ ΤΩΝ ΑΛΛΑΓΩΝ ΤΗΣ ΕΞΕΛΙΞΗΣ ΣΧΗΜΑΤΩΝ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ ΠΕΡΙΛΗΨΗ: Ο σκοπός της παρούσας εργασίας είναι η ανεύρεση επαναλαμβανόμενων προτύπων από τον παλμό γεγονότων της εξέλιξης των σχημάτων ΣΥΝΤΟΜΗ ΠΕΡΙΓΡΑΦΗ: Σε κάθε μετάβαση από μια εκδοχή σε μια άλλη, υπάρχει ένα διάνυσμα από αλλαγές (πόσα πεδία προστέθηκαν, πόσα αφαιρέθηκαν, κλπ). Ο πρώτος στόχος είναι να υλοποιηθούν αλγόριθμοι εξόρυξης προτύπων τύπου συχνών στοιχειοσυνόλων για να δούμε αν υπάρχουν πρότυπα συμπεριφοράς στον παλμό γεγονότων των σχημάτων. Τα πρότυπα θα αναζητηθούν με δύο τρόπους: (α) ανά dataset χωριστά, (β) σε όλα τα datasets, στις εξής κατηγορίες: - Αμιγώς ποσοτικά (με κάθε μετάβαση να περιγράφεται ωε ένα διάνυσμα τιμών) - Ως ποσοστά επί του μεγέθους του σχήματος Αν η απλή αναζήτηση δεν λειτουργήσει, έχουμε 2 εναλλακτικές διαδρομές: (α) να εξετάσουμε τα είδη των αλλαγών χωριστά αντί για όλα μαζί και (β) να δοκιμάσουμε να συμπτύξουμε το χρόνο (αντί να κοιτάμε τις αλλαγές για κάθε μία version, θα συμπτύξουμε πολλές versions μαζί με τρόπο που να είναι σημασιολογικά ευσταθής, πχ., versions που είναι πολύ κοντά στο χρόνο). Επιπλέον απαιτήσεις: - Η υλοποίηση θα πρέπει να είναι γενική ώστε να δουλεύει με μια οποιαδήποτε heartbeat (καθώς στο μέλλον, μπορεί να χρειαστεί να αλλάξουμε τα event breakdown). - Είναι επιθυμητό να υπάρχει API στην κεντρική μηχανή εξαγωγής προτύπων. - Αφού ανευρεθούν τα πρότυπα θα πρέπει (α) να οπτικοποιούνται και (β) να μπορούμε να δούμε όλες τις εμφανίσεις ενός pattern. ΕΠΙΠΕΔΟ: Διπλωματική εργασία (ατομική) ΠΛΑΤΦΟΡΜΑ ΕΡΓΑΣΙΑΣ: Java ΠΡΟΚΛΗΣΕΙΣ και ΟΦΕΛΗ: Η δυσκολία έγκειται στο κομμάτι της τεχνολογίας λογισμικού, ώστε να φτιαχτεί το λογισμικό ως μια μηχανή υψηλής ποιότητας. Τα οφέλη για ένα φοιτητή είναι: (α) τεχνογνωσία σε μια προχωρημένη περιοχή, αυτή της εξόρυξης πληροφορίας (data mining), η οποία όλο και αποκτά νέα δυναμική (όσο τα δεδομένα αυξάνονται), (β) τεχνογνωσία σε θέματα εξέλιξης του σχήματος βάσεων δεδομένων, και (γ) πρακτική εμπειρία σε θέματα υλοποίησης αλγορίθμων, API, GUI σε Java. Η εργασία είναι πλέον κατάλληλη για φοιτητές με ταλέντο στον προγραμματισμό και ενδιαφέροντα στις βάσεις δεδομένων, την εξόρυξη πληροφορίας και την τεχνολογία λογισμικού. D:\Users\pvassil\COURSES\DIPLOMATIKES\OLD\2013-2014\2013-2014_DiplomaTopics_PV.docx 5