Ένα πλαίσιο για την ανάλυση του φόρτου εργασίας του SQL optimizer στο Σύστημ α Δ ιαχείρισης Βάσεων Δεδομ ένων MySQL.

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Ένα πλαίσιο για την ανάλυση του φόρτου εργασίας του SQL optimizer στο Σύστημ α Δ ιαχείρισης Βάσεων Δεδομ ένων MySQL."

Transcript

1 Πανεπιστήμ ιο Πειραιά Τμήμ α Πληροφορικής Ένα πλαίσιο για την ανάλυση του φόρτου εργασίας του SQL optimizer στο Σύστημ α Δ ιαχείρισης Βάσεων Δεδομ ένων MySQL Πτυχιακή Εργασία του Ιωάννη ( ΑΜ: Π 01053) Επιβλέπων καθηγητής: Θεοδωρίδης Ιωάννης Πειραιάς, Ιούνιος 2008

2 Πίνακας Περιεχομένων 1. Εισαγωγή Κίνητρο της μελέτης Στόχοι της μελέτης Δομ ή της μελέτης Υπόβαθρο μελέτης Συστήμ ατα διαχείρισης βάσεων δεδομένων SQL Τα benchmark στον χώρο των βάσεων δεδομένων Wisconsin benchmark AS3AP benchmark OSDB benchmark MySQL και γιατί χρησιμ οποιείται στην μελέτη Ο SQL optimizer Ο sql optimizer στην MySQL Σύνοψη Το πλαίσιο ανάλυσης φόρτου εργασίας του SQL optimizer Η δομ ή του framework Περιγραφή των τμημ άτων του benchmark MySQL server και code profiling Μετατροπές στον MySQL server Η αποθήκευση των πληροφοριών MySQL proxy benchmarking client Στατιστικά στοιχεία Χρήση όλων των στοιχείων μαζί Σύνοψη Χρήση του framework Σενάρια χρήσης Εγκατάσταση του framework Αποτελέσμ ατα χρήσης του benchmark Αξιολόγηση του framework Σύνοψη Συμπεράσμ ατα Περαιτέρω έρευνα Σύνοψη της έρευνας Περαιτέρω έρευνα Βιβλιογραφικές Αναφορές Γλωσσάρι Παράρτημ α Ι: τα SQL αιτήμ ατα του OSDB benchmark Δημ ιουργία της βάσης SQL αιτήμ ατα εκτός της δημ ιουργίας της βάσης δεδομένων...36 Πλαίσιο ανάλυσης του φόρτου εργασίας του SQL optimizer στο Σύστημ α Δ ιαχείρισης Βάσεων Δεδομ ένων MySQL 2

3 9. Παράρτημ α ΙΙ: MySQL server και profiling API Η βάση δεδομ ένων του profiling API Η συλλογή των αθροιστικών στατιστικών Παράρτημ α: Το script του MySQL proxy Παράρτημ α : MySQL server patches Σενάριο Β Σενάριο C Εκτέλεση του framework...64 Πλαίσιο ανάλυσης του φόρτου εργασίας του SQL optimizer στο Σύστημ α Δ ιαχείρισης Βάσεων Δεδομ ένων MySQL 3

4 1. Εισαγωγή Τα υπολογιστικά συστήμ ατα έχουν διεισδύσει πλέον στην καθημ ερινή ζωή και το πλήθος των δεδομ ένων που παράγουν είναι ολοένα και αυξανόμ ενο. Η διαχείριση του ολοένα αυξανόμ ενου όγκου δεδομ ένων, η οποία είναι ευθύνη των Συστημάτων Δ ιαχείρισης Βάσεων Δεδομ ένων, είναι ένα θέμ α το απασχολεί τον χώρο της πληροφορικής τόσο ερευνητικά όσο και επιχειρημ ατικά. Το αποτέλεσμ α είναι ένα μ εγάλο πλήθος από προγράμμ ατα διαχείρισης βάσεων δεδομ ένων και ποικίλη έρευνα η οποία έχει δημ ιουργήσει νέου κλάδους όπως η Εξόρυξη Γνώσης, τα Γεωγραφικά Συστήμ ατα Πληροφοριών και άλλα. Τα Σχεσιακά Συστήμ ατα Βάσεων Δεδομ ένων (RDBMS) είναι ο καθιερωμένος τρόπος, αυτήν την στιγμ ή, για την αποθήκευση μ εγάλου όγκου των δεδομ ένων. Υπάρχουν πολλοί παράγοντες που επηρεάζουν την απόδοση ενός RDBMS, κατά την ανάγνωση και την εγγραφή των δεδομ ένων. Η ύπαρξη αυτών των παραγόντων έχουν οδηγήσει στην αυτομ ατοποίηση της εύρεση του καλύτερου τρόπου μ ε τον οποίο μ πορεί το RDBMS να προσπελάσει τα δεδομ ένα. Ένα από τα πιο σημ αντικά τμήματα του RDBMS, το οποίο είναι υπεύθυνο για αυτήν την εύρεση του βέλτιστου τρόπου προσπέλασης των δεδομ ένων, είναι ο SQL optimizer. Αντικείμ ενο της παρούσης εργασίας είναι η μ ελέτη της λειτουργίας του SQL optimizer και πιο συγκεκριμ ένα μ ελετάται ο τρόπος μ ε τον οποίο μ πορεί να υλοποιηθεί ένα framework για την μ έτρηση του φόρτου εργασίας του SQL optimizer στο Σχεσιακό Σύστημ α Δ ιαχείρισης Βάσεων Δεδομ ένων (RDBMS) MySQL Κίνητρο της μελέτης Ο SQL optimizer ενός RDBMS είναι ένα νευραλγικό σημ είο του συστήμ ατος, στο οποίο οφείλεται σημ αντικό μ έρος της απόδοσης του συστήμ ατος. Η εύρεση ενός ικανοποιητικού ή ακόμ α καλύτερα βέλτιστου πλάνου εκτέλεσης ενός αιτήμ ατος, μ πορεί να ελαχιστοποιήσει την χρήση των πόρων του συστήμ ατος και να μειώσει δραμ ατικά τον χρόνο εκτέλεσής του. Η εύρεση των πιο χρονοβόρων τμημ άτων του SQL optimizer μ πορεί να βοηθήσει σημ αντικά την περαιτέρω ανάπτυξη του RDBMS συστήμ ατος. Το ανθρώπινο δυναμ ικό και η προσπάθεια που μ πορεί να συγκεντρωθεί στην περαιτέρω ανάπτυξη είναι πεπερασμ ένη και συγκεκριμ ένη κάθε φορά. Επομ ένως, όταν βελτιώνονται ήδη υπάρχοντα τμήμ ατα ενός προγράμμ ατος, είναι προτιμ ότερο να επικεντρώνεται η προσπάθεια στην βελτίωση των πιο προβλημ ατικών τμημ άτων ή των τμημ άτων τα οποία μ πορούν να προσφέρουν τα μ έγιστα στην βελτίωση της απόδοσης του προγράμμ ατος. Συμπερασμ ατικά, η ενασχόληση μ ε την απόδοση των τμημ άτων ενός SQL optimizer αγγίζει ένα σημ αντικό παράγοντα της υλοποίησης ενός RDBMS. Η εύρεση Πλαίσιο ανάλυσης του φόρτου εργασίας του SQL optimizer στο Σύστημ α Δ ιαχείρισης Βάσεων Δεδομ ένων MySQL 4

5 των τμημ άτων του SQL optimizer, των οποίων η βελτίωση μ πορεί να επιφέρει το μ εγαλύτερο όφελος στην ανάπτυξη είναι ένα σημ αντικό κίνητρο για την εκπόνηση της μ ελέτης αυτής Στόχοι της μελέτης Για τις ανάγκες της ανάλυσης υλοποιείται ένα framework ( πλαίσιο) το οποίο είναι υπεύθυνο για την ενεργοποίηση του SQL optimizer της MySQL και τη συλλογή δεδομ ένων κατά την εκτέλεσή του SQL optimizer. Το πλαίσιο αποτελείται από έναν client, ο οποίος στέλνει αιτήμ ατα στο RDBMS MySQL και μ ιας διαδικασίας, η οποία παρεμ βαίνει στην λειτουργία του RDBMS MySQL προκειμ ένου να συλλέξει και να τελικά να καταγράψει τα ζητούμ ενα μ εγέθη. Ο client πρέπει να είναι τέτοιος ώστε να παράγει ερωτήμ ατα που καταφέρνουν να ενεργοποιήσουν τον SQL optimizer και τα οποία χρίζουν βασικής βελτιστοποίησης. Για τον λόγο αυτό χρησιμ οποιούνται benchmark προορισμ ένα για βάσεις δεδομ ένων. Οι παρεμ βάσεις στην MySQL πρέπει να είναι σχεδιασμ ένες έτσι ώστε: να απαιτείται η ελάχιστη παρέμ βαση στον πηγαίο κώδικα της MySQL. να επιβαρύνεται η εκτέλεση της MySQL όσο το δυνατό λιγότερο. να υπάρχει επεκτασιμ ότητα και ευελιξία, όσον αφορά τα μ εγέθη τα οποία καταγράφονται και μ ετρούνται. να υπάρχει επεκτασιμ ότητα, όσον αφορά τον client/benchmark, ο οποίος χρησιμ οποιείται για την αποστολή αιτημ άτων στην MySQL. να μ ην απαιτούνται αλλαγές στο client/benchmark, το οποίο χρησιμ οποιείται, κάνοντας την διαδικασία της καταγραφής των δεδομ ένων διαφανή στο client/benchmark. Συμπερασμ ατικά, ο στόχος μ ας είναι η δημ ιουργία ενός framework για την ανάλυση του φόρτου εργασίας ( χρόνου εκτέλεσης) των τμημ άτων από τα οποία αποτελείται ο SQL optimizer της MySQL και η εύρεση των πιο χρονοβόρων από αυτά, λαμ βάνοντας υπόψιν τις παραπάνω προϋποθέσεις Δομ ή της μελέτης Στο κεφάλαιο 2 αναπτύσσονται θέμ ατα, που αφορούν το υπόβαθρο, το οποίο είναι απαραίτητο για την κατανόηση του περικειμ ένου του θέμ ατος που μ ας απασχολεί. Στο 3 ο κεφάλαιο περιγράφουμ ε την δομ ή και την υλοποίηση του πλαισίου της μ ελέτης. Στο 4 ο κεφάλαιο δίνεται ένα παράδειγμ α χρήσης του πλαισίου. Στο κεφάλαιο 5 αναφέρουμ ε συμπεράσμ ατα και περαιτέρω έρευνα που μ πορεί να εκκινήσει μ ε αφορμ ή την παρούσα μ ελέτη. Στο κεφάλαιο 6 δίνονται οι βιβλιογραφικές αναφορές και στο κεφάλαιο 7 ένα γλωσσάρι μ ε την αντιστοιχία ελληνικών και αγγλικών όρων που εμ φανίστηκαν στο κείμ ενο. Πλαίσιο ανάλυσης του φόρτου εργασίας του SQL optimizer στο Σύστημ α Δ ιαχείρισης Βάσεων Δεδομ ένων MySQL 5

6 2. Υπόβαθρο μελέτης Για τις ανάγκες της παρούσας ανάλυσης, υλοποιείται ένα framework το οποίο πραγμ ατοποιεί την συλλογή των δεδομ ένων, όσον αφορά τον φόρτο εργασίας του SQL optimizer στο RDBMS MySQL. Το framework αποτελείται από ένα client/benchmark το οποίο στέλνει αιτήμ ατα στο RDBMS MySQL και μιας διαδικασίας, η οποία παρεμ βαίνει στην λειτουργία του RDBMS MySQL προκειμένου να καταγράψει ορισμ ένα μ εγέθη. Στο παρόν εισαγωγικό κεφάλαιο παρουσιάζονται θέμ ατα, τα οποία είναι απαραίτητα για την κατανόηση του χώρου, στον οποίο ανήκει η μ ελέτη και το framework, των εργαλείων που εμ πλέκονται καθώς και των προκλήσεων που παρουσιάζονται. Η δομ ή του κεφαλαίου έχει ως εξής: στην ενότητα 2.1 παρουσιάζουμ ε τους λόγους ύπαρξης των συστημ άτων διαχείρισης βάσεων δεδομ ένων. Στην ενότητα 2.2 αναφερόμ αστε στα benchmark που αφορούν τον χώρο των βάσεων δεδομ ένων, και πως καταλήξαμ ε στην χρήση του OSDB benchmark για την παρούσα μ ελέτη. Στην ενότητα 2.3 παρουσιάζουμ ε το RDBMS MySQL, το οποίο είναι αντικείμ ενο της μ ελέτης, και τους λόγους για τους οποίου χρησιμ οποιείται στην μ ελέτη. Στην ενότητα 2.4 αναπτύσσουμ ε την ανάγκη για την ύπαρξη του SQL optimizer και το περίγραμμα της υλοποίησής του στην MySQL. Στην ενότητα 2.5 δίνεται η σύνοψη του κεφαλαίου Συστήμ ατα διαχείρισης βάσεων δεδομένων Ορισμ ένα από τα ζητήμ ατα που πρέπει να επιλυθούν κατά την διαχείριση μεγάλου όγκου δεδομ ένων εμ φανίζονται συχνά. Τέτοια ζητήμ ατα είναι (Ramakrishnan & Gehrke, 2002): η εγγραφή και η ανάγνωση των δεδομ ένων από και προς διαφορετικά μέσα αποθήκευσης: μ έσω δικτύου, τοπικά, σε ένα αρχείο, σε πολλά αρχεία, κατανεμημ ένα σε ένα υπολογιστικό σύστημ α, κατανεμημ ένα σε διαφορετικά υπολογιστικά συστήμ ατα (cluster) κτλ. η διαχείριση της μνήμ ης και η μ εταφορά των δεδομ ένων από το μ έσο όπου είναι αποθηκευμ ένα μόνιμ α. ο συγχρονισμ ός πολλών χρηστών και κλείδωμ α των δεδομ ένων έτσι ώστε να μην εμ φανιστούν ασυνέπειες στα δεδομ ένα από την εγγραφή και την ανάγνωση από διαφορετικούς χρήστες. ο έλεγχος της πρόσβασης στα δεδομ ένα ανάλογα μ ε τα δικαιώμ ατα κάθε χρήστη. Ακριβώς επειδή τα ζητήμ ατα αυτά εμ φανίζονται πολύ συχνά, δημιουργήθηκαν κάποια συστήμ ατα, τα οποία υλοποιούν εσωτερικά αυτές τις λειτουργίες και παρουσιάζουν στον χρήστη μ ια διεπαφή για την διαχείριση αυτών των ζητημ άτων. Τα συστήμ ατα αυτά ονομ άζονται Συστήμ ατα Δ ιαχείρισης Βάσεων Δεδομ ένων ή DBMS Πλαίσιο ανάλυσης του φόρτου εργασίας του SQL optimizer στο Σύστημ α Δ ιαχείρισης Βάσεων Δεδομ ένων MySQL 6

7 (DataBase Management System) και ουσιαστικά παρέχουν ένα επίπεδο αφαίρεσης πάνω από τα πραγμ ατικά δεδομ ένα και την διαχείρισή τους. Με αυτόν τον τρόπο, κρύβουν τις λεπτομ έρειες της υλοποίησης των ζητημ άτων αυτών και προσφέρουν στον τελικό χρήστη του DBMS μ ια απλούστερη εικόνα για την διαχείριση των δεδομ ένων. Το 1970 προτάθηκε ένα σχήμ α αναπαράστασης των δεδομ ένων το οποίο ονομ άζεται σχεσιακό μ οντέλο δεδομ ένων (Codd, 1970). Τα συστήμ ατα βάσεων δεδομ ένων τα οποία υλοποιούν αυτό το σχήμ α για την αναπαράσταση των δεδομένων ονομ άζονται Σχεσιακά Συστήμ ατα Δ ιαχείρισης Βάσεων Δεδομ ένων ή αλλιώς RDBMS (Relational DataBase Management System) SQL Η γλώσσα SQL έχει καθιερωθεί ως το προγραμμ ατιστικό πρότυπο, μ έσω του οποίου ο χρήστης διαχειρίζεται ένα RDBMS και τα δεδομ ένα τα οποία είναι αποθηκευμένα σε αυτό. Όπως αναφέρεται στα (Hare, 2006) και (Lans, 1989), το 1986 ολοκληρώθηκε το πρώτο standard το οποίο έγινε δεκτό από τα ινστιτούτο ANSI (American National Standards Institute) και τον οργανισμ ό ISO (International Standards Organization). Επεκτάσεις και αναθεωρήσεις εκδόθηκαν το 1989 και Στην συνέχεια η προσπάθεια της προτυποποίησης διαχωρίστηκε σε διαφορετικές ομ άδες, οι οποίες κατά καιρούς συγχώνευαν τις εργασίες που είχαν ολοκληρωθεί. Σημ αντικοί σταθμ οί είναι το πρότυπο SQL 92, το SQL:1999 και το SQL:2003 >>>( αυθεντικό reference) Τα benchmark στον χώρο των βάσεων δεδομένων Στον χώρο της πληροφορικής, το benchmark είναι η διαδικασία κατά την οποία εκτελούνται ένα ή περισσότερα προγράμμ ατα, μ ε σκοπό την μ έτρηση της απόδοσης ενός υπολογιστικού συστήμ ατος ή προγράμμ ατος. Χαρακτηριστικά παραδείγματα benchmark είναι η σύγκριση της απόδοσης μ εταξύ διαφορετικών επεξεργαστών, compiler, συστημ άτων βάσεων δεδομ ένων κτλ. (Gray, 1993). Ένα benchmark, βοηθά στην απάντηση ερωτημ άτων όπως: Ποιο υπολογιστικό σύστημ α ή τμήμ α ενός συστήμ ατος είναι το πιο συμ φέρον προς επένδυση. Ποιο μ έρος ενός συστήμ ατος δημ ιουργεί την μ εγαλύτερη συμ φόρηση. Αυτό το οποίο επιβάλλεται, είναι ο ορισμ ός των μ εγεθών πάνω στο οποίο θα μ ετρηθεί η απόδοση και ο ορισμ ός της διαδικασίας μ ε την οποία θα γίνει αυτό (Gray, 1993). Επίσης είναι σημ αντική η εξέταση του περιβάλλοντος στο οποίο βρίσκεται το υπό εξέταση υπολογιστικό σύστημ α ώστε να μ ελετηθούν παράγοντες οι οποίοι μπορούν να επηρεάσουν την μ έτρηση της απόδοσης (Patterson &Hennessy, 2005). Στην παρούσα ανάλυση το μ έγεθος το οποίο αποτελεί αντικείμ ενο έρευνας είναι ο χρόνος, ο οποίος δαπανάται συνολικά στην εκτέλεση του SQL optimizer, και ο χρόνος ο Πλαίσιο ανάλυσης του φόρτου εργασίας του SQL optimizer στο Σύστημ α Δ ιαχείρισης Βάσεων Δεδομ ένων MySQL 7

8 οποίος δαπανάται σε κάθε τμήμ α του. Ο χρόνος αυτός μ πορεί να επηρεαστεί από την απόδοση Ι/ Ο. Αυτή μ ε την σειρά της επηρεάζεται από hardware και software παράγοντες: αρχιτεκτονική του συστήμ ατος δοκιμ ής, ταχύτητα προσπέλασης δίσκου και μνήμ ης, άλλες I/O δραστηριότητες, ρυθμ ίσεις του λειτουργικού συστήμ ατος και άλλων υπο συστημ άτων που παίζουν ρόλο όπως συστημ άτων αρχείων, κτλ. Επίσης σημ αντικό ρόλο διαδραμ ατίζουν οι επιλογές κατά την διαδικασία της μεταγλώττισης του πηγαίου κώδικα του RDBMS, για την παραγωγή του εκτελέσιμ ου προγράμμ ατος, καθώς και οι ρυθμ ίσεις των παραμ έτρων του RDBMS κατά την εκτέλεσή του. Επομ ένως, τα αποτελέσμ ατα που θα εξαχθούν πρέπει να μ ελετηθούν λαμβάνοντας υπόψιν όλα αυτά τα θέμ ατα. Για να είναι εφικτό να εξαχθούν ασφαλή συμπεράσμ ατα, πρέπει να ληφθούν υπόψιν οι εξής παράγοντες που ενδέχεται να επηρεάσουν την απόδοση ενός συστήμ ατος: αρχιτεκτονική της μηχανής λειτουργικό σύστημα compilation της εφαρμογής caching σε διάφορα επίπεδα ( πυρήνας, σύστημ α αρχείων) σύστημ α αρχείων Η δοκιμ ή πολλών συνδυασμ ών αυτών των παραμ έτρων είναι ο μ όνος τρόπος για να επιβεβαιωθούν τα κοινά, σε όλες ή στις περισσότερες περιπτώσεις, χρονοβόρα τμήμ ατα. Η δοκιμ ή οφείλει να περιλαμ βάνει πολλές αρχιτεκτονικές, μηχανήμ ατα, πυρήνες, συστήμ ατα αρχείων, ρυθμ ίσεων στο compilation, ρυθμ ίσεις στο σύστημα αρχείων κτλ. Δ ίχως την δοκιμ ή πολλών συνδυασμ ών, τα δεδομ ένα τα οποία εξάγονται, δεν μ πορούν παρά να έχουν ενδεικτικό χαρακτήρα και να μ ην μ πορούν να χρησιμ οποιηθούν ως επιβεβαιωμ ένα Wisconsin benchmark Στις αρχές της δεκαετίας του 80 στο πανεπιστήμ ιο του Wisconsin αναπτύχθηκε μια ένα υπολογιστικό σύστημ α επιφορτισμ ένο μ ε την εκτέλεση συστημ άτων βάσεων δεδομ ένων το οποίο ονομ αζόταν DIRECT (Gray, 1993). Το 1983 δημ ιουργήθηκε το Wisconsin benchmark το οποίο αποσκοπούσε στην αξιολόγηση της μηχανής DIRECT, τόσο ως προς τον εαυτό της όσο και προς σχεσιακά συστήμ ατα βάσεων δεδομ ένων τα οποία έτρεχαν σε υπολογιστές γενικής χρήσης (Date, 2004). Λίγο μετά την δημ οσίευσή του, το benchmark αυτό έγινε δημ οφιλές επειδή ήταν το πρώτο benchmark στον χώρο των βάσεων δεδομ ένων το οποίο προσέφερε απλότητα και ταυτόχρονα αποτελέσμ ατα από διαφορετικά συστήμ ατα και αρχιτεκτονικές. Η αποδοχή του ήταν τέτοια ώστε για αρκετά χρόνια ήταν βιομ ηχανικό στάνταρ. Οι περιορισμ οί του αφορούσαν την έλλειψη επεκτασιμ ότητας και παραμ ετροποίησης, επειδή τόσο το μ έγεθος της βάσης δεδομ ένων όσο και το πλήθος των χρηστών ( ένας ) έμ εναν σταθερά και αμ ετάβλητα. Πλαίσιο ανάλυσης του φόρτου εργασίας του SQL optimizer στο Σύστημ α Δ ιαχείρισης Βάσεων Δεδομ ένων MySQL 8

9 AS3AP benchmark Αν και πετυχημ ένο, το Wisconsin benchmark παρουσίαζε ελλείψεις. Το κίνητρο για την δημ ιουργία του AS3AP (ANSI SQL Standard Scaleable and Portable) >>>( αυθεντικό reference) ήταν η δημ ιουργία ενός benchmark το οποίο θα κάλυπτε αυτές τις ελλείψεις, θα παρείχε την απλότητα του Wisconsin και θα πρόσφερε επιπλέον επεκτασιμ ότητα, συνάφεια και ευκολία στην διαχείριση (Gray, 1991). Πιο συγκεκριμ ένα οι στόχοι του AS3AP είναι: η παροχή ενός κατανοητού και εύκολου στην διαχείριση συνόλου από τεστ για την μ ελέτη της επεξεργαστικής ισχύος, όσον αφορά τις βάσεις δεδομ ένων. να είναι επεκτάσιμ ο και φορητό σε διαφορετικές αρχιτεκτονικές. να απαιτείται ελάχιστη ανθρώπινη παρέμ βαση στην υλοποίηση και την εκτέλεση. η παροχή ενός ομοιόμ ορφου μετρήσιμ ου μ εγέθους. Για ένα συγκεκριμ ένο RDBMS, το AS3AP ορίζει ως αποτέλεσμ α το μ έγεθος μιας βάσης δεδομ ένων. Το μ έγεθος αυτό είναι το μ έγιστο μ έγεθος της βάσης δεδομ ένων, για το οποίο το σύστημ α είναι εφικτό να εκτελέσει το AS3AP τεστ, για έναν και πολλούς χρήστες, σε χρονικό διάστημ α κάτω των 12 ωρών. Το μ έγεθος της βάσης δεδομ ένων είναι ένα απόλυτο μ έγεθος μ έτρησης της απόδοσης το οποίο μ ε την σειρά του μ πορεί να χρησιμ οποιηθεί για την παραγωγή και άλλων μ εγεθών. Το AS3AP χωρίζεται σε δύο τμήμ ατα: Το τεστ ενός χρήστη, τα οποία περιλαμ βάνουν: 1. εργαλεία για το φόρτωμ α και την κατασκευή της βάσης 2. αιτήμ ατα τα οποία είναι σχεδιασμ ένα να ελέγξουν τις μεθόδους πρόσβασης στα δεδομ ένα και βασικές SQL βελτιστοποιήσεις όπως : επιλογές, απλές συνδέσεις, προβολές, συναθροίσεις και τροποποιήσεις. Το τεστ πολλών χρηστών, τα οποία μ οντελοποιούν διαφορετικούς τύπους φόρτου της βάσης: 1. εργασίες άμ εσης επεξεργασίας συναλλαγών (OLTP) 2. εργασίες ανάκτησης πληροφοριών (information retrieval) 3. μ εικτές εργασίες που περιλαμ βάνουν σύντομ ες συναλλαγές, αιτήματα για την σύνταξη αναφορών (report queries), πλήρη σάρωση μιας σχέσης (relation scan) και μ εγάλες συναλλαγές OSDB benchmark Το OSDB benchmark (Open Source Database Benchmark) δημ ιουργήθηκε για μια μ ελέτη στην εταιρία Compaq Computer Corporation μ ε σκοπό την μ έτρηση της απόδοσης στην I/O διαπερατότητα και στη γενικότερη επεξεργαστική δύναμ η του συστήμ ατος GNU Linux/Alpha (OSDB, 2008). Για την υλοποίηση της μ ελέτης αποφασίστηκε να μ ην γίνει χρημ ατική επένδυση σε κάποιο ήδη υπάρχον εμ πορικό benchmark. Επιλέχθηκε η υλοποίηση ενός benchmark βασισμ ένου στην επίσημ η περιγραφή του AS3AP benchmark όπως αυτό είναι τεκμηριωμ ένο στο (Gray, 1993). Πλαίσιο ανάλυσης του φόρτου εργασίας του SQL optimizer στο Σύστημ α Δ ιαχείρισης Βάσεων Δεδομ ένων MySQL 9

10 Αν και το OSDB είναι βασισμ ένο στην περιγραφή του AS3AP υπάρχουν ορισμ ένες διαφορές (OSDB, 2008): Μετρήσιμ α μ εγέθη: το AS3AP αναφέρει ένα μ όνο μ έγεθος: το μ έγεθος της μ εγαλύτερης βάσης δεδομ ένων η οποία μ πορεί να χρησιμ οποιηθεί για να ολοκληρωθεί το benchmark σε λιγότερες από 12 ώρες. Αντίθετα, το OSDB αναφέρει πληθώρα ξεχωριστών αποτελεσμ άτων για την κάθε φάση της δοκιμ ής. Έλλειψη λειτουργικότητας: το AS3AP απαιτεί συμ φωνία μ ε μ ια πλήρως συμβατή SQL υλοποίηση ώστε να εκτελεστεί. Αντίθετα, το OSDB μ πορεί να εκτελεστεί και σε μ ερικώς συμ βατές SQL υλοποιήσεις καθώς και σε υλοποιήσεις που δεν ακολουθούν την SQL. Αποσαφηνίσεις: στο specification του AS3AP ορισμ ένα σημ εία είναι διφορούμ ενα. Επειδή το OSDB αποτελεί υλοποίηση, αυτές τις περιπτώσεις έχουν αποσαφηνιστεί μ ε συγκεκριμ ένο τρόπο. Αυθαίρετες αλλαγές: έχουν γίνει διάφορες αλλαγές μ ε σκοπό να διαχωριστούν οι επαναλαμβανόμ ενες ενέργειες από αυτές που πραγμ ατοποιούνται μ όνο μ ια φορά π. χ. αρχική δημ ιουργία της βάσης δεδομ ένων και ενέργειες που επαναλαμ βάνονται κάθε μ έρα. Αυτό που πρέπει να τονιστεί είναι πως, στην παρούσα εργασία, το OSDB δεν χρησιμ οποιείται για τα αποτελέσμ ατα τα οποία παράγονται από την εκτέλεση του. Τα αποτελέσμ ατα αυτά δεν λαμ βάνονται καθόλου υπόψιν για 2 λόγους: Μας ενδιαφέρουν αποτελέσμ ατα από συγκεκριμ ένο τμήμ α της εκτέλεσης του αιτήμ ατος (SQL optimizer) που στέλνει ο OSDB client. Το OSDB benchmark λαμ βάνει υπόψιν του το συνολικό χρονικό διάστημ α από την στιγμ ή, που ο OSDB client έστειλε το αίτημ α, έως ότου λάβει την απάντηση για την εκτέλεσή του, μ έγεθος το οποίο δεν αφορά την παρούσα μ ελέτη. Τα αποτελέσμ ατα που λαμ βάνει το benchmark είναι παραποιημ ένα. Ανάμ εσα στον RDBMS server και στον OSDB client παρεμ βάλλεται ένας proxy server. Προκειμ ένου αυτός να πετύχει συγχρονισμ ό για την αποθήκευση των αποτελεσμ άτων, που χρειάζονται για την παρούσα ανάλυση, υπάρχει καθυστέρηση χρονικά στην απάντηση που στέλνει ο server στον client. Επομ ένως ο OSDB client παραλαμ βάνει παραποιημ ένα χρονικά αποτελέσμ ατα. Τα αιτήμ ατα που στέλνει το OSDB benchmark, κατά την διάρκεια της εκτέλεσής του, εκτός από κάποια CREATE, JOINs, INSERT, DELETE ανήκουν στην συντριπτική τους πλειοψηφία τους ( πάνω από 98%) σε μ ια από τις επόμ ενες 2 κατηγορίες: 1. SELECT col_key, col_code, col_date, col_signed, 2. col_name 3. FROM updates 4. WHERE col_key = CONSTANT 5. UPDATE updates 6. SET col_signed=col_signed+1 7. WHERE col_key = CONSTANT Πλαίσιο ανάλυσης του φόρτου εργασίας του SQL optimizer στο Σύστημ α Δ ιαχείρισης Βάσεων Δεδομ ένων MySQL 10

11 όπου 0 <= CONSTANT <= Επίσης να σημ ειωθεί πως στην στήλη updates.col_keys, δημ ιουργείται ένα ευρετήριο UNIQUE. Τα αιτήμ ατα που αφορούν την δημ ιουργία της βάσης δεδομ ένων του OSDB καθώς και τα υπόλοιπα αιτήμ ατα, που στέλνονται από το OSDB κατά την διάρκεια της εκτέλεσής του, βρίσκονται στο Παράρτημ α 8. Συμπερασμ ατικά, το OSDB benchmark καλύπτει τους στόχους της ανάλυση, ανάλυσης που προτείνουμ ε στην παρούσα εργασία, όσον αφορά τις προϋποθέσεις που πρέπει να πληρεί ο client/benchmark του framework. Το OSDB benchmark χρησιμ οποιείται στην παρούσα μ ελέτη ως βάση, μ όνο για τα SQL αιτήμ ατα που στέλνει στον server. Το σύνολο των SQL αιτημ άτων τα οποία περιλαμ βάνονται στο OSDB benchmark καλύπτουν ένα δείγμ α καθημ ερινών ενεργειών που λαμβάνουν χώρα σε ένα RDBMS. Αυτό που δεν καλύπτεται είναι ευρεία χρήση αιτημ άτων που χρίζουν σοβαρής βελτιστοποίησης, έτσι ώστε να δοκιμ αστούν οι αντοχές του SQL optimizer MySQL και γιατί χρησιμ οποιείται στην μελέτη Η MySQL είναι ένα RDMBS το οποίο αναπτύσσεται από την εταιρία MySQL AB. Το σύστημ α αυτό είναι ένα δημ οφιλές client/server RDBMS στον χώρο του ανοικτού/ ελεύθερου λογισμ ικού αλλά και στον ευρύτερο χώρο των βάσεων δεδομένων (MySQL, 2007), (MySQL, 2008). Η MySQL διανέμ εται υπό διπλή άδεια: διανέμ εται υπό την άδεια GPL (GNU General Public License) αλλά διατίθεται και μ ε εμ πορική άδεια σε περίπτωση που ζητούμ ενο είναι να παρακαμ φθούν οι όροι της GPL ([MySQL, 2008]). Σύμ φωνα με το (FSF, 2008 a), η άδεια GPL πληρεί τις προϋποθέσεις για να χαρακτηριστεί μια άδεια διανομ ής ως άδεια ελεύθερου λογισμ ικού, οι οποίες είναι οι εξής, σύμ φωνα με το (FSF, 2008 b): ελευθερία χρήσης του προγράμμ ατος για οποιοδήποτε λόγο ελευθερία μ ελέτης του τρόπου λειτουργίας του προγράμμ ατος και μ ετατροπής του ώστε να καλύπτει τις προσωπικές ανάγκες του καθενός. Η πρόσβαση στον πηγαίο κώδικα είναι μ ια προϋπόθεση για αυτό. ελευθερία διανομ ής αντιγράφων του προγράμματος ελευθερία βελτίωσης του προγράμμ ατος και διανομ ής των βελτιώσεων στο κοινό. Η πρόσβαση στον πηγαίο κώδικα είναι μ ια προϋπόθεση για αυτό. Η MySQL χρησιμ οποιείται στην παρούσα μ ελέτη, αντί άλλων γνωστών εμπορικών λύσεων ( π. χ. Oracle, MS SQL Server) για δύο λόγους. 1. Η άδεια GPL, υπό την οποία κυκλοφορεί η MySQL, μ ας δίνει την δυνατότητα να δούμ ε τον κώδικα του προγράμμ ατος. Αυτό μ ας επιτρέπει, να μελετήσουμ ε την υλοποίηση των τμημ άτων του προγράμμ ατος που μ ας ενδιαφέρουν. Επιπλέον η χρήση του προγράμμ ατος είναι ελεύθερη, άρα και η δημοσίευση αποτελεσμ άτων από την χρήση του είναι ελεύθερη. Επομ ένως, μ ας δίνεται η δυνατότητα να τρέξουμ ε το benchmark και να δημοσιεύσουμ ε τα αποτελέσματά Πλαίσιο ανάλυσης του φόρτου εργασίας του SQL optimizer στο Σύστημ α Δ ιαχείρισης Βάσεων Δεδομ ένων MySQL 11

12 του δίχως περιορισμ ούς. Σε αντίθεση, σε ένα σύστημ α κλειστού κώδικα δεν παρέχεται η δυνατότητα μ ελέτης του πηγαίου κώδικα, εφόσον δεν παρέχεται ο κώδικας. Επιπλέον, απαγορεύεται η μ ελέτη του κώδικα που βρίσκεται στην μνήμ η μ έσω της διαδικασίας του reverse engιneering. Απαγορεύεται δηλαδή η μ ελέτη της υλοποίησης τμημ άτων του προγράμμ ατος. Επιπλέον, απαγορεύεται η δημ οσίευση αποτελεσμ άτων benchmark δίχως την συμ φωνία της εταιρίας που το εκδίδει. 2. Η άδεια GPL, υπό την οποία κυκλοφορεί η MySQL, μ ας δίνει την δυνατότητα να μεταβάλουμ ε τον κώδικα του προγράμμ ατος επομ ένως μπορούμ ε να εισάγουμε κώδικα ο οποίος μ ας βοηθά στην εύρεση των λεπτομ ερειών που ζητά η ανάλυση. Σε αντίθεση, σε ένα σύστημ α κλειστού κώδικα απαγορεύεται η μ ετατροπή του προγράμμ ατος και του κώδικα μ ηχανής στην μνήμ η. Επομένως δεν είναι εφικτή η παρέμ βαση κατά την εκτέλεση του προγράμμ ατος. Συμπερασμ ατικά, η MySQL χρησιμ οποιείται ως αντικείμ ενο μ ελέτης επειδή: 1. είναι ένα δημ οφιλές RDBMS, επομ ένως η μ ελέτη του εμ φανίζει ενδιαφέρον για μ εγάλο τμήμ α του χώρου της πληροφορικής, και 2. μπορούμ ε να μελετήσουμ ε και να παρέμβουμ ε στο πρόγραμμ α μ ε τρόπο που διευκολύνει και διευρύνει τους στόχους της μ ελέτης Ο SQL optimizer Η βελτιστοποίηση παρουσιάζει τόσο μ ια πρόκληση όσο και μ ια ευκαιρία για ένα RDBMS σύστημ α. Πρόκληση παρουσιάζει, επειδή η βελτιστοποίηση είναι απαραίτητη αν είναι επιθυμ ητό ένα αποδεκτό επίπεδο απόδοσης. Ευκαιρία παρουσιάζει, επειδή η δομ ή του σχεσιακού μ οντέλου ευνοεί την αυτόματη βελτιστοποίηση. Το σχεσιακό μ οντέλο είναι ένα μ οντέλο το οποίο παρέχει αφαίρεση σε υψηλό επίπεδο, σε αντίθεση μ ε τα μη σχεσιακά μ οντέλα όπου για την βελτιστοποίηση είναι υπεύθυνος ο ίδιος ο χρήστης (Date, 2004),(Ramakrishnan & Gehrke, 2002). Ο SQL optimizer είναι το τμήμ α ενός RDBMS το οποίο ευθύνεται για την εύρεση ενός ικανοποιητικού σχεδίου υπολογισμ ού για την εκτέλεση κάθε αιτήμ ατος. Ο λόγος για τον οποίο η εύρεση ενός ικανοποιητικού σχεδίου υπολογισμ ού καθίσταται αναγκαία, είναι η ύπαρξη πολλών διαφορετικών τρόπων για την ανάκτηση των δεδομ ένων προκειμ ένου να δοθεί απάντηση στο αίτημ α. Ο χώρος των πιθανών εναλλακτικών σχεδίων σχετίζεται μ ε την αλγεβρική αναπαράσταση του κάθε αιτήμ ατος. Όσο μ εγαλύτερος είναι ο αριθμ ός των τελεστών που λαμ βάνουν χώρα στο αίτημ α, τόσο περιπλοκότερη γίνεται η αλγεβρική παράσταση. Επιπλέον, κάθε RDBMS χρησιμ οποιεί κάποιου είδους ευρετήρια προκειμ ένου να βελτιστοποιήσει τον χρόνο αναζήτησης των αποθηκευμ ένων δεδομ ένων. Ένας ακόμ α στόχος του optimizer είναι η βέλτιστη διαχείριση των υπαρχόντων ευρετηρίων. Στο επόμ ενο σχήμ α παρουσιάζεται μ ία σύνοψη της δομ ής ενός SQL optimizer: Πλαίσιο ανάλυσης του φόρτου εργασίας του SQL optimizer στο Σύστημ α Δ ιαχείρισης Βάσεων Δεδομ ένων MySQL 12

13 SQL Αίτημα Συντακτική Ανάλυση Αιτημάτων Συντακτικά Αναλυμένο Αίτημα Βελτιστοποίηση Αιτημάτων Γεννήτρια Σχεδίων Εκτέλεσης Προσδιορισμός Κόστους Σχεδίου Εκτέλεσης Διαχείριση Καταλόγων Βέλτιστο Σχέδιο Εκτέλεσης Επεξεργασία Σχεδιου Εκτέλεσης Εικόνα 1: Συντακτική ανάλυση, βελτιστοποίηση και επεξεργασία SQL αιτήματος Αρχικά λαμ βάνει χώρα η συντακτική ανάλυση, η οποία ευθύνεται για τον γραμμ ατικό έλεγχο των αιτημ άτων και την μ ετατροπή της SQL σε μ ία δομ ή, η οποία είναι κατανοητή από το RDBMS. Μετά την συντακτική ανάλυση, το αίτημ α δίνεται στον βελτιστοποιητή αιτημ άτων (query optimizer). Ευθύνη του βελτιστοποιητή είναι ο προσδιορισμ ός ενός αποδοτικού σχεδίου εκτέλεσης για το τρέχον αίτημ α. Ο βελτιστοποιητής παράγει εναλλακτικά σχέδια για την εκτέλεση του αιτήμ ατος και επιλέγει εκείνο το οποίο αντιστοιχεί στο ελάχιστο αναμενόμ ενο κόστος. Στον υπολογισμ ό του αναμενόμ ενου κόστους χρησιμοποιείται πληροφορία από τους καταλόγους του συστήμ ατος. Για να γίνει κατανοητή η ανάγκη για την ύπαρξη του βελτιστοποιητή θα δώσουμε ένα παράδειγμ α. Ας υποθέσουμ ε πως έχουμ ε μ ια βάση δεδομ ένων, όπου είναι καταχωρημ ένα τα τηλέφωνα, το επίθετο και η περιοχή όλων των κατοίκων της Ελλάδας. Ας υποθέσουμ ε οτι ζητούμ ε από το RDBMS όλα τα τηλέφωνα των κατοίκων της Αττικής των οποίο το επίθετο αρχίζει από το γράμμ α ωμ έγα. Ας υποθέσουμ ε πως υπάρχουν τηλέφωνα και πως το καθένα αντιστοιχεί σε ένα επίθετο. Από αυτά εμ πειρικά είναι ασφαλές να θεωρήσουμ ε πως το 40% βρίσκεται στην Αττική και το 5% έχει επίθετο που ξεκινά από ωμ έγα. Στην περίπτωση το RDBMS δεν έχει ευρετήρια τα οποία του δίνουν πρόσβαση σε στατιστικά στοιχεία είναι υποχρεωμ ένο να προβεί σε πλήρη σάρωση των δεδομ ένων, Πλαίσιο ανάλυσης του φόρτου εργασίας του SQL optimizer στο Σύστημ α Δ ιαχείρισης Βάσεων Δεδομ ένων MySQL 13

14 για να επιλέξει τα επίθετα που ξεκινούν από ωμ έγα και ταυτόχρονα η περιοχή να είναι η Αττική. Κόστος ανάγνωσης εγγραφές. Στην περίπτωση που το RDBMS έχει πρόσβαση σε ένα ευρετήριο που αφορά μόνο την περιοχή, μ πορεί να προβεί στην ανάγνωση του 40% των εγγραφών. Με αυτόν τον τρόπο μ πορεί να επιλέξει τα τηλέφωνα της Αττικής και σε αυτά να βρει ποια επίθετα ξεκινούν από ωμ έγα. Κόστος ανάγνωσης εγγραφές. Στην περίπτωση που το RDBMS έχει πρόσβαση σε 2 ευρετήρια, ένα για το επίθετο και ένα για την περιοχή, τότε 2 επιλογές: 1. Να επιλέξει πρώτα τα τηλέφωνα ανά περιοχή και μ ετά να βρεί ποια από αυτά έχουν επίθετο που ξεκινά από ωμ έγα. Κόστος ανάγνωσης εγγραφές. 2. Να επιλέξει πρώτα τα τηλέφωνα ανά επίθετο και μ ετά να βρει ποια από αυτά βρίσκονται στην Αττική. Κόστος ανάγνωσης εγγραφές. Από το παραπάνω απλό παράδειγμ α, καταρχάς, είναι φανερό πως η ίδια ερώτηση μ πορεί να απαντηθεί μ ε διαφορετικά σχέδια εκτέλεσης και πως η διαφορά στην απόδοση ενδέχεται να είναι σημ αντική. Επομ ένως τόσο οι μ έθοδοι για την επιτάχυνση της ανάγνωσης και εγγραφής των δεδομ ένων, όσο και η εύρεση ενός βέλτιστου σχεδίου εκτέλεσης ενός SQL αιτήμ ατος είναι αναγκαία θέμ ατα που πρέπει να λύσει ένα RDBMS Ο sql optimizer στην MySQL Ο sql optimizer, στην MySQL, υλοποιείται στα αρχεία sql/sql_select.cc και πιο συγκεκριμ ένα στην συνάρτηση JOIN::optimize(). Το παρακάτω διάγραμμ α δείχνει την δομ ή του κώδικα που αναλαμ βάνει ένα αίτημ α στον server: 1. handle_select() 2. mysql_select() 3. JOIN::prepare() 4. setup_fields() 5. JOIN::optimize() /* ο optimizer ξεκινά εδώ... */ 6. optimize_cond() 7. opt_sum_query() 8. make_join_statistics() 9. get_quick_record_count() 10. choose_plan() 11. optimize_straight_join() 12. /* Εύρεση μ ερικώς βέλτιστου πλάνου */ 13. /* μ εταξύ όλων & υποσυνόλων από όλα τα */ 14. /* πιθανά πλάνα. ελέγχεται το βάθος */ 15. /* (exhaustiveness) της έρευνας */ 16. greedy_search() 17. /* exhaustive έρευνα για βέλτιστο πλάνο*/ 18. find_best() 19. make_join_select() /*... έως εδώ */ 20. JOIN::exec() Πλαίσιο ανάλυσης του φόρτου εργασίας του SQL optimizer στο Σύστημ α Δ ιαχείρισης Βάσεων Δεδομ ένων MySQL 14

15 Στο διάγραμμ α, ένα κομμ άτι κώδικα καλεί τον κώδικα που βρίσκεται στοιχισμένος πιο δεξιά. Όπως φαίνεται από την παραπάνω δομ ή ο SQL optimizer της MySQL αποτελείται από τις συναρτήσεις optimize_cond, opt_sum_query και make_join_statistics. Η optimize_cond ( γραμμ ή 6) είναι υπεύθυνη για θέμ ατα που αφορούν τις συνθήκες WHERE και HAVING. Η συνάρτηση opt_sum_query ( γραμμ ή 7) είναι υπεύθυνη για την βελτιστοποίηση των συναθροιστικών συναρτήσεων min, max και count. Η make_join_statistics ( γραμμ ή 8) είναι η συνάρτηση όπου αποφασίζεται ο τρόπος με τον οποίο θα εκτελεστεί το JOIN. Πιο συγκεκριμ ένα, μ ε την συνάρτηση get_quick_record_count ( γραμμ ή 9) βρίσκεται μ ια πρώτη εκτίμ ηση του πλήθους των πιθανών σειρών που θα επιστραφούν από τους πίνακες. Με την συνάρτηση choose_plan ( γραμμ ή 10) γίνεται ο υπολογισμ ός του βέλτιστου πλάνου. Υπάρχουν δύο περιπτώσεις: να περιλαμ βάνει το query STRAIGHT JOIN. Σε αυτήν την περίπτωση, μ ε την optimize_straight_join ( γραμμ ή 11) ο βελτιστοποιητής προσπαθεί να κάνει την βελτιστοποίηση λαμ βάνοντας υπόψιν την σειρά μ ε την οποία έχουν δοθεί οι πίνακες του STRAIGHT JOIN. να μ ην περιλαμ βάνει το query STRAIGHT JOIN. Σε αυτήν, την πιο συνηθισμένη περίπτωση, υπάρχουν 2 τρόποι μ ε τους οποίος βρίσκεται το βέλτιστο πλάνο, με βάση το πλήθος των σειρών που θα αντληθούν από τους πίνακες. 1. αν οι πίνακες είναι λίγοι στο πλήθος, ερευνώνται όλα τα πιθανά πλάνα εκτέλεσης μ ε την συνάρτηση find_best ( γραμμ ή 18). 2. αν οι πίνακες είναι πολλοί στο πλήθος τότε και τα πιθανά πλάνα εκτέλεσης είναι πολλά. Επομ ένως ο βελτιστοποιητής δεν τα ελέγχει όλα, αλλά περιορίζεται από κάποιες παραμ έτρους που αφορούν το εύρος της έρευνας. Με την greedy_search ( γραμμ ή 16) ο βελτιστοποιητής προσπαθεί να βρει το μ ερικώς βέλτιστο πλάνο, ένα πλάνο δηλαδή το οποίο είναι βέλτιστο, λαμ βάνοντας υπόψιν αυτές τις παραμ έτρους. Ανάλογα μ ε τις παραμ έτρους, όσο πιο μ εγάλο είναι το δυνατό εύρος της έρευνας, τόσο το μ ερικώς βέλτιστο πλάνο πλησιάζει την απόδοση του συνολικά βέλτιστου πλάνου Σύνοψη Στην ενότητα αυτή αναλύθηκαν οι λόγοι για τους οποίους το framework δομ είται με τα εργαλεία και τα προγράμμ ατα που αναφέρθηκαν πιο πάνω: Η MySQL χρησιμ οποιείται ως αντικείμ ενο μ ελέτης διότι είναι ένα δημοφιλές RDBMS σύστημ α και διότι μπορούμ ε να επέμβουμ ε σε βάθος στον πηγαίο κώδικά της. Ο SQL optimizer της MySQL παρουσιάζει ενδιαφέρον επειδή έχουμ ε πρόσβαση στον πηγαίο κώδικά του και μπορούμ ε να μελετήσουμ ε εκτεταμ ένα. Το OSDB benchmark χρησιμ οποιείται για τα SQL αιτήμ ατα που στέλνει στην MySQL, επειδή βασίζεται στο AS3AP, ένα καθιερωμ ένο και γνωστό Πλαίσιο ανάλυσης του φόρτου εργασίας του SQL optimizer στο Σύστημ α Δ ιαχείρισης Βάσεων Δεδομ ένων MySQL 15

16 benchmark, το οποίο έχει ένα καλό δείγμ α SQL αιτημ άτων, τα οποία απαιτούν βασικές ικανότητες βελτιστοποίησης. Επίσης δόθηκε και μ ια δομ ή του SQL optimizer της MySQL, σε υψηλό επίπεδο. Πλαίσιο ανάλυσης του φόρτου εργασίας του SQL optimizer στο Σύστημ α Δ ιαχείρισης Βάσεων Δεδομ ένων MySQL 16

17 3. Το πλαίσιο ανάλυσης φόρτου εργασίας του SQL optimizer Στην ενότητα αυτή αναλύονται η δομ ή του framework το οποίο προτείνουμ ε καθώς και λεπτομ έρειες υλοποίησής του. Η δομ ή του κεφαλαίου έχει ως εξής: στην ενότητα 3.1 γίνεται μ ια εισαγωγή στην δομ ή του framework. Στην ενότητα 3.2 περιγράφονται αναλυτικά τα τμήμ ατα από τα οποία αποτελείται το framework καθώς και ο τρόπος μ ε τον οποίο αλλελεπιδρούν. Στην ενότητα 3.3 δίνεται η σύνοψη του κεφαλαίου Η δομ ή του framework Το framework αποτελείται από 3 προγράμμ ατα τα οποία αλληλεπιδρούν προκειμένου να παραχθούν και να αποθηκευτούν τα επιθυμ ητά αποτελέσμ ατα. Αυτά είναι: ένας MySQL server. ένας MySQL proxy server. ένας client ο οποίος στέλνει αιτήμ ατα στον server, στην περίπτωσή της ανάλυσης ένα benchmark. Το παρακάτω σχήμ α παρουσιάζει την δομ ή του framework: client (benchmark) SQL αίτημα MySQL proxy Εικόνα 2: Δομ ή των τμημ άτων της μ ελέτης και ροή δεδομένων SQL αίτημα αποθήκευση δεδομένων μελέτης MySQL server Η ροή των δεδομ ένων έχει ως εξής: το benchmark στέλνει αιτήμ ατα στον server, δίχως να γνωρίζει την ύπαρξη του proxy server. Τα αιτήμ ατα αυτά χρησιμ οποιούνται από την μ ελέτη για βρεθεί ο φόρτος εργασίας του SQL optimizer. ο MySQL proxy αναλαμ βάνει να προωθήσει τα αιτήμ ατα στον MySQL server. Όταν επιστρέφει στον MySQL proxy η απάντηση του αιτήμ ατος, τότε ο MySQL proxy δεν στέλνει αμ έσως την απάντηση στον client. Αντιθέτως, στέλνει στην βάση ένα σύνολο αιτημ άτων, μ ε το οποίο γίνεται η αποθήκευση μ ετρήσεων της μ ελέτης, σε μ ία βάση δεδομ ένων στον server. Όταν πραγμ ατοποιηθεί η αποθήκευση, τότε ο MySQL proxy επιστρέφει στον client την απάντηση του server. Πλαίσιο ανάλυσης του φόρτου εργασίας του SQL optimizer στο Σύστημ α Δ ιαχείρισης Βάσεων Δεδομ ένων MySQL 17

18 ο MySQL server δέχεται τα αιτήμ ατα τα οποία και προσπαθεί να εξυπηρετήσει. Ο MySQL server, που χρησιμ οποιείται στην μ ελέτη, είναι ένας τροποποιημένος server. Χάρη σε αυτήν την μ ετατροπή γίνονται οι μ ετρήσεις για την ανάλυση του φόρτου εργασίας στον SQL optimizer. Όμ ως τα δεδομ ένα που παράγονται από την ανάλυση, είναι προσωρινά αποθηκευμ ένα στην μνήμ η και θα χαθούν μ όλις ο client αποσυνδεθεί. Για αυτόν τον λόγο, ο MySQL proxy αναλαμβάνει να αποθηκεύσει τα δεδομ ένα στον server, μόνιμ α σε μ ία βάση δεδομ ένων. Στην συνέχεια έχουμ ε την δυνατότητα να τα επεξεργαστούμ ε και να προχωρήσουμε στην ανάλυση των δεδομ ένων Περιγραφή των τμημ άτων του benchmark Στις επόμ ενες ενότητες θα παρουσιάσουμ ε μ ε λεπτομ έρειες τα τμήμ ατα που αποτελούν το benchmark καθώς και τον τρόπο μ ε τον οποίο αλληλεπιδρούν MySQL server και code profiling Όπως αναφέραμ ε πιο πάνω, χρειάζεται να επέμβουμ ε στον πηγαίο κώδικα του server προκειμ ένου να προσθέσουμ ε κώδικα, ο οποίος καταγράφει τα δεδομ ένα που ζητούνται. Για την επέμ βαση αυτή χρησιμοποιούμ ε το SHOW PROFILES API ( ή πιο απλά profiling API) το οποίο ήδη υπάρχει στην MySQL. Το API αυτό αποτελεί μέρος των community features τα οποία δεν περιλαμ βάνονται στις binary εκδόσεις των server, πέραν της τρέχουσας έκδοσης παραγωγής. Η χρήση του API είναι απλή. Γενικά, το API καταμ ετρά το χρονικό διάστημ α, το οποίο περνά ένα αίτημ α μ έσα στον MySQL server, από την στιγμ ή που μ παίνει στον server μ έχρι την στιγμ ή που ο server επιστρέφει την απάντηση. Μέσα στον κώδικα του MySQL server υπάρχει ένα πλήθος από σημ εία ελέγχου. Το API μ ετρά το χρονικό διάστημ α από την στιγμ ή που η εκτέλεση του κώδικα συναντήσει ένα σημείο ελέγχου έως ότου συναντήσει το επόμ ενο σημ είο ελέγχου. Στον κώδικα της MySQL, υπάρχουν ήδη τοποθετημ ένα κάποια τέτοια σημ εία ελέγχου, τα οποία καταμ ετρούν το χρονικό διάστημ α που δαπανάται σε σημ αντικά σημ εία κατά την εκτέλεση ενός αιτήμ ατος. Το κάθε σημ είο ελέγχου υλοποιείται μ ε την κλήση της συνάρτησης thd_proc_info(). Κάθε φορά που το profiling API συναντά αυτή την συνάρτηση μ ηδενίζει ένα χρονόμ ετρο και μ ετρά τον χρόνο έως ότου συναντήσει ξανά μ ια κλήση της συνάρτησης. Για να προστεθεί ένα καινούργιο σημ είο ελέγχου μ έσα στον κώδικα, χρειάζεται η προσθήκη μ ιας συνάρτησης thd_proc_info() στον κώδικα. Τα δεδομ ένα, τα οποία καταμ ετρούνται από το profiling API, αποθηκεύονται στον πίνακα profiling της βάσης δεδομ ένων information_schema. Ο πίνακας αυτός χρησιμ οποιεί την μ ηχανή αποθήκευσης MEMORY η οποία αποθηκεύει τον πίνακα αποκλειστικά στην μνήμ η. Επομ ένως, μ ετά την αποσύνδεση του client από τον server τα δεδομ ένα που είναι αποθηκευμ ένα στον πίνακα χάνονται. Επίσης για κάθε client υπάρχει διαφορετικό στιγμ ιότυπο του πίνακα στην μνήμ η. Πλαίσιο ανάλυσης του φόρτου εργασίας του SQL optimizer στο Σύστημ α Δ ιαχείρισης Βάσεων Δεδομ ένων MySQL 18

19 Το profiling API χρησιμ οποιήθηκε γιατί καλύπτει τις προϋποθέσεις που τέθηκαν στους στόχους της μ ελέτης όσον αφορά την μ ετατροπή του MySQL server. Με την χρήση του profiling API δεν χρειάζεται η προσθήκη καινούργιων ορισμ ών, συναρτήσεων ούτε η μ ετατροπή στον πηγαίο κώδικα, σε οποιοδήποτε σημείο του προγράμμ ατος. Εφόσον το profiling API είναι τμήμ α του κώδικα της MySQL απαιτείται απλά η κλήση του. Επιπλέον η χρήση του είναι ιδιαιτέρως απλή ( κλήση μ ίας συνάρτησης). Επομ ένως, απαιτείται ελάχιστη παρέμβαση στον πηγαίο κώδικα της MySQL Το profiling API, αποθηκεύει τα δεδομ ένα που συλλέγονται σε μ ία βάση δεδομ ένων μ έσα στον MySQL server. Η μ ηχανή αποθήκευσης των πινάκων είναι η MEMORY η οποία αποθηκεύει τα δεδομ ένα στην μνήμ η του συστήμ ατος δίχως να γίνεται χρήση του σκληρού δίσκου. Επομ ένως η I/O επιβάρυνση κατά την εκτέλεση του αιτήμ ατος είναι η ελάχιστη και κατά συνέπεια, επιβαρύνεται η εκτέλεση της MySQL όσο το δυνατό λιγότερο. Είναι δυνατή η προσθήκη σημ είων ελέγχου σε οποιοδήποτε σημ είο του κώδικα, δίνοντας έτσι την δυνατότητα για μ ετρήσεις σε οποιαδήποτε τμήμ ατα της εκτέλεσης ενός αιτήμ ατος. Επομ ένως, προσφέρει επεκτασιμ ότητα και ευελιξία, όσον αφορά τα μ εγέθη τα οποία καταγράφονται και μ ετρούνται Μετατροπές στον MySQL server Στον πηγαίο κώδικα της MySQL υπάρχουν ήδη 2 σημ εία ελέγχου του profiling API, τα οποία καλύπτουν την εκτέλεση του SQL optimizer, τα optimizing και statistics. Τα 2 αυτά σημ εία έχουν αφαιρεθεί και έχουν προστεθεί περισσότερα ( καινούργια) τα οποία καλύπτουν τον ίδιο κώδικα. Για τις ανάγκες της μ ελέτης πρέπει να εξεταστεί ο κώδικας τον οποίο καλύπτουν τα σημ εία αυτά, μ ε περισσότερη λεπτομ έρεια. Για υπάρχει ομ οιότητα μ ε τα παλιά σημ εία ελέγχου, τα καινούργια έχουν ονομ αστεί optimizing: ΧΥΖ και statistics: ΧΥΖ όπου ΧΥΖ μ ια ονομ ασία που χαρακτηρίζει το σημ είο αυτό. Συγκεκριμ ένα: Στην συνάρτηση JOIN::optimize επεκτείνεται το σημ είο ελέγχου optimizing στα επιμ έρους σημ εία: 1. optimizing: init : ξεκίνημ α της JOIN::optimize, δέσμ ευση μεταβλητών και αρχικοποίηση αυτών. 2. optimizing: conds": βελτιστοποίηση των conditionals ( συνάρτηση optimize_cond) 3. optimizing: sums : βελτιστοποίηση των count, min, max ( συνάρτηση opt_sum_query) Στη συνάρτηση make_join_statistics επεκτείνεται το σημ είο ελέγχου statistics : 1. "statistics: init": ξεκίνημ α της make_join_statistcs, δέσμευση μ εταβλητών και αρχικοποίηση αυτών.. 2. "statistics: const tables": Εύρεση των const πινάκων ( η έννοια εξηγείται στην συνέχεια). Πλαίσιο ανάλυσης του φόρτου εργασίας του SQL optimizer στο Σύστημ α Δ ιαχείρισης Βάσεων Δεδομ ένων MySQL 19

20 3. "statistics: index stats": Ανανέωση των πληροφοριών για τα ευρετήρια που μ πορούν να χρησιμ οποιηθούν. 4. "statistics: count rows": Υπολογισμ ός του πιθανού πλήθος των γραμμών κάθε πίνακα. 5. "statistics: join order": Εύρεση του βέλτιστου πλάνου για τα JOIN. Αυτό που πρέπει να σημ ειωθεί είναι πως το τελευταίο σημ είο ελεγχου μ ετρά όντως τον χρόνο του κώδικα της συνάρτησης make_join_statistics και όχι και επιπλέον κώδικα μ ετά το τέλος της συνάρτησης αυτής. Αυτό συμ βαίνει διότι αμ έσως μ ετά το τέλος της make_join_statistics υπάρχει ένα επόμ ενο σημ είο ελέγχου, το "preparing. Επιπλέον σκόπιμ ο είναι να εξηγηθεί τι ορίζεται ως πίνακας const: Ένας πίνακας μ ε 0 ή μ ε 1 μ όνο γραμμ ή. Μια έκφραση, που περιέχει πίνακα, η οποία περιορίζεται από μ ια συνθήκη WHERE, η οποία περιέχει συνθήκες της μ ορφής στήλη= σταθερά για: 1. όλες τις στήλες του πρωτεύοντος κλειδιού ή 2. για όλες τις στήλες οποιουδήποτε από τα unique κλειδιά του πίνακα (με την προϋπόθεση πως οι στήλες έχουν οριστεί ως NOT NULL). Αφού γίνει το compile του server ο server χρησιμ οποιείται για το benchmark Η αποθήκευση των πληροφοριών Το profiling API παρέχει ένα πλήθος από πληροφορίες. Μία πλήρης καταγραφή των πληροφοριών βρίσκεται στο Παράρτημ α 7. Από αυτές τις πληροφορίες, στην ανάλυση χρειάζονται συγκεκριμ ένες μ όνο. Στον MySQL server δημ ιουργείται μια βάση δεδομ ένων όπου θα αποθηκευτούν μόνιμ α τα δεδομ ένα, που παρέχει το profiling API, για περαιτέρω επεξεργασία. Η βάση αυτή περιλαμ βάνει τους εξής πίνακες: 1. queries( ID, query, session, session_time) 2. details( ID, seq, state, duration) O Πίνακας queries αποθηκεύει το αποτύπωμ α του κάθε αιτήμ ατος, δίχως τις λεπτομ έρειες που το αφορούν. Αποτελείται από τα πεδία: ID: ένας μ οναδικός αριθμ ός (id) του κάθε αιτήμ ατος που εξυπηρετεί ο server. Ο αριθμ ός αυτός είναι ανεξάρτητος από τον client που στέλνει το αίτημ α, σχετίζεται μ όνο μ ε την σειρά μ ε την οποία ο server εξυπηρετεί τα αιτήμ ατα που δέχεται QUERY: η SQL που αποτελεί το αίτημ α. SESSION: το id του thread το οποίο εξυπηρετεί τον κάθε client. Είναι μοναδικό αν ο server δεν κλείσει. Αν γίνει επανεκκίνηση του server η αρίθμ ηση ξεκινά από την αρχή. Αυτό το δεδομ ένο μ πορεί να χρησιμ εύσει αν θέλουμ ε να εξετάσουμ ε τη σειρά μ ε την οποία καταφθάνουν στον server οι client. SESSION_TIME: η χρονοσφραγίδα στην οποία έγινε η αυθεντικοποίηση του client από τον server. Αυτό το δεδομ ένο μ πορεί να χρησιμ εύσει αν θέλουμ ε να εξετάσουμ ε τη σειρά και τη χρονική απόσταση μ ε την οποία οι client καταφθάνουν στον server. Πλαίσιο ανάλυσης του φόρτου εργασίας του SQL optimizer στο Σύστημ α Δ ιαχείρισης Βάσεων Δεδομ ένων MySQL 20

21 O Πίνακας details αποθηκεύει τις λεπτομ έρειες που αφορούν το κάθε αίτημ α. Για το κάθε αίτημ α αποθηκεύεται ένα πλήθος από σειρές. Η κάθε σειρά περιέχει τις πληροφορίες από την εκτέλεση του κώδικα που αντιστοιχεί από ένα σημ είο ελέγχου του profiling API έως το επόμ ενο. Αποτελείται από τα πεδία: ID: το id του κάθε αιτήμ ατος που εξυπηρετεί ο server ( βλ πίνακα queries). SEQ: ένας αύξων αριθμ ός που δηλώνει την σειρά του σημ είου ελέγχου ανάμεσα στα σημ εία ελέγχου ενός συγκεκριμ ένου αιτήμ ατος. STATE: το όνομ α που δίνεται από το profiling API στο σημ είο ελέγχου το οποίο χρονομ ετρεί η γραμμ ή. DURATION: ο χρόνος που χρειάστηκε για την ολοκλήρωση του σημ είου ελέγχου. Ο κώδικας του script της δημ ιουργίας της βάσης δεδομ ένων για την μόνιμη αποθήκευση των δεδομ ένων, βρίσκεται στο Παράρτημ α MySQL proxy Ο MySQL proxy είναι ένας proxy server ο οποίος παρεμ βάλλεται ανάμ εσα στον MySQL server και τους πελάτες του. Ο proxy server μ πορεί να μ εταβάλλει και να επεξεργαστεί οποιαδήποτε κίνηση δεδομ ένων από τον client προς στον server και αντίστροφα, η οποία χρησιμ οποιεί το MySQL Network protocol και η οποία περνά μ έσω της port στην οποία ακούει ο server. Η διαχείριση και η επεξεργασία γίνεται από ένα script, το οποίο διαβάζει ο proxy κάθε φορά που ένας καινούργιος πελάτης προσπαθεί να συνδεθεί. Για τις ανάγκες της ανάλυσης δημ ιουργήθηκε ένα script το οποίο αναλαμ βάνει την προώθηση του αιτήμ ατος του client στον server και ύστερα την αποθήκευση των δεδομ ένων του profiling API για το συγκεκριμ ένο αίτημ α. Ο αλγόριθμ ος που υλοποιεί το script είναι ο ακόλουθος ( ο πλήρης κώδικας του script βρίσκεται στο Παράρτημ α 10): Πλαίσιο ανάλυσης του φόρτου εργασίας του SQL optimizer στο Σύστημ α Δ ιαχείρισης Βάσεων Δεδομ ένων MySQL 21

22 state -2 O proxy server δέχεται αίτηση για αυθεντικοποίηση. Την στέλνει στον server και στέλνει και ένα επιπλέον αίτημα ώστε να θέσει σε λειτουργία τον μηχανισμό του profiling API state -1 O proxy server δέχεται 2 απαντήσεις: στέλνει την απάντηση της αυθεντικοποίησης στον client απορρίπτει την απάντηση που αφορούσε το profiling API state 0 O proxy server δέχεται αίτηση ενα αίτημα. Στέλνει στον server 2 αιτήματα: το αρχικό αίτημα του client ένα επιπλέον αίτημα που ζητά το id του αιτήματος του client από το profiling API state 1 O proxy server δέχεται 2 απαντήσεις: την απάντηση στο αρχικό αίτημα του client την οποία αποθηκεύει και δεν προωθεί στον client την απάντηση του αιτήματος από το profiling API για το id του αιτήματος του client state 2 O proxy server στέλνει στον server 2 αιτήματα (τύπου INSERT) με τα οποία αποθηκεύονται μόνιμα οι πληροφορίες του profiling API για το αρχικό αίτημα του client, στη βάση δεδομένων profiling. state 3 O proxy server δέχεται 2 απαντήσεις που αφορούν την αποθήκευση των πληροφοριών. Δεν τις προωθεί στον client και τις απορρίπτει. state 4 O proxy server στέλνει στον client την αποθηκευμένη απάντηση του αρχικού αιτήματος Εικόνα 3: ο αλγόριθμ ος του script του MySQL proxy Πλαίσιο ανάλυσης του φόρτου εργασίας του SQL optimizer στο Σύστημ α Δ ιαχείρισης Βάσεων Δεδομ ένων MySQL 22

23 Σχετικά μ ε τον παραπάνω αλγόριθμ ο επεξηγούνται στην συνέχεια ορισμένα σημ εία: Ο αλγόριθμ ος αρχίζει όταν ένας client αρχίζει την διαδικασία αυθεντικοποίησης στον server. Ο αλγόριθμ ος τερμ ατίζει όταν διακοπεί η σύνδεση του client μ ε τον server είτε με κανονικό τρόπο είτε λόγω σφάλμ ατος. Η αρίθμ ηση των καταστάσεων ( 2 έως 4) έχει καθαρά ενδεικτικό χαρακτήρα. Στις καταστάσεις πριν το 0 δεν έχει ενεργοποιηθεί ακόμ α το profiling API ενώ στις καταστάσεις μ ετά το 0 έχει ενεργοποιηθεί. Ο αλγόριθμ ος κατά την κύρια λειτουργία του ( καταστάσεις 0 έως 4) είτε εξυπηρετεί ένα αίτημ α ( καταστάσεις 1 έως 4) είτε αναμ ένει ένα αίτημα ( κατάσταση 0) benchmarking client Το benchmark συνδέεται στη θύρα όπου ακούει ο proxy server και αρχίζει να στέλνει αιτήμ ατα στον MySQL server (μ έσω του proxy server). Τότε, τα δεδομ ένα του profiling API, για κάθε αίτημ α, αποθηκεύονται στον MySQL server. Μόλις τελειώσει το benchmark στην βάση δεδομ ένων profiling είναι αποθηκευμ ένα όλα τα στατιστικά για όλα τα αιτήμ ατα που στέλνονται. Το πλήθος των αιτημ άτων είναι περίπου , αριθμ ός ο οποίος, περιλαμ βάνει και ένα αίτημα BEGIN και ένα COMMIT για κάθε αίτημ α τύπου SELECT και UPDATE. Το πλήθος των αιτημ άτων δίχως τα BEGIN, COMMIT είναι περίπου Στατιστικά στοιχεία Μετά την εκτέλεση του benchmark υπάρχει πλέον η δυνατότητα να μ ετρηθούν τα μ εγέθη που χρειάζεται η ανάλυση. Στην παρούσα μ ελέτη σχεδιάσαμ ε 2 στατιστικά μ εγέθη. Συγκεκριμ ένα, για κάθε αίτημ α υπολογίζονται οι λόγοι: Συνολικός χρόνος εκτέλεσης του αιτήμ ατος προς τον χρόνο εκτέλεσης όλου του SQL optimizer ( σε ποσοστό %) Συνολικός χρόνος εκτέλεσης του αιτήμ ατος προς τον χρόνο εκτέλεσης του κάθε μ έρους του SQL optimizer ( σε ποσοστό %). Αυτό περιλαμ βάνει τα 8 μ έρη του SQL optimizer όπως αυτά περιγράφηκαν σε προηγούμ ενη ενότητα ( 3.2.2) Χρήση όλων των στοιχείων μαζί Για την αυτόμ ατη εκτέλεση όλων των μ ερών του framework χρησιμ οποιείται ένα shell script, ο κώδικας του οποίου παρουσιάζεται στο παράρτημ α της ενότητας 12. Το script αυτό αναλαμ βάνει να εκτελέσει αυτόμ ατα τα διαφορετικά σενάρια του MySQL server, ένα συγκεκριμ ένο αριθμ ό φορών το καθένα. Πλαίσιο ανάλυσης του φόρτου εργασίας του SQL optimizer στο Σύστημ α Δ ιαχείρισης Βάσεων Δεδομ ένων MySQL 23

24 3.3. Σύνοψη Στο κεφάλαιο αυτό παρουσιάστηκε η δομ ή και η υλοποίηση του framework και των τμημ άτων που το αποτελούν. Στον MySQL server έχει ενεργοποιηθεί το profiling API το οποίο κρατά στατιστικά κατά την διάρκεια της εκτέλεσης των SQL αιτημ άτων. Τα SQL αιτήμ ατα τα στέλνει ένας client, στην περίπτωση της μ ελέτης το OSDB benchmark. Προκειμ ένου να καταγράφονται τα στατιστικά στοιχεία που θέλουμ ε, στον κώδικα της MySQL έγιναν οι κατάλληλες προσθήκες, εισάγοντας κλήσεις του profiling API. Τα δεδομ ένα όμ ως, που μ ας παρέχει το API αυτό, αποθηκεύονται προσωρινά, επομ ένως φτιάξαμ ε μ ια βάση δεδομ ένων στην οποία θα αποθηκεύονται μόνιμ α τα δεδομ ένα. Προκειμ ένου να υλοποιηθεί η αυτόμ ατη αποθήκευση των δεδομ ένων, χρησιμ οποιήθηκε ο MySQL proxy, ο οποίος παρεμ βάλλεται ανάμεσα στον server και στον client. Κάθε φορά που έρχεται ένα SQL αίτημ α, ο MySQL proxy φροντίζει να επιλέξει από το profiling API τα δεδομ ένα που θέλουμ ε και να τα αποθηκεύσει μόνιμ α στην βάση δεδομ ένων που έχουμ ε δημ ιουργήσει. Για την αυτόμ ατη εκτέλεση διαφορετικών περιπτώσεων και την συλλογή των στατιστικών χρησιμ οποιείται ένα shell script το οποίο φροντίζει για την ομ αλή και διαδοχική εκτέλεση όλων των λειτουργιών. Πλαίσιο ανάλυσης του φόρτου εργασίας του SQL optimizer στο Σύστημ α Δ ιαχείρισης Βάσεων Δεδομ ένων MySQL 24

25 4. Χρήση του framework Στο κεφάλαιο αυτό, το framework που αναλύθηκε στο προηγούμ ενο κεφάλαιο, χρησιμ οποιείται μ ε στόχο καταρχάς να γίνει επίδειξη της λειτουργίας του και κατά δεύτερον την εξαγωγή κάποιων πρώτων συμπερασμ άτων από την χρήση μ ε το OSDB benchmark. Η δομ ή του κεφαλαίου είναι η εξής: στην ενότητα 4.1 θα αναφέρουμ ε τα σενάρια τα οποία χρησιμ οποιήθηκαν στην μ ελέτη. Στην ενότητα 4.2 γίνεται μ ια παρουσίαση του περιβάλλοντος στο οποίο έγινε η χρήση του framework και η διαδικασία εγκατάστασης. Στην ενότητα 4.3 παρουσιάζουμ ε τα αποτελέσμ ατα της χρήσης του OSDB benchmark και την επιβάρυνση που επιφέρει η χρήση του framework και του profiling API στην εκτέλεση των SQL αιτημ άτων από τον server. Στην ενότητα 4.4 αξιολογείται το framework και στην ενότητα 4.5 δίνεται η σύνοψη του κεφαλαίου Σενάρια χρήσης Το framework χρησιμ οποιήθηκε στα εξής 3 σενάρια, μ ε το profiling API ενεργοποιημ ένο σε όλα: Σενάριο Α: δεν έχουν προστεθεί σημ εία ελέγχου εκτός από αυτά που ήδη υπάρχουν στον πηγαίο κώδικα. Σενάριο Β: έχουν προστεθεί επιπλέον σημ εία ελέγχου μ έσα στον κώδικα του sql optimizer. Από αυτά που αναφέρονται στην ενότητα ( 3.2.2) χρησιμοποιήθηκαν μ όνο όσα αφορούν το τμήμ α statistics. Σενάριο C: έχουν προστεθεί επιπλέον σημ εία ελέγχου μ έσα στον κώδικα του sql optimizer. Από αυτά που αναφέρονται στην ενότητα ( 3.2.2) χρησιμοποιήθηκαν όσα αφορούν τόσο το τμήμ α statistics όσο και το τμήμ α optimizing. Στο σενάριο Α ο MySQL server έγινε build από τον πηγαίο κώδικα, αυτούσιο όπως διανέμ εται από το site της εταιρίας. Στα σενάρια Β και C ο MySQL server έγινε build αφού πρώτα έχει προστεθεί το κατάλληλο patch στον πηγαίο κώδικα. Τα patch παρουσιάζονται στο Παράρτημ α 9. Ο λόγος για τον οποίο εκτελούνται τα 3 διαφορετικά σενάρια είναι για να βρεθεί η επιβάρυνση που επιφέρει το profiling API στην εκτέλεση του προγράμμ ατος. Δεν βρέθηκε τρόπος να μ ετρηθεί η επιβάρυνση για όλο το API, συγκρίνοντας δηλαδή τον χρόνο εκτέλεσης ενός αιτήμ ατος μ ε το API ενεργοποιημ ένο και απενεργοποιημ ένο. Ωστόσο είναι εφικτές οι μ ετρήσεις μ ε διαφορετική, σε έκταση, χρήση του API. Έτσι στο σενάριο Α υπάρχει η μ ικρότερη χρήση του API, στο Β υπάρχει περισσότερη χρήση και στο C ακόμ α περισσότερη. Βρίσκοντας τις διαφορές στον χρόνο εκτέλεσης των αιτημ άτων στα διαφορετικά σενάρια μ πορεί να μ ετρηθεί η σχετική επιβάρυνση μ εταξύ των σεναρίων. Πλαίσιο ανάλυσης του φόρτου εργασίας του SQL optimizer στο Σύστημ α Δ ιαχείρισης Βάσεων Δεδομ ένων MySQL 25

Job Analysis & Job Match Report

Job Analysis & Job Match Report Job Analysis & Job Match Report Based on Psychometric Tests and Standards Job Description: (Job_ID ) Monday 31st of January 2011 08:39:49 PM Supported by: Εισαγωγή Το σύστημ α HR Mentor ARISTON έχει δημ

Διαβάστε περισσότερα

Οδηγίες Χρήσης της MySQL

Οδηγίες Χρήσης της MySQL ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΣΗΜΕΙΩΣΕΙΣ ΣΕ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Οδηγίες Χρήσης της MySQL Διδάσκων: Γιάννης Θεοδωρίδης Συντάκτης Κειμένου: Βαγγέλης Κατσικάρος Νοέμβριος 2007 1 Περιεχόμενα Εισαγωγή...2

Διαβάστε περισσότερα

Οδηγίες Χρήσης της MySQL

Οδηγίες Χρήσης της MySQL ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΣΗΜΕΙΩΣΕΙΣ ΣΕ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Οδηγίες Χρήσης της MySQL Διδάσκων: Γιάννης Θεοδωρίδης Συντάκτης Κειμένου: Βαγγέλης Κατσικάρος Απρίλιος 2007 1 Περιεχόμενα Εισαγωγή...2

Διαβάστε περισσότερα

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

Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων Εργαστήριο Βάσεων Δεδομένων Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων Τρόπος Διεξαγωγής #1 Ύλη (4 Ενότητες) 1. Ανάλυση Απαιτήσεων - Σχεδιασμός Βάσης Δεδομένων 2. Δημιουργία βάσης a)

Διαβάστε περισσότερα

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

Εισαγωγικό Μάθημα Βασικές Έννοιες - Ανάλυση Απαιτήσεων ..?????? Εργαστήριο ΒΑΣΕΙΣ????????? ΔΕΔΟΜΕΝΩΝ Βάσεων Δεδομένων?? ΙΙ Εισαγωγικό Μάθημα Βασικές Έννοιες - . Γενικά Τρόπος Διεξαγωγής Ορισμός: Βάση Δεδομένων (ΒΔ) είναι μια συλλογή από σχετιζόμενα αντικείμενα

Διαβάστε περισσότερα

Οδηγίες Εγκατάστασης της MySQL

Οδηγίες Εγκατάστασης της MySQL ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΣΗΜΕΙΩΣΕΙΣ ΣΕ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Οδηγίες Εγκατάστασης της MySQL Διδάσκων: Γιάννης Θεοδωρίδης Συντάκτης Κειμένου: Βαγγέλης Κατσικάρος Νοέμβριος 2007 Περιεχόμενα Περιεχόμενα...

Διαβάστε περισσότερα

ΚΕΝΤΡΟ ΕΛΛΗΝΙΚΗΣ ΓΛΩΣΣΑΣ ΠΙΣΤΟΠΟΙΗΤΙΚΟ ΕΠΑΡΚΕΙΑΣ ΤΗΣ ΕΛΛΗΝΟΜΑΘΕΙΑΣ. Οδηγίες για τη διενέργεια των εξετάσεων. Θεσσαλονίκη

ΚΕΝΤΡΟ ΕΛΛΗΝΙΚΗΣ ΓΛΩΣΣΑΣ ΠΙΣΤΟΠΟΙΗΤΙΚΟ ΕΠΑΡΚΕΙΑΣ ΤΗΣ ΕΛΛΗΝΟΜΑΘΕΙΑΣ. Οδηγίες για τη διενέργεια των εξετάσεων. Θεσσαλονίκη ΥΠΟΥΡΓΕΙΟ ΕΘΝΙΚΗΣ ΠΑΙΔ ΕΙΑΣ ΚΑΙ ΘΡΗΣΚΕΥΜΑΤΩΝ ΚΕΝΤΡΟ ΕΛΛΗΝΙΚΗΣ ΓΛΩΣΣΑΣ ΠΙΣΤΟΠΟΙΗΤΙΚΟ ΕΠΑΡΚΕΙΑΣ ΤΗΣ ΕΛΛΗΝΟΜΑΘΕΙΑΣ Οδηγίες για τη διενέργεια των εξετάσεων Θεσσαλονίκη ΕΞΕΤΑΣΤΙΚΟ ΚΕΝΤΡΟ ΠΡΑΓΑΣ - κωδικός αριθμός

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ.

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ Εισαγωγή στη MySQL Νικόλαος Ζ. Ζάχαρης Τι είναι η MySql Είναι ένα Σχεσιακό Σύστημα Διαχείρισης

Διαβάστε περισσότερα

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

. Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Μάθημα Βασικές Έννοιες - Ανάλυση Απαιτήσεων .. Εργαστήριο Βάσεων Δεδομένων Εισαγωγικό Μάθημα Βασικές Έννοιες - . Ύλη Εργαστηρίου ΒΔ Ύλη - 4 Ενότητες.1 - Σχεδιασμός Βάσης Δεδομένων.2 Δημιουργία Βάσης Δεδομένων Δημιουργία Πινάκων Εισαγωγή/Ανανέωση/Διαγραφή

Διαβάστε περισσότερα

Σχεδιασμός Βάσεων Δεδομένων

Σχεδιασμός Βάσεων Δεδομένων Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων Σχεδιασμός Βάσεων Δεδομένων Εργαστήριο 4 Δρ. Βασιλική Κούφη Περιεχόμενα Υλοποίηση Βάσεως Δεδομένων Εκτέλεση ερωτημάτων SQL στην Βάση Δεδομένων BHMA 1. Σχεδιασμός

Διαβάστε περισσότερα

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

Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων Εργαστήριο Βάσεων Δεδομένων Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων Τρόπος Διεξαγωγής #1 Ύλη (4 Ενότητες) 1. Ανάλυση Απαιτήσεων -Σχεδιασμός Βάσης Δεδομένων 2. Δημιουργία βάσης a) Create

Διαβάστε περισσότερα

Τεχνικές ταξινόµησης αποτελεσµάτων µηχανών αναζήτησης µε βάση την ιστορία του χρήστη

Τεχνικές ταξινόµησης αποτελεσµάτων µηχανών αναζήτησης µε βάση την ιστορία του χρήστη Τεχνικές ταξινόµησης αποτελεσµάτων µηχανών αναζήτησης µε βάση την ιστορία του χρήστη Όνοµα: Νικολαΐδης Αντώνιος Επιβλέπων: Τ. Σελλής Περίληψη ιπλωµατικής Εργασίας Συνεπιβλέποντες: Θ. αλαµάγκας, Γ. Γιαννόπουλος

Διαβάστε περισσότερα

Διαχείριση Πολιτισμικών Δεδομένων

Διαχείριση Πολιτισμικών Δεδομένων Διαχείριση Πολιτισμικών Δεδομένων Μάθημα 1 Εισαγωγή στις Βάσεις Δεδομένων Τζανέτος Πομόνης ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Συντήρησης Πολιτισμικής Κληρονομιάς Τι είναι οι Βάσεις

Διαβάστε περισσότερα

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

Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων Εργαστήριο Βάσεων Δεδομένων Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων Βάσεις Δεδομένων - Γενικά Ορισμός: Βάση Δεδομένων (ΒΔ) είναι μια συλλογή από σχετιζόμενα αντικείμενα. Τα περιεχόμενα

Διαβάστε περισσότερα

Αρχιτεκτονική του πληροφοριακού συστήµατος Cardisoft Γραµµατεία 2003 ιαχείριση Προσωπικού

Αρχιτεκτονική του πληροφοριακού συστήµατος Cardisoft Γραµµατεία 2003 ιαχείριση Προσωπικού Αρχιτεκτονική του πληροφοριακού συστήµατος Cardisoft Γραµµατεία 2003 ιαχείριση Προσωπικού Γενικά Η αρχιτεκτονική ανάπτυξης τους πληροφοριακού συστήµατος Γραµµατεία 2000 υποσύστηµα διαχείρισης προσωπικού

Διαβάστε περισσότερα

Browsers. Λειτουργικότητα και Παραμετροποίηση

Browsers. Λειτουργικότητα και Παραμετροποίηση Browsers Λειτουργικότητα και Παραμετροποίηση 1 Πίνακας περιεχομένων Γενική περιγραφή... 3 Γενικά... 3 Ποιο αναλυτικά τα μέρη ενός browser... 4 Φίλτρα αναζήτησης... 4 Σενάρια αναζήτησης... 4 Όψεις εμφάνισης

Διαβάστε περισσότερα

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

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Εισαγωγή στην Επεξεργασία Ερωτήσεων 1 Επεξεργασία Ερωτήσεων Θα δούμε την «πορεία» μιας SQL ερώτησης (πως εκτελείται) Ερώτηση SQL Ερώτηση ΣΒΔ Αποτέλεσμα 2 Βήματα Επεξεργασίας Τα βασικά βήματα στην επεξεργασία

Διαβάστε περισσότερα

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

ΣΥΓΚΡΙΤΙΚΗ ΜΕΛΕΤΗ ΤΕΧΝΟΛΟΓΙΩΝ ΔΙΑΔΙΚΤΥΑΚΩΝ ΥΠΗΡΕΣΙΩΝ ΚΑΙ ΑΞΙΟΛΟΓΗΣΗ ΤΗΣ ΤΕΧΝΟΛΟΓΙΑΣ REST ΠΛΑΣΤΑΡΑΣ ΕΥΡΙΠΙΔΗΣ ΣΥΓΚΡΙΤΙΚΗ ΜΕΛΕΤΗ ΤΕΧΝΟΛΟΓΙΩΝ ΔΙΑΔΙΚΤΥΑΚΩΝ ΥΠΗΡΕΣΙΩΝ ΚΑΙ ΑΞΙΟΛΟΓΗΣΗ ΤΗΣ ΤΕΧΝΟΛΟΓΙΑΣ REST ΠΛΑΣΤΑΡΑΣ ΕΥΡΙΠΙΔΗΣ ΘΕΣΣΑΛΟΝΙΚΗ, 2016 ΕΙΣΑΓΩΓΗ Μια διαδικτυακή υπηρεσία μπορεί να περιγραφεί απλά σαν μια οποιαδήποτε

Διαβάστε περισσότερα

ÈÛ ÁˆÁ ÛÙÈ μ ÛÂÈ Â ÔÌ ÓˆÓ

ÈÛ ÁˆÁ ÛÙÈ μ ÛÂÈ Â ÔÌ ÓˆÓ ΕΝΟΤΗΤΑ 1.1 ÈÛ ÁˆÁ ÛÙÈ μ ÛÂÈ Â ÔÌ ÓˆÓ ΔΙΔΑΚΤΙΚΟI ΣΤOΧΟΙ Στο τέλος της ενότητας αυτής πρέπει να μπορείτε: να επεξηγείτε τις έννοιες «βάση δεδομένων» και «σύστημα διαχείρισης βάσεων δεδομένων» να αναλύετε

Διαβάστε περισσότερα

Ανοιχτά Δημ όσια Δεδομ και Εθνική Πληροφοριακή Πολιτική

Ανοιχτά Δημ όσια Δεδομ και Εθνική Πληροφοριακή Πολιτική Ανοιχτά Δημ όσια Δεδομ ένα και Εθνική Πληροφοριακή Πολιτική Δ. μ ρ Πρόδρο ος Τσιαβός London School of Economics and Political Science αντί εισαγωγής 0 Πετάμ ε στα σύννεφα... CC v.2.0 BY 2008 kevindooley

Διαβάστε περισσότερα

Εαρινό Εξάμηνο

Εαρινό Εξάμηνο Τμήμα Μηχανικών Η/Υ και Πληροϕορικής Πολυτεχνική Σχολή, Πανεπιστήμιο Πατρών Εαρινό Εξάμηνο 2011-2012 Table of contents 1 Table of contents 1 2 Table of contents 1 2 3 Table of contents 1 2 3 4 Table of

Διαβάστε περισσότερα

Εισαγωγή στην. Εισαγωγή Σ Β. Αρχεία ευρετηρίου Κατάλογος. συστήματος. Αρχεία δεδομένων

Εισαγωγή στην. Εισαγωγή Σ Β. Αρχεία ευρετηρίου Κατάλογος. συστήματος. Αρχεία δεδομένων Εισαγωγή στην Επεξεργασία Ερωτήσεων 1 Εισαγωγή Σ Β Σύνολο από προγράμματα για τη διαχείριση της Β Αρχεία ευρετηρίου Κατάλογος ΒΑΣΗ Ε ΟΜΕΝΩΝ Αρχεία δεδομένων συστήματος Σύστημα Βάσεων εδομένων (ΣΒ ) 2 :

Διαβάστε περισσότερα

ΘΕΜΑΤΑ ΔΙΠΛΩΜΑΤΙΚΩΝ ΕΡΓΑΣΙΩΝ Εργ. Συστημάτων Βάσεων Γνώσεων & Δεδομένων CONTEXT AWARE ΣΥΣΤΗΜΑΤΑ ΔΙΑΧΕΙΡΙΣΗΣ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ ΕΙΣΑΓΩΓΙΚΟ ΣΗΜΕΙΩΜΑ

ΘΕΜΑΤΑ ΔΙΠΛΩΜΑΤΙΚΩΝ ΕΡΓΑΣΙΩΝ Εργ. Συστημάτων Βάσεων Γνώσεων & Δεδομένων CONTEXT AWARE ΣΥΣΤΗΜΑΤΑ ΔΙΑΧΕΙΡΙΣΗΣ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ ΕΙΣΑΓΩΓΙΚΟ ΣΗΜΕΙΩΜΑ CONTEXT AWARE ΣΥΣΤΗΜΑΤΑ ΔΙΑΧΕΙΡΙΣΗΣ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ ΕΙΣΑΓΩΓΙΚΟ ΣΗΜΕΙΩΜΑ Με τις συγκεκριμένες διπλωματικές εργασίες, ο στόχος μας είναι να κατασκευάσουμε το πρώτο ερευνητικό Σχεσιακό Σύστημα Διαχείρισης

Διαβάστε περισσότερα

Εξωτερική Αναζήτηση. Ιεραρχία Μνήμης Υπολογιστή. Εξωτερική Μνήμη. Εσωτερική Μνήμη. Κρυφή Μνήμη (Cache) Καταχωρητές (Registers) μεγαλύτερη ταχύτητα

Εξωτερική Αναζήτηση. Ιεραρχία Μνήμης Υπολογιστή. Εξωτερική Μνήμη. Εσωτερική Μνήμη. Κρυφή Μνήμη (Cache) Καταχωρητές (Registers) μεγαλύτερη ταχύτητα Ιεραρχία Μνήμης Υπολογιστή Εξωτερική Μνήμη Εσωτερική Μνήμη Κρυφή Μνήμη (Cache) μεγαλύτερη χωρητικότητα Καταχωρητές (Registers) Κεντρική Μονάδα (CPU) μεγαλύτερη ταχύτητα Πολλές σημαντικές εφαρμογές διαχειρίζονται

Διαβάστε περισσότερα

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

Βάσεις Δεδομένων. Εισαγωγή Ανάλυση Απαιτήσεων. Φροντιστήριο 1 ο Βάσεις Δεδομένων Εισαγωγή Ανάλυση Απαιτήσεων Φροντιστήριο 1 ο 16-10-2008 Εισαγωγή - Ορισμοί Βάση Δεδομένων είναι μία συλλογή από σχετιζόμενα αντικείμενα Ένα σύστημα διαχείρισης βάσεων δεδομένων (ΣΔΒΔ)

Διαβάστε περισσότερα

Πληροφοριακά Συστήµατα

Πληροφοριακά Συστήµατα Nell Dale John Lewis Chapter 12 Πληροφοριακά Συστήµατα Στόχοι Ενότητας Η κατανόηση της έννοιας «Πληροφοριακό Σύστηµα» Επεξήγηση της οργάνωσης λογιστικών φύλλων (spreadsheets) Επεξήγηση της ανάλυσης δεδοµένων

Διαβάστε περισσότερα

ALERTS ή EDA (Event Driven Actions)

ALERTS ή EDA (Event Driven Actions) ALERTS ή EDA (Event Driven Actions) Το ALERTS είναι ένα ευέλικτο εργαλείο ανοιχτού σχεδιασµού που αναπτύχθηκε µε σκοπό να καλύψει ιδιαίτερες απαιτήσεις διαµόρφωσης ή επέκτασης της λειτουργικότητας όλων

Διαβάστε περισσότερα

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

Βάσεις Δεδομένων. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Βάσεις Δεδομένων Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Στέργιος Παλαμάς, Υλικό Μαθήματος «Βάσεις Δεδομένων», 2015-2016 Κεφάλαιο 2: Περιβάλλον Βάσεων Δεδομένων Μοντέλα Δεδομένων 2.1

Διαβάστε περισσότερα

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ Ανάπτυξη μιας προσαρμοστικής πολιτικής αντικατάστασης αρχείων, με χρήση

Διαβάστε περισσότερα

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

Εισαγωγή στην Πληροφορική Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Εισαγωγή στην Πληροφορική Ενότητα 8: Λειτουργικά Συστήματα Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά

Διαβάστε περισσότερα

Διαχείριση Βάσης Δεδομένων (dbadmin)

Διαχείριση Βάσης Δεδομένων (dbadmin) Published on PRISMA Win Help - Megasoft (http://docs.megasoft.gr) Home > Εμπορική Διαχείριση > Διαχείριση Βάσης Δεδομένων (dbadmin) Διαχείριση Βάσης Δεδομένων (dbadmin) Μέσα από τη διαχείριση βάσης δεδομένων

Διαβάστε περισσότερα

Σχεσιακή Άλγεβρα και Σχεσιακός Λογισμός. Σχεσιακή Άλγεβρα Σχεσιακός Λογισμός

Σχεσιακή Άλγεβρα και Σχεσιακός Λογισμός. Σχεσιακή Άλγεβρα Σχεσιακός Λογισμός 7 Σχεσιακή Άλγεβρα και Σχεσιακός Λογισμός Σχεσιακή Άλγεβρα Σχεσιακός Λογισμός Σχεσιακή Άλγεβρα H Σχεσιακή Άλγεβρα (relational algebra) ορίζει ένα σύνολο πράξεων που εφαρμόζονται σε μία ή περισσότερες σχέσεις

Διαβάστε περισσότερα

Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL

Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL Εισαγωγή Μοντελοποίηση Στα προηγούμενα μαθήματα: Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL Εννοιολογικός Σχεδιασμός Βάσεων εδομένων (με χρήση του Μοντέλου Οντοτήτων/Συσχετίσεων) Λογικός

Διαβάστε περισσότερα

Βάσεις δεδομένων και Microsoft Access

Βάσεις δεδομένων και Microsoft Access Περιεχόμενα Κεφάλαιο 1 Βάσεις δεδομένων και Microsoft Access... 7 Κεφάλαιο 2 Microsoft Access 2010... 16 Κεφάλαιο 3 Σχεδιασμός βάσης δεδομένων και δημιουργία πίνακα... 27 Κεφάλαιο 4 Προβολές πινάκων και

Διαβάστε περισσότερα

Διαχείριση Ειδοποιήσεων με Κινητές Συσκευές

Διαχείριση Ειδοποιήσεων με Κινητές Συσκευές Διαχείριση Ειδοποιήσεων με Κινητές Συσκευές Λαμπαδαρίδης Αντώνιος el04148@mail.ntua.gr Διπλωματική εργασία στο Εργαστήριο Συστημάτων Βάσεων Γνώσεων και Δεδομένων Επιβλέπων: Καθηγητής Τ. Σελλής Περίληψη

Διαβάστε περισσότερα

ΗΥ562 Προχωρημένα Θέματα Βάσεων Δεδομένων Efficient Query Evaluation over Temporally Correlated Probabilistic Streams

ΗΥ562 Προχωρημένα Θέματα Βάσεων Δεδομένων Efficient Query Evaluation over Temporally Correlated Probabilistic Streams ΗΥ562 Προχωρημένα Θέματα Βάσεων Δεδομένων Efficient Query Evaluation over Temporally Correlated Probabilistic Streams Αλέκα Σεληνιωτάκη Ηράκλειο, 26/06/12 aseliniotaki@csd.uoc.gr ΑΜ: 703 1. Περίληψη Συνεισφοράς

Διαβάστε περισσότερα

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

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Εισαγωγή στην Επεξεργασία Ερωτήσεων Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 1 Επεξεργασία Ερωτήσεων Θα δούμε την «πορεία» μιας SQL ερώτησης (πως εκτελείται) Ερώτηση SQL Ερώτηση ΣΒΔ Αποτέλεσμα Βάσεις

Διαβάστε περισσότερα

Βάσεις Δεδομένων Ενότητα 1

Βάσεις Δεδομένων Ενότητα 1 ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ενότητα 1: Εισαγωγή στις Ιωάννης Μανωλόπουλος, Καθηγητής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative

Διαβάστε περισσότερα

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Δεντρικά Ευρετήρια 1 Δέντρα Αναζήτησης Ένα δέντρο αναζήτησης (search tree) τάξεως p είναι ένα δέντρο τέτοιο ώστε κάθε κόμβος του περιέχει το πολύ p - 1 τιμές αναζήτησης και ρ δείκτες ως εξής P 1 K 1 P

Διαβάστε περισσότερα

Επεξεργασία Ερωτήσεων

Επεξεργασία Ερωτήσεων Εισαγωγή στην Επεξεργασία Ερωτήσεων 1 Εισαγωγή ΣΔΒΔ Σύνολο από προγράµµατα για τη διαχείριση της ΒΔ Αρχεία ευρετηρίου Κατάλογος ΒΑΣΗ ΔΕΔΟΜΕΝΩΝ Αρχεία δεδοµένων συστήµατος Σύστηµα Βάσεων Δεδοµένων (ΣΒΔ)

Διαβάστε περισσότερα

Περίληψη ιπλωµατικής Εργασίας

Περίληψη ιπλωµατικής Εργασίας Περίληψη ιπλωµατικής Εργασίας Θέµα: Εναλλακτικές Τεχνικές Εντοπισµού Θέσης Όνοµα: Κατερίνα Σπόντου Επιβλέπων: Ιωάννης Βασιλείου Συν-επιβλέπων: Σπύρος Αθανασίου 1. Αντικείµενο της διπλωµατικής Ο εντοπισµός

Διαβάστε περισσότερα

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Δεντρικά Ευρετήρια Ευαγγελία Πιτουρά 1 Δέντρα Αναζήτησης Ένα δέντρο αναζήτησης (search tree) τάξεως p είναι ένα δέντρο τέτοιο ώστε κάθε κόμβος του περιέχει το πολύ p - 1 τιμές αναζήτησης και ρ δείκτες

Διαβάστε περισσότερα

Τεχνολογία Πολιτισμικού Λογισμικού

Τεχνολογία Πολιτισμικού Λογισμικού Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Τεχνολογία Πολιτισμικού Λογισμικού Ενότητα 10: Γλώσσα Ερωτημάτων SQL Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται

Διαβάστε περισσότερα

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

1 Συστήματα Αυτοματισμού Βιβλιοθηκών 1 Συστήματα Αυτοματισμού Βιβλιοθηκών Τα Συστήματα Αυτοματισμού Βιβλιοθηκών χρησιμοποιούνται για τη διαχείριση καταχωρήσεων βιβλιοθηκών. Τα περιεχόμενα των βιβλιοθηκών αυτών είναι έντυπα έγγραφα, όπως βιβλία

Διαβάστε περισσότερα

Geographic Information System(GIS)

Geographic Information System(GIS) Geographic Information System(GIS) Κάθε πληροφοριακό σύστημα που ολοκληρώνει, αποθηκεύει, επεξεργάζεται, αναλύει, διαμοιράζει και απεικονίζει γεωγραφική πληροφορία. Βασικό του γνώρισμα ότι χρησιμοποιεί

Διαβάστε περισσότερα

Επεξεργασία Ερωτήσεων

Επεξεργασία Ερωτήσεων Εισαγωγή Σ Β Σύνολο από προγράμματα για τη διαχείριση της Β Επεξεργασία Ερωτήσεων Αρχεία ευρετηρίου Κατάλογος συστήματος Αρχεία δεδομένων ΒΑΣΗ Ε ΟΜΕΝΩΝ Σύστημα Βάσεων εδομένων (ΣΒ ) Βάσεις Δεδομένων 2007-2008

Διαβάστε περισσότερα

ΕΡΓΑΣΙΑ. (στο μάθημα: Τεχνολογίες Εφαρμογών Διαδικτύου του Η εξαμήνου σπουδών του Τμήματος Πληροφορικής & Τηλ/νιών)

ΕΡΓΑΣΙΑ. (στο μάθημα: Τεχνολογίες Εφαρμογών Διαδικτύου του Η εξαμήνου σπουδών του Τμήματος Πληροφορικής & Τηλ/νιών) ΕΡΓΑΣΙΑ (στο μάθημα: Τεχνολογίες Εφαρμογών Διαδικτύου του Η εξαμήνου σπουδών του Τμήματος Πληροφορικής & Τηλ/νιών) Τίτλος: Εφαρμογή Διαδικτύου Ηλεκτρονικού Καταστήματος Ζητούμενο: Να αναπτυχθεί web εφαρμογή,

Διαβάστε περισσότερα

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

H SQL είναι η γλώσσα για όλα τα εμπορικά σχεσιακά συστήματα διαχείρισης βάσεων δεδομένων Η γλώσσα SQL H SQL είναι η γλώσσα για όλα τα εμπορικά σχεσιακά συστήματα διαχείρισης βάσεων δεδομένων H SQL έχει διάφορα τμήματα: Γλώσσα Ορισμού Δεδομένων (ΓΟΔ) Γλώσσα Χειρισμού Δεδομένων (ΓΧΔ) Ενσωματωμένη

Διαβάστε περισσότερα

Κεφάλαιο 5. Δημιουργία φορμών για τη βάση δεδομένων DVDclub

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

Διαβάστε περισσότερα

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Δεντρικά Ευρετήρια Βάσεις Δεδομένων 2017-2018 1 Δέντρα Αναζήτησης Ένα δέντρο αναζήτησης (search tree) τάξεως p είναι ένα δέντρο τέτοιο ώστε κάθε κόμβος του περιέχει το πολύ p - 1 τιμές αναζήτησης και ρ

Διαβάστε περισσότερα

Εργασία «Διαχείριση Δικτύων» Ιούνιος 2014, Θεσ/νίκη

Εργασία «Διαχείριση Δικτύων» Ιούνιος 2014, Θεσ/νίκη Εργασία «Διαχείριση Δικτύων» Ιούνιος 2014, Θεσ/νίκη 01 Εισαγωγή Μια απλή και γρήγορη εισαγωγή Το Splunk > είναι ένα πρόγραμμα το οποίο πρωτοεμφανίστηκε στην αγορά το 2003 και αποτελεί ένα πρόγραμμα εξόρυξης

Διαβάστε περισσότερα

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΙΟΙΚΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Ηλεκτρονικό Εμπόριο

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΙΟΙΚΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Ηλεκτρονικό Εμπόριο ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΙΟΙΚΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ Ηλεκτρονικό Εμπόριο Αναπτύσσοντας ένα Ηλεκτρονικό Κατάστημα Ηλεκτρονικό Εμπόριο Λειτουργικότητα Εφαρμογής Κατάλογος προϊόντων Καλάθι

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Ορισµοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL

Ορισµοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL Ορισµοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL Βάσεις εδοµένων 2011-2012 Ευαγγελία Πιτουρά 1 Εισαγωγή Μοντελοποίηση Στα προηγούµενα µαθήµατα: Εννοιολογικός Σχεδιασµός Βάσεων Δεδοµένων (µε

Διαβάστε περισσότερα

Υποερωτήματα στην SQL Αθανάσιος Σταυρακούδης http://stavrakoudis.econ.uoi.gr 1 / 31 Η ανάγκη για υποερώτημα Ποιος υπάλληλος παίρνει το μεγαλύτερο μισθό; Αν ξέραμε το μεγαλύτερο μισθό, πχ 2000, θα γράφαμε:

Διαβάστε περισσότερα

ΚΑΡΑΜΟΛΕΓΚΟΣ Α. Ε. Διαγωνισμ ος «Cook λοι»

ΚΑΡΑΜΟΛΕΓΚΟΣ Α. Ε. Διαγωνισμ ος «Cook λοι» ΟΡΟΙ ΣΥΜΜΕΤΟΧΗΣ ΑΡΤΟΒΙΟΜΗΧΑΝΙΑ ΚΑΡΑΜΟΛΕΓΚΟΣ Α. Ε. Διαγωνισμ ος «Cook λοι» 1. Η εταιρεια Αρτοβιομ ηχανια Καραμ ολεγκος Α. Ε. ( εφεξης καλουμ ενη Δ ιοργανωτης/ Δ ιοργανωτρια ), διοργανωνει ηλεκτρονικα μ

Διαβάστε περισσότερα

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΖΩΓΡΑΦΟΥ 157 73, ΑΘΗΝΑ ΕΒΓ - ΙΠΛ-2003-1 20 Ιανουαρίου 2003 Σύγκριση Αλγορίθµων

Διαβάστε περισσότερα

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Δεντρικά Ευρετήρια Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 1 Δέντρα Αναζήτησης Ένα δέντρο αναζήτησης (search tree) τάξεως p είναι ένα δέντρο τέτοιο ώστε κάθε κόμβος του περιέχει το πολύ p - 1 τιμές

Διαβάστε περισσότερα

Επεξεργασία Ερωτήσεων

Επεξεργασία Ερωτήσεων Εισαγωγή Επεξεργασία Ερωτήσεων Σ Β Βάση εδομένων Η ομή ενός ΣΒ Βάσεις Δεδομένων 2006-2007 Ευαγγελία Πιτουρά 1 Βάσεις Δεδομένων 2006-2007 Ευαγγελία Πιτουρά 2 Εισαγωγή Εισαγωγή ΜΕΡΟΣ 1 (Χρήση Σ Β ) Γενική

Διαβάστε περισσότερα

Πληροφορική 2. Δομές δεδομένων και αρχείων

Πληροφορική 2. Δομές δεδομένων και αρχείων Πληροφορική 2 Δομές δεδομένων και αρχείων 1 2 Δομή Δεδομένων (data structure) Δομή δεδομένων είναι μια συλλογή δεδομένων που έχουν μεταξύ τους μια συγκεκριμένη σχέση Παραδείγματα δομών δεδομένων Πίνακες

Διαβάστε περισσότερα

Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL

Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL Βάσεις Δεδομένων 2009-2010 Ευαγγελία Πιτουρά 1 Εισαγωγή Μοντελοποίηση Στα προηγούμενα μαθήματα: Εννοιολογικός Σχεδιασμός Βάσεων εδομένων (με

Διαβάστε περισσότερα

PROJECT ΕΡΓΑΣΤΗΡΙΩΝ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ Ι. Τμήμα Μηχανικών Πληροφορικής Τ.Ε.

PROJECT ΕΡΓΑΣΤΗΡΙΩΝ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ Ι. Τμήμα Μηχανικών Πληροφορικής Τ.Ε. Παραδοτέα 1. Το αρχείο.mdb της βάσης δεδομένων σας σε ACCESS 2. Ένα CD που θα αναγράφει το ονοματεπώνυμο του σπουδαστή και το ΑΕΜ και θα περιέχει το αρχείο.mdb της βάσης δεδομένων καθώς και το εγχειρίδιο

Διαβάστε περισσότερα

Ακολουθεί η πλήρης ανάλυση της παραµετροποίησης χωρισµένη στις αντίστοιχες ενότητες µε αυτές του module Customization Tools. :

Ακολουθεί η πλήρης ανάλυση της παραµετροποίησης χωρισµένη στις αντίστοιχες ενότητες µε αυτές του module Customization Tools. : XLINE E.R.P. CUSTOMIZATION TOOLS Παράδειγµα Το παρακάτω κείµενο αποτελεί παράδειγµα παραµετροποίησης του xline E.R.P. Για την καλύτερη κατανόηση και υλοποίηση του παραδείγµατος θα πρέπει πρώτα να διαβάσετε

Διαβάστε περισσότερα

10 η Διάλεξη Python Βάσεις δεδομένων στη python

10 η Διάλεξη Python Βάσεις δεδομένων στη python 10 η Διάλεξη Python Βάσεις δεδομένων στη python ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Η standard διεπαφη της python για βάσεις δεδομένων βασίζεται στο DB-API Python Database API υποστηρίζει ένα ευρύ φάσμα βάσεων δεδομένων

Διαβάστε περισσότερα

Μάθημα 8: Επικοινωνία Συσκευών με τον Επεξεργαστή

Μάθημα 8: Επικοινωνία Συσκευών με τον Επεξεργαστή Μάθημα 8: Επικοινωνία Συσκευών με τον Επεξεργαστή 8.1 Τακτική σάρωση (Polling) Ας υποθέσουμε ότι έχουμε ένα πληκτρολόγιο συνδεδεμένο σε ένα υπολογιστικό σύστημα. Το πληκτρολόγιο είναι μια μονάδα εισόδου.

Διαβάστε περισσότερα

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

Τίτλος Πακέτου Certified Computer Expert-ACTA Κωδικός Πακέτου ACTA - CCE - 002 Τίτλος Πακέτου Certified Computer Expert-ACTA Εκπαιδευτικές Ενότητες Επεξεργασία Κειμένου - Word Δημιουργία Εγγράφου Προχωρημένες τεχνικές επεξεργασίας κειμένου & αρχείων

Διαβάστε περισσότερα

Το εσωτερικό ενός Σ Β

Το εσωτερικό ενός Σ Β Επεξεργασία Ερωτήσεων 1 Εισαγωγή ΜΕΡΟΣ 1 Γενική Εικόνα του Μαθήµατος Μοντελοποίηση (Μοντέλο Ο/Σ, Σχεσιακό, Λογικός Σχεδιασµός) Προγραµµατισµός (Σχεσιακή Άλγεβρα, SQL) ηµιουργία/κατασκευή Εισαγωγή εδοµένων

Διαβάστε περισσότερα

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ. Επιλέγει όλες τις πλειάδες, από μια σχέση R, που ικανοποιούν τη συνθήκη επιλογής.

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ. Επιλέγει όλες τις πλειάδες, από μια σχέση R, που ικανοποιούν τη συνθήκη επιλογής. ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Χειμερινό Εξάμηνο 2012 SQL Structured Query Language Δρ. Βαγγελιώ Καβακλή ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ, ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ 1 Πράξεις της σχεσιακής άλγεβρας ΠΡΑΞΗ ΣΚΟΠΟΣ

Διαβάστε περισσότερα

Περιεχόµενα 1. Εγκατάσταση 2. Εισαγωγή 3. Σύνδεση 4. Ρυθµίσεις 2.1 Περιοχή εργασιών και πλοήγησης 2.2 Περιοχή απεικόνισης "Λεπτοµέρειες" 2.3 Περιοχή απεικόνισης "Στατιστικά" 4.1 Προφίλ 4.2 ίκτυο 4.2.1

Διαβάστε περισσότερα

Οργάνωση Βάσεων Βιοϊατρικών Δεδομένων Εξόρυξη Γνώσης Βιοϊατρικών Δεδομένων. Σεμινάριο 7: Αλγόριθμοι για επεξεργασία ερωτήσεων και βελτιστοποίηση

Οργάνωση Βάσεων Βιοϊατρικών Δεδομένων Εξόρυξη Γνώσης Βιοϊατρικών Δεδομένων. Σεμινάριο 7: Αλγόριθμοι για επεξεργασία ερωτήσεων και βελτιστοποίηση Οργάνωση Βάσεων Βιοϊατρικών Δεδομένων Εξόρυξη Γνώσης Βιοϊατρικών Δεδομένων Σεμινάριο 7: Αλγόριθμοι για επεξεργασία ερωτήσεων και βελτιστοποίηση Ευάγγελος Καρκαλέτσης, Αναστασία Κριθαρά, Γεώργιος Πετάσης

Διαβάστε περισσότερα

Epsilon Net PYLON Platform

Epsilon Net PYLON Platform Epsilon Net PYLON Platform Οδηγίες Εγκατάστασης Top 1 / 31 Περιεχόμενα 1 ΠΡΟΑΠΑΙΤΟΥΜΕΝΑ... 3 2 ΕΓΚΑΤΑΣΤΑΣΗ ΕΦΑΡΜΟΓΗΣ... 5 3 ΕΓΚΑΤΑΣΤΑΣΗ DEMO... 7 4 ΕΓΚΑΤΑΣΤΑΣΗ ΠΡΟΤΥΠΗΣ ΒΑΣΗΣ... 8 4.1 Φόρτωση πρότυπης

Διαβάστε περισσότερα

Διαχείριση Πολιτισμικών Δεδομένων

Διαχείριση Πολιτισμικών Δεδομένων Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Διαχείριση Πολιτισμικών Δεδομένων Ενότητα 6: Εισαγωγή στις Βάσεις Δεδομένων Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και

Διαβάστε περισσότερα

Ηλεκτρονικοί Υπολογιστές II

Ηλεκτρονικοί Υπολογιστές II ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ηλεκτρονικοί Υπολογιστές II Ενημέρωση βάσης δεδομένων με τις εντολές INSERT, DELETE, UPDATE Διδάσκων: Επίκουρος Καθηγητής Αθανάσιος Σταυρακούδης Άδειες

Διαβάστε περισσότερα

Εισαγωγή στα Συστήματα Βάσεων Δεδομένων. Βάσεις Δεδομένων 2014-2015 Ευαγγελία Πιτουρά 1

Εισαγωγή στα Συστήματα Βάσεων Δεδομένων. Βάσεις Δεδομένων 2014-2015 Ευαγγελία Πιτουρά 1 Εισαγωγή στα Συστήματα Βάσεων Δεδομένων Ευαγγελία Πιτουρά 1 Τι θα δούμε σήμερα I. Σύντομη εισαγωγή στις ΒΔ II. Περιγραφή σκοπού και περιεχομένου μαθήματος III. Ιστορία των ΣΔΒΔ IV. Διαδικαστικά θέματα

Διαβάστε περισσότερα

Σύνοψη Προηγούμενου. Πίνακες (Arrays) Πίνακες (Arrays): Βασικές Λειτουργίες. Πίνακες (Arrays) Ορέστης Τελέλης

Σύνοψη Προηγούμενου. Πίνακες (Arrays) Πίνακες (Arrays): Βασικές Λειτουργίες. Πίνακες (Arrays) Ορέστης Τελέλης Σύνοψη Προηγούμενου Πίνακες (Arrays Ορέστης Τελέλης telelis@unipi.gr Τμήμα Ψηφιακών Συστημάτων, Πανεπιστήμιο Πειραιώς Διαδικαστικά θέματα. Aντικείμενο Μαθήματος. Aντικείμενα, Κλάσεις, Μέθοδοι, Μεταβλητές.

Διαβάστε περισσότερα

1 / 87

1 / 87 Τα πρώτα ερωτήματα SQL Αθανάσιος Σταυρακούδης http://stavrakoudis.econ.uoi.gr Άνοιξη 2016 1 / 87 Δυο λόγια για την SQL Υλοποίηση του σχεσιακού μοντέλου δεδομένων του E.F. Codd, αρχικά ως DSl/Alpha, αργότερα

Διαβάστε περισσότερα

Job Analysis & Job Match Report

Job Analysis & Job Match Report Job Analysis & Job Match Report Based on Psychometric Tests and Standards Job Description: universal life Insurance Sales Agents (Job_ID HA_1114) daphne angelidou Wednesday 2nd of February 2011 07:52:41

Διαβάστε περισσότερα

Βάσεις δεδομένων. Π. Φιτσιλής

Βάσεις δεδομένων. Π. Φιτσιλής Βάσεις δεδομένων Π. Φιτσιλής pfitsilis@gmail.com Στόχοι In this chapter, you will learn: Διαφορά data και information Τι είναι database, τα είδη, και πως βοηθούνε στη λήψη αποφάσεων Η σημασία database

Διαβάστε περισσότερα

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΠΡΟΧΩΡΗΜΕΝΑ ΘΕΜΑΤΑ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ ΦΘΙΝΟΠΩΡΟ 2007 Λύση ΑΣΚΗΣΗΣ #2 Τ. Σελλής

Διαβάστε περισσότερα

Εισαγωγή. Γενική Εικόνα του Μαθήµατος. Το εσωτερικό ενός Σ Β. Εισαγωγή. Εισαγωγή Σ Β Σ Β. Αρχεία ευρετηρίου Κατάλογος συστήµατος Αρχεία δεδοµένων

Εισαγωγή. Γενική Εικόνα του Μαθήµατος. Το εσωτερικό ενός Σ Β. Εισαγωγή. Εισαγωγή Σ Β Σ Β. Αρχεία ευρετηρίου Κατάλογος συστήµατος Αρχεία δεδοµένων Βάσεις εδοµένων 2003-2004 Ευαγγελία Πιτουρά 1 ΜΕΡΟΣ 1 Γενική Εικόνα του Μαθήµατος Επεξεργασία Ερωτήσεων Μοντελοποίηση (Μοντέλο Ο/Σ, Σχεσιακό, Λογικός Σχεδιασµός) Προγραµµατισµός (Σχεσιακή Άλγεβρα, SQL)

Διαβάστε περισσότερα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Μεταφραστές Εισαγωγή Διδάσκων: Επικ. Καθ. Γεώργιος Μανής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

Διαβάστε περισσότερα

Επεξεργασία Ερωτήσεων

Επεξεργασία Ερωτήσεων Εισαγωγή Επεξεργασία Ερωτήσεων ΜΕΡΟΣ 1 Γενική Εικόνα του Μαθήματος 1. Μοντελοποίηση (Μοντέλο Ο/Σ, Σχεσιακό, Λογικός Σχεδιασμός) 2. Προγραμματισμός (Σχεσιακή Άλγεβρα, SQL) ημιουργία/κατασκευή Εισαγωγή εδομένων

Διαβάστε περισσότερα

DELETE, UPDATE, INSERT

DELETE, UPDATE, INSERT Ενημέρωση βάσης δεδομένων με SQL DELETE, UPDATE, INSERT Αθανάσιος Σταυρακούδης http://stavrakoudis.econ.uoi.gr astavrak@uoi.gr @AStavrakoudis Άνοιξη 2016 1 / 103 Περιεχόμενα 1 Γενικά για την αποθήκευση

Διαβάστε περισσότερα

Διαχείριση Δεδομένων

Διαχείριση Δεδομένων Διαχείριση Δεδομένων Βαγγελιώ Καβακλή Τμήμα Πολιτισμικής Τεχνολογίας και Επικοινωνίας Πανεπιστήμιο Αιγαίου 1 Εαρινό Εξάμηνο 2012-13 Περιεχόμενο σημερινής διάλεξης Βάσεις Δεδομένων Ορισμοί Παραδείγματα

Διαβάστε περισσότερα

Βασικές Εντολές SQL. Θεωρία & Εντολές SQL. Γραμμή Εντολών MS-DOS (MySQL)

Βασικές Εντολές SQL. Θεωρία & Εντολές SQL. Γραμμή Εντολών MS-DOS (MySQL) Βασικές Εντολές SQL Θεωρία & Εντολές SQL Γραμμή Εντολών MS-DOS (MySQL) Ο καλός σχεδιασμός μιας Β.Δ είναι σημαντικός για την ανάπτυξη μιας εφαρμογής με υψηλή απόδοση. Γι αυτό τον λόγο μια Β.Δ θα πρέπει

Διαβάστε περισσότερα

Εξαγωγή Οικονοµικών Αναφορών (Ισολογισµός, Αποτελέσµατα Χρήσης, Λογαριασµοί Γενικής Εκµετάλλευσης) στην Εφαρµογή Ms Excel

Εξαγωγή Οικονοµικών Αναφορών (Ισολογισµός, Αποτελέσµατα Χρήσης, Λογαριασµοί Γενικής Εκµετάλλευσης) στην Εφαρµογή Ms Excel Εξαγωγή Οικονοµικών Αναφορών (Ισολογισµός, Αποτελέσµατα Χρήσης, Λογαριασµοί Γενικής Εκµετάλλευσης) στην Εφαρµογή Ms Excel Η εφαρµογή σε συνεργασία µε τη Microsoft σας προσφέρει τη δυνατότητα να διαχειρίζεστε

Διαβάστε περισσότερα

Speed-0 WMP: Web and Mobile Platform Software Requirements Specification

Speed-0 WMP: Web and Mobile Platform Software Requirements Specification Speed-0 Web and Mobile Platform Speed-0 WMP: Web and Mobile Platform Software Requirements Specification Version Revision History Date Version Description People 5/4/2012 Αρχικές Προδιαγραφές

Διαβάστε περισσότερα

Εργαστήριο 6 ο 7 ο / Ερωτήματα Ι

Εργαστήριο 6 ο 7 ο / Ερωτήματα Ι Εργαστήριο 6 ο 7 ο / Ερωτήματα Ι Απλά ερωτήματα Επιλογής Ερωτήματα με Ενώσεις πινάκων Ερωτήματα με Παραμετρικά Κριτήρια Ερωτήματα με Υπολογιζόμενα πεδία Απλά ερωτήματα Επιλογής Τα Ερωτήματα μας επιτρέπουν

Διαβάστε περισσότερα

LASERJET ENTERPRISE FLOW MFP. Συνοπτικές οδηγίες χρήσης M525

LASERJET ENTERPRISE FLOW MFP. Συνοπτικές οδηγίες χρήσης M525 LASERJET ENTERPRISE FLOW MFP Συνοπτικές οδηγίες χρήσης 2 M525 Εκτύπωση μιας αποθηκευμένης εργασίας Χρησιμοποιήστε την ακόλουθη διαδικασία για να εκτυπώσετε μια εργασία που είναι αποθηκευμένη στη μνήμη

Διαβάστε περισσότερα

Δομή Ηλεκτρονικού υπολογιστή

Δομή Ηλεκτρονικού υπολογιστή Δομή Ηλεκτρονικού υπολογιστή Η κλασσική δομή του μοντέλου που πρότεινε το 1948 ο Von Neumann Κεντρική Μονάδα Επεξεργασίας Είσοδος Αποθήκη Αποθήκη - Έξοδος Εντολών Δεδομένων Κλασσικό μοντέλο Von Neumann

Διαβάστε περισσότερα

GoNToggle: ΕΞΥΠΝΗ ΜΗΧΑΝΗ ΑΝΑΖΗΤΗΣΗΣ ΜΕ ΧΡΗΣΗ ΟΝΤΟΛΟΓΙΩΝ

GoNToggle: ΕΞΥΠΝΗ ΜΗΧΑΝΗ ΑΝΑΖΗΤΗΣΗΣ ΜΕ ΧΡΗΣΗ ΟΝΤΟΛΟΓΙΩΝ ΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ: GoNToggle: ΕΞΥΠΝΗ ΜΗΧΑΝΗ ΑΝΑΖΗΤΗΣΗΣ ΜΕ ΧΡΗΣΗ ΟΝΤΟΛΟΓΙΩΝ ΣΠΟΥ ΑΣΤΗΣ: Γιαννόπουλος Γεώργιος ΕΠΙΒΛΕΠΩΝ: Καθ. Ι. Βασιλείου ΒΟΗΘΟΙ: Α. ηµητρίου, Θ. αλαµάγκας Γενικά Οι µηχανές αναζήτησης

Διαβάστε περισσότερα

FROM TESTOTA.REGISTRY

FROM TESTOTA.REGISTRY ΟΤΑ Επιχειρησιακή Νοηµοσύνη Ενότητα: Βc1.1.3 Επιχειρησιακή Νοηµοσύνη και Τεχνολογίες της Πληροφορικής και των Επικοινωνιών (BI & IT) Πρακτική Άσκηση (επίπεδο 1): Στόχος της άσκησης είναι η εµβάθυνση στην

Διαβάστε περισσότερα

1 / 97

1 / 97 Τα πρώτα ερωτήματα SQL Αθανάσιος Σταυρακούδης http://stavrakoudis.econ.uoi.gr Άνοιξη 2014 1 / 97 Περιεχόμενα 1 Εισαγωγικά σχόλια και παρατηρήσεις 2 Απλά ερωτήματα προβολής, επιλέγοντας στήλες από ένα πίνακα

Διαβάστε περισσότερα

Πανεπιστήμιο Πειραιώς, Τμήμα Πληροφορικής

Πανεπιστήμιο Πειραιώς, Τμήμα Πληροφορικής Πανεπιστήμιο Πειραιώς, Τμήμα Πληροφορικής Ακαδημαϊκό έτος 2009-10 ΣΥΓΦΡΟΝΑ ΘΔΜΑΤΑ ΒΑΣΔΩΝ ΓΔΓΟΜΔΝΩΝ 1 η ΔΡΓΑΣΙΑ ΔΞΑΜΗΝΟΥ ομάδες των 2-3 ατόμων Εισαγωγή Έστω η βάση δεδομένων μιας επιχείρησης (θα μπορούσε

Διαβάστε περισσότερα

Σχεδιασμός Πληροφοριακών Συστημάτων. Σημειώσεις

Σχεδιασμός Πληροφοριακών Συστημάτων. Σημειώσεις Σχεδιασμός Πληροφοριακών Συστημάτων Σημειώσεις Συμπλήρωμα για τις Εκδόσεις 4 (4.1) και 4.2 των Σημειώσεων Έκδοση 19/2/2011 Μάριος Μάντακας mmantak@gmail.com Διαφορά από την προηγούμενη Έκδοση: Προσθήκη

Διαβάστε περισσότερα

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση Διαφάνεια 16-1

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση Διαφάνεια 16-1 Copyright 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση Διαφάνεια 16-1 Κεφάλαιο 20 Φυσικός Σχεδιασμός Βάσεων Δεδομένων και Ρύθμιση Copyright 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική

Διαβάστε περισσότερα

Εισαγωγή. Διαλέξεις στο μάθημα: Μεταφραστές Γιώργος Μανής

Εισαγωγή. Διαλέξεις στο μάθημα: Μεταφραστές Γιώργος Μανής Εισαγωγή Διαλέξεις στο μάθημα: Μεταφραστές Γιώργος Μανής Μεταγλωττιστής Αρχικό πρόγραμμα (source program) Μεταγλωττιστής Τελικό πρόγραμμα (object program) Διαγνωστικά μηνύματα Μεταγλωττιστής Παίρνει σαν

Διαβάστε περισσότερα

ΟΙΚΟΝΟΜΙΚΗ ΠΡΟΣΦΟΡΑ ΣΧΕ ΙΑΣΗΣ ΚΑΙ ΚΑΤΑΣΚΕΥΗΣ web εφαρµογής - ηλεκτρονικού κατατήµατος για έξυπνα κινητά

ΟΙΚΟΝΟΜΙΚΗ ΠΡΟΣΦΟΡΑ ΣΧΕ ΙΑΣΗΣ ΚΑΙ ΚΑΤΑΣΚΕΥΗΣ web εφαρµογής - ηλεκτρονικού κατατήµατος για έξυπνα κινητά ΟΙΚΟΝΟΜΙΚΗ ΠΡΟΣΦΟΡΑ ΣΧΕ ΙΑΣΗΣ ΚΑΙ ΚΑΤΑΣΚΕΥΗΣ web εφαρµογής - ηλεκτρονικού κατατήµατος για έξυπνα κινητά Για την STUDIO KOSTA BODA ILLUM Χανίων Πέµπτη, 9 Φεβρουαρίου 2012 Για την εταιρεία ACTS : Παπαγεωργίου

Διαβάστε περισσότερα

ΗΥ460 Συστήµατα Διαχείρισης Βάσεων Δεδοµένων Χειµερινό Εξάµηνο 2016 Διδάσκοντες: Βασίλης Χριστοφίδης

ΗΥ460 Συστήµατα Διαχείρισης Βάσεων Δεδοµένων Χειµερινό Εξάµηνο 2016 Διδάσκοντες: Βασίλης Χριστοφίδης ΗΥ460 Συστήµατα Διαχείρισης Βάσεων Δεδοµένων Χειµερινό Εξάµηνο 2016 Διδάσκοντες: Βασίλης Χριστοφίδης 2 η Σειρά Ασκήσεων Ηµεροµηνία Παράδοσης: 14/11/2016 Άσκηση 1 (10 µονάδες) Εξωτερική Ταξινόµηση Θεωρείστε

Διαβάστε περισσότερα

ΗΥ460 Συστήματα Διαχείρισης Βάσεων Δεδομένων Χειμερινό Εξάμηνο 2018 Project

ΗΥ460 Συστήματα Διαχείρισης Βάσεων Δεδομένων Χειμερινό Εξάμηνο 2018 Project ΗΥ460 Συστήματα Διαχείρισης Βάσεων Δεδομένων Χειμερινό Εξάμηνο 2018 Project Δημιουργήστε τους πίνακες (tables.sql) και εισάγετε τα δεδομένα (distributedby.sql 143.153 πλειάδες, movie.sql 193.781 πλειάδες,

Διαβάστε περισσότερα