Χρηματιστηριακές εφαρμογές: π.χ. on-line ανάλυση της κίνησης μετοχών

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

Download "Χρηματιστηριακές εφαρμογές: π.χ. on-line ανάλυση της κίνησης μετοχών"

Transcript

1 Εισαγωγή Τα τελευταία χρόνια αναπτύσσεται ένας σημαντικός αριθμών εφαρμογών που σχετίζονται με τη διαχείριση και την επεξεργασία μιας νέας μορφής πληροφορίας η οποία δεν έχει πλέον στατική μορφή, αλλά αποτελεί μια συνεχή ροή δεδομένων (data stream). Μια ροή δεδομένων ορίζεται ως μια ακολουθία ψηφιακά κωδικοποιημένων σημάτων που αναπαριστούν πληροφορία προς μετάδοση [5]. Πιο συγκεκριμένα μια ροή δεδομένων είναι μια συνεχής ακολουθία δεδομένων που παράγεται με πολύ υψηλό ρυθμό και έχει απεριόριστό όγκο [6],[7]. Ο ρυθμός άφιξης των δεδομένων μπορεί να μεταβάλλεται με τρόπο μη προβλέψιμο. Επιπλέον, τα δεδομένα έχουν μεταβλητά χαρακτηριστικά (όπως ο θόρυβος) και οι εφαρμογές που επεξεργάζονται ροές δεδομένων πρέπει να ανταποκρίνονται σε απαιτήσεις πραγματικού χρόνου και να πραγματοποιούν on-line ανάλυση των πληροφοριών [7]. Τα συστήματα που επεξεργάζονται ροές δεδομένων διαφέρουν από τα παραδοσιακά συστήματα διαχείρισης βάσεων δεδομένων (Database Management Systems - DBMS) και ονομάζονται συστήματα διαχείρισης ροών δεδομένων (Data Stream Management Systems - DSMS). Οι εφαρμογές που βασίζονται σε ροές δεδομένων καλύπτουν ένα ευρύ φάσμα απαιτήσεων και θεματικών περιοχών. Μερικά παραδείγματα τέτοιων εφαρμογών είναι τα εξής [8]: Διαχείριση Δικτύων Μέτρηση απόδοσης δικτύων Παρακολούθηση δικτύου Ανάλυση κίνησης δικτύου Κίνηση IP πακέτων Επιχειρηματικές εφαρμογές Χρηματιστηριακές εφαρμογές: π.χ. on-line ανάλυση της κίνησης μετοχών Μελέτη αποθεμάτων σε πραγματικό χρόνο: εξαγωγή συσχετίσεων, παρόμοιων δεδομένων παρακολούθηση χρονικών μεταβολών Δεδομένα στο Διαδίκτυο

2 Παρακολούθηση των Διαδικτυακών επισκέψεων ιστοσελίδων, του αριθμού επιλογών υπέρ-συνδέσεων, αναζήτηση περιεχομένου, εγγραφή σε web-sites κλπ. Εφαρμογές προστασίας και ασφάλειας από «εισβολές» μέσω Διαδικτύου On-line δημοπρασίες Ανάλυση δοσοληψιών Ροές ειδήσεων Ροές δεδομένων από ειδήσεις γεγονότα σε πραγματικό χρόνο Δίκτυα Αισθητήρων Συνεχόμενα δεδομένα προερχόμενα από ασύρματα δίκτυα αισθητήρων (παρακολούθηση καιρικών συνθηκών, εντοπισμός θέσης, κίνηση σε λεωφόρους, στρατιωτικές εφαρμογές) Τηλεπικοινωνίες Διαχείριση τηλεφωνικών κλήσεων Καθορισμός του αριθμού των σταθμών βάσης που χρησιμοποιήθηκαν κατά τη διάρκεια μιας τηλεφωνικής κλήσης από κινητό τηλέφωνο Εφαρμογές για κινητούς χρηστές με βάση τη θέση τους Επιστημονικά Δεδομένα Ιατρική Αστρονομία 2.2 Συστήματα διαχείρισης ροών δεδομένων Τα παραδοσιακά συστήματα βάσεων δεδομένων χρησιμοποιούνται σε εφαρμογές στις οποίες απαιτείται συνεχής αποθήκευση δεδομένων και πολύπλοκες επερωτήσεις. Μια βάση δεδομένων αποτελείται συνήθως από ένα σύνολο αντικειμένων όπου οι εισαγωγές, οι ενημερώσεις και οι διαγραφές είναι λιγότερο συχνές από τις επερωτήσεις. Οι επερωτήσεις εκτελούνται τη

3 στιγμή που υποβάλλονται και οι απαντήσεις απεικονίζουν την τρέχουσα κατάσταση της βάσης. Επιπλέον, τα συστήματα διαχείρισης βάσεων δεδομένων δεν έχουν προκαθορισμένη «αντίληψη» του χρόνου, διατηρούν αποθηκευμένη την πληροφορία προς επεξεργασία και δεν είναι σε θέση να διαχειριστούν δεδομένα on-line (π.χ. αποθηκευμένα στην κύρια μνήμη και όχι αποθηκευμένα στο σκληρό δίσκο) ή σε σχεδόν πραγματικό χρόνο. Αντιθέτως, η διαχείριση ροών δεδομένων δημιουργεί έναν αριθμό νέων προκλήσεων που σχετίζονται με την προσαρμοζόμενη επεξεργασία πολλαπλών επερωτήσεων, την ανοχή σφαλμάτων, την αρχειοθέτηση και την παροχή απαντήσεων κατά προσέγγιση σε περιπτώσεις υπερφόρτωσης του συστήματος. Την τελευταία πενταετία τα συστήματα διαχείρισης ροών δεδομένων (DSMS) έχουν αναπτυχθεί για την on-line επεξεργασία ροών δεδομένων και την εκτέλεση συνεχών επερωτήσεων σε αυτές. Οι συνεχείς επερωτήσεις αξιολογούν χωρίς διακοπή κάθε νέο στοιχείο που εισέρχεται στο σύστημα. Τυπικές μορφές τελεστών που υποστηρίζονται από τα περισσότερα συστήματα DSMS είναι το φιλτράρισμα, και η απεικόνιση συναθροίσεων (aggregate) και συζεύξεων (join). Η χρήση παραθύρων είναι ιδιαίτερα χρήσιμη για επερωτήσεις συνάθροισης και σύζευξης. Μια σύγκριση των συστημάτων DBMS και DSMS φαίνεται στον Πίνακα 1. [12],[13] Συστήματα DBMS Σταθερές σχέσεις (στατικές, αποθηκευμένες) Ομάδες πλειάδων Στιγμιαίες επερωτήσεις Τυχαία προσπέλαση Απεριόριστος αποθηκευτικός χώρος Συστήματα DSMS Βραχύβιες ροές δεδομένων (απαιτούν on-line ανάλυση) Ακολουθίες πλειάδων Συνεχείς επερωτήσεις (Continuous Queries - CQ) Σειριακή προσπέλαση Περιορισμένη κύρια μνήμη σαν χώρος

4 στο σκληρό δίσκο Μόνο η τρέχουσα κατάσταση είναι σημαντική Δεν προσφέρουν υπηρεσίες πραγματικού χρόνου Σχετικά χαμηλός ρυθμός ενημέρωσης δεδομένων Τα δεδομένα θεωρούνται ακριβή Μετατροπές στα δεδομένα Ακριβείς απαντήσεις στις επερωτήσεις Καθορισμένα σχέδια επερωτήσεων Αυθαίρετη επεξεργασία επερωτήσεων Ο τρόπος πρόσβασης στα δεδομένα καθορίζεται από τον επεξεργαστή επερωτήσεων και τον σχεδιασμό της βάσης δεδομένων για αποθήκευση Και τα παρελθόντα δεδομένα είναι σημαντικά Απαιτήσεις πραγματικού χρόνου Πιθανόν να εμφανιστούν ρυθμοί άφιξης πολλών GB Τα δεδομένα ενδέχεται να μην είναι ακριβή Προσαρτήσεις στα δεδομένα Απαντήσεις κατά προσέγγιση στις επερωτήσεις Προσαρμοζόμενα σχέδια επερωτήσεων Επεξεργασία επερωτήσεων σε ένα πέρασμα Μη προβλέψιμος/μεταβλητός ρυθμός άφιξης δεδομένων και μεταβλητά χαρακτηριστικά Πίνακας 1: Σύγκριση συστημάτων DBMS και DSMS Τα μοναδικά χαρακτηριστικά των ροών δεδομένων και των συνεχών επερωτήσεων υπαγορεύουν τις ακόλουθες απαιτήσεις για τα DSMS: Το μοντέλο δεδομένων και η σημασιολογία των επερωτήσεων πρέπει να επιτρέπουν λειτουργίες βασισμένες στη σειρά (π.χ. οι τελευταίες εκατό

5 τιμές) και τον χρόνο άφιξης των δεδομένων (π.χ. επερωτήσεις με ένα κινούμενο παράθυρο πέντε λεπτών). Η αδυναμία αποθήκευσης μιας ροής δεδομένων στο σύνολό της οδηγεί στη χρήση προσεγγιστικών, περιληπτικών δομών όπως οι συνόψεις (synopses) ή περιλήψεις (digests). Συνεπώς, οι επερωτήσεις σε περιληπτικές δομές δεν μπορούν να επιστρέψουν ακριβείς απαντήσεις. Τα σχέδια επερωτήσεων σε ροές δεδομένων δεν μπορούν να χρησιμοποιήσουν ανασταλτικούς τελεστές (blocking operators) οι οποίοι πρέπει να δεσμεύσουν όλα τα δεδομένα εισόδου πριν παράγουν οποιοδήποτε αποτέλεσμα. Λόγω περιορισμών στην απόδοση και τον αποθηκευτικό χώρο η οπισθοδρόμηση σε μια ροή δεδομένων δεν είναι δυνατή. Οι on-line αλγόριθμοι ροών δεδομένων περιορίζονται σε ένα και μόνο πέρασμα στα δεδομένα. Οι εφαρμογές παρακολούθησης ροών δεδομένων σε πραγματικό χρόνο πρέπει να αντιδρούν γρήγορα σε ασυνήθιστες τιμές δεδομένων. Οι μακροπρόθεσμες επερωτήσεις μπορεί να συναντήσουν μεταβολές στις συνθήκες του συστήματος (π.χ. μεταβλητό ρυθμό ροής). Απαιτείται κοινή εκτέλεση πολλών συνεχών επερωτήσεων για τη διασφάλιση της δυνατότητας κλιμάκωσης. Τα προτεινόμενα συστήματα διαχείρισης ροών δεδομένων ακολουθούν την αρχιτεκτονική του Σχήματος 5. Ένας ελεγκτής εισόδου (input monitor) μπορεί να σταθεροποιήσει τους ρυθμούς εισόδου, απορρίπτοντας ενδεχομένως κάποια πακέτα. Τα δεδομένα αποθηκεύονται σε τρία τμήματα: στον προσωρινό χώρο αποθήκευσης εργασίας (working storage) (π.χ. για επερωτήσεις παραθύρων), στο χώρο αποθήκευσης για τις συνόψεις των ροών δεδομένων (summary storage), και στον στατικό χώρο αποθήκευσης (static storage) για τα μετα-δεδομένα (όπως π.χ. είναι η φυσική θέση για κάθε πηγή δεδομένων).

6 Σχήμα 5: Αρχιτεκτονική συστήματος διαχείρισης ροών δεδομένων Οι μακροπρόθεσμες επερωτήσεις καταχωρούνται στην αποθήκη επερωτήσεων (query repository) και τοποθετούνται σε ομάδες για κοινή επεξεργασία, ενώ μπορούν επίσης να υποβληθούν και στιγμιαίες επερωτήσεις σχετικά με την τρέχουσα κατάσταση της ροής. Ο επεξεργαστής επερωτήσεων (query processor) επικοινωνεί με τον ελεγκτή εισόδου και μπορεί να βελτιστοποιήσει εκ νέου το σχεδιασμό των επερωτήσεων ως απάντηση στη μεταβολή των ρυθμών εισόδου των δεδομένων. Τα αποτελέσματα προωθούνται στους χρήστες ή αποθηκεύονται προσωρινά. [12,14] 2.3 Υλοποιημένα συστήματα διαχείρισης ροών δεδομένων Το συνεχώς αυξανόμενο ερευνητικό ενδιαφέρον γύρω από τη διαχείριση και επεξεργασία ροών δεδομένων έχει οδηγήσει στην υλοποίηση ενός αριθμού από συστήματα DSMS από πανεπιστημιακά ιδρύματα και εταιρείες. Τα πιο γνωστά συστήματα διαχείρισης ροών δεδομένων είναι τα εξής [13]: Aurora: Αποτελεί μια συνεργασία των πανεπιστημίων Brandeis, Brown και MIT. Είναι ένα σύστημα για εφαρμογές (πραγματικού χρόνου, αρχειοθέτησης ή συνδυασμού των δύο) παρακολούθησης αισθητήρων και ροών δεδομένων [15].

7 COUGAR: Αναπτύχθηκε στο πανεπιστήμιο Cornell και ακολουθεί μια προσέγγιση κατανεμημένης βάσης δεδομένων για δίκτυα αισθητήρων χρησιμοποιώντας βελτιστοποιήσεις μεταξύ διαφορετικών επιπέδων [16]. GigaScope: Είναι προϊόν έρευνας της εταιρείας AT&T και παρακολουθεί ταχύρυθμες εφαρμογές, ενσωματώνοντας μια βάση δεδομένων για ροές [17]. Hancock: Αναπτύχθηκε στα ερευνητικά εργαστήρια της εταιρείας AT&T και είναι μια γλώσσα βασισμένη στη C που έχει ως σκοπό την εύκολη ανάγνωση, γραφή και διατήρηση προγραμμάτων που χειρίζονται μεγάλες ποσότητες δεδομένων [18]. NiagaraCQ: Είναι το αποτέλεσμα της συνεργασίας των πανεπιστημίων του Wisconsin και του Oregon (OGI). Αποτελεί ένα σύστημα συνεχών επερωτήσεων για βάσεις δεδομένων στο Διαδίκτυο και μπορεί να χρησιμοποιηθεί για την συλλογή, παρακολούθηση και πραγματοποίηση επερωτήσεων σε XML δεδομένα [19]. OpenCQ: Αναπτύχθηκε στο πανεπιστήμιο Georgia Tech και είναι ένα σύστημα συνεχών επερωτήσεων για την παρακολούθηση ροών web περιεχομένου [20]. StatStream: Είναι ένα σύστημα παρακολούθησης πολλαπλών ροών για on-line στατιστική ανάλυση υψηλού ρυθμού, που αναπτύχθηκε στο πανεπιστήμιο της Νέας Υόρκης [21]. STREAM: Αναπτύχθηκε στο πανεπιστήμιο Stanford και αποτελεί ένα σχεσιακό σύστημα διαχείρισης ροών δεδομένων και επεξεργασίας επερωτήσεων [22]. Streaminer: Αποτελεί ερευνητικό πρόγραμμα του πανεπιστημίου του Illinois για την εξόρυξη δεδομένων από ροές. Tapestry: Έχει αναπτυχθεί στο ερευνητικό κέντρο που έχει ιδρύσει η εταιρεία Xerox στο Palo Alto και αποτελεί ένα σύστημα που φιλτράρει την ηλεκτρονική αλληλογραφία χρησιμοποιώντας συνεχείς επερωτήσεις [23].

8 TelegraphCQ: Αποτελεί ένα ερευνητικό πρόγραμμα του πανεπιστημίου του Berkeley και είναι ένα προσαρμοζόμενο σύστημα διαχείρισης ροών δεδομένων και επεξεργασίας συνεχών επερωτήσεων [24]. Tribeca: Έχει αναπτυχθεί στα ερευνητικά εργαστήρια Bellcore και αποτελεί ένα σύστημα διαχείρισης ροών δεδομένων για ανάλυση της κίνησης δικτύων [25]. 2.4 Μοντέλα ροών δεδομένων και παραθύρων Η θεμελιώδης διαφορά ανάμεσα σε ένα κλασσικό σύστημα DBMS και σε ένα σύστημα DSMS είναι το μοντέλο ροών δεδομένων. Σύμφωνα με το συγκεκριμένο μοντέλο τα δεδομένα εισόδου (στο σύνολό τους ή ένα μέρος αυτών), τα οποία πρόκειται να επεξεργαστεί το σύστημα δεν είναι διαθέσιμα για τυχαία προσπέλαση από τον σκληρό δίσκο ή τη μνήμη του. Αντίθετα, όπως φαίνεται και στο Σχήμα 6, φτάνουν υπό τη μορφή μιας ή περισσότερων ροών δεδομένων on-line, παραμένουν για περιορισμένο χρόνο στη μνήμη και το σύστημα DSMS πρέπει να διαχειριστεί τα δεδομένα που αποθηκεύονται στον προσωρινό καταχωρητή (buffer) πριν διαγραφούν από νέα εισερχόμενα στοιχεία. Κατά συνέπεια, η προσπέλαση των δεδομένων είναι σειριακή και τα δεδομένα μπορούν να διαβαστούν μία ή λίγες φορές. Επιπλέον, το σύστημα δεν μπορεί να ελέγξει τη σειρά άφιξης των δεδομένων εντός μιας ροής ή μεταξύ περισσότερων ροών. Όταν ολοκληρωθεί η επεξεργασία ενός στοιχείου της ροής δεδομένων, το σύστημα το απορρίπτει ή το αποθηκεύει. Το στοιχείο δεν μπορεί να ανακτηθεί εύκολα, εκτός αν αποθηκευτεί στη μνήμη του συστήματος, η οποία είναι περιορισμένη σε σχέση με το μέγεθος των ροών δεδομένων [26],[27].

9 Σχήμα 6: Υλοποίηση DBMS και DSMS Εφόσον τα στοιχεία της ροής φτάνουν κατά ριπές, μια ροή δεδομένων μπορεί να μοντελοποιηθεί σαν μια ακολουθία που αποτελείται από λίστες στοιχείων. Κάθε στοιχείο της ροής μπορεί να πάρει τη μορφή σχεσιακής πλειάδας ή στιγμιότυπου ενός αντικειμένου. Σε σχεσιακά μοντέλα (όπως π.χ. το STREAM), τα στοιχεία είναι βραχύβιες πλειάδες που αποθηκεύονται σε εικονικές σχέσεις, πιθανώς διαμοιρασμένες οριζόντια σε απομακρυσμένους κόμβους. Σε μοντέλα που βασίζονται σε αντικείμενα (όπως π.χ. το COUGAR και το Tribeca) οι πηγές και τα στοιχεία μοντελοποιούνται σαν ιεραρχικοί τύποι δεδομένων με συσχετιζόμενες μεθόδους. Τα στοιχεία μιας ροής μπορεί να φτάσουν εκτός σειράς και/ή σε προεπεξεργασμένη μορφή περιγράφοντας ένα υποκείμενο σήμα. Ας θεωρήσουμε στην πιο απλή περίπτωση ένα σήμα a ως μια μονοδιάστατη συνάρτηση a :[0...(N -1)] Z, δηλαδή το πεδίο ορισμού είναι διακριτό και διατεταγμένο και η συνάρτηση το αντιστοιχεί σε μη αρνητικούς ακεραίους. Έχουμε τότε την ακόλουθη λίστα πιθανών μοντέλων:

10 Μοντέλο ταμειακής μηχανής 1 με στοιχεία σε μη διατεταγμένη μορφή (unordered cash register): Στοιχεία από διαφορετικά πεδία ορισμού φτάνουν χωρίς συγκεκριμένη σειρά και χωρίς προεπεξεργασία. Μοντέλο ταμειακής μηχανής με στοιχεία σε διατεταγμένη μορφή (ordered cash register): Μεμονωμένα στοιχεία από διαφορετικά πεδία ορισμού φτάνουν με κάποια γνωστή σειρά χωρίς προεπεξεργασία. Μοντέλο συνάθροισης με στοιχεία σε μη διατεταγμένη μορφή (unordered aggregation): Μεμονωμένα στοιχεία από το ίδιο πεδίο ορισμού έχουν υποστεί προεπεξεργασία, ώστε να φτάνει τελικά μόνο ένα στοιχείο ανά πεδίο ορισμού χωρίς συγκεκριμένη σειρά. Μοντέλο συνάθροισης με στοιχεία σε διατεταγμένη μορφή (ordered aggregation): Μεμονωμένα στοιχεία από το ίδιο πεδίο ορισμού έχουν υποστεί προεπεξεργασία, ώστε να φτάνει τελικά μόνο ένα στοιχείο ανά πεδίο ορισμού με κάποια γνωστή σειρά [14]. Για παράδειγμα ένα σήμα είναι η διάρκεια σε λεπτά των εξερχόμενων τηλεφωνικών κλήσεων από ένα τηλεφωνικό αριθμό (το πεδίο ορισμού είναι το σύνολο όλων των τηλεφωνικών αριθμών και το εύρος είναι η συνολική διάρκεια εξερχόμενων κλήσεων σε λεπτά). Η ροή δεδομένων μπορεί να περιγράψει το υποκείμενο σήμα με διαφορετικούς τρόπους ανάλογα με το μοντέλο δεδομένων που έχει επιλεγεί. Στην περίπτωση του μοντέλου ταμειακής μηχανής με στοιχεία σε μη διατεταγμένη μορφή, τα στοιχεία είναι τιμές από το πεδίο ορισμού και η συνάρτηση αναπαριστάται αθροίζοντας ρητά το σύνολο των στοιχείων με την ίδια τιμή στο πεδίο ορισμού. Στο παράδειγμα των τηλεφωνικών κλήσεων η ροή θα μπορούσε να είναι: < ,10>, < ,15>, < ,13>, < ,23>, < ,3>, Το υποκείμενο σήμα θα ήταν: < ,36>, < ,15>, < ,13> 1 Το μοντέλο ταμειακής μηχανής πήρε το όνομα αυτό επειδή το σύνολο των πωλήσεων μέσω μιας ταμειακής μηχανής σε ένα κατάστημα παράγει μια ροή δεδομένων που ανήκει στο συγκεκριμένο μοντέλο.

11 και θα μπορούσε να κατασκευαστεί αθροίζοντας τον συνολικό αριθμό της διάρκειας των εξερχόμενων κλήσεων από τους αριθμούς , , κλπ. Στο μοντέλο συνάθροισης με στοιχεία σε μη διατεταγμένη μορφή τα στοιχεία που φτάνουν είναι οι τιμές εύρους χωρίς συγκεκριμένη σειρά και συνεπώς το σήμα μπορεί να αποδοθεί ρητά. Έτσι, στο παράδειγμα των τηλεφωνικών κλήσεων έχουμε: < ,36>, < ,13>, < ,15> Στο μοντέλο ταμειακής μηχανής με στοιχεία σε διατεταγμένη μορφή η ροή θα έχει την ακόλουθη μορφή: < ,10>, < ,23>, < ,3>, < ,15>, < ,13>, Τέλος, στο μοντέλο συνάθροισης με στοιχεία σε διατεταγμένη μορφή η ροή θα έχει την εξής μορφή: < ,36>, < ,15>, < ,13> Οι ροές δεδομένων από διαφορετικές περιοχές ακολουθούν διαφορετικά μοντέλα. Π.χ. μια χρονική ακολουθία δεδομένων είναι πιθανό να ακολουθεί το μοντέλο συνάθροισης με στοιχεία σε διατεταγμένη μορφή, ενώ η ποσότητα των δεδομένων σε ένα δίκτυο είναι πιθανόν να ακολουθεί το μοντέλο ταμειακής μηχανής με στοιχεία σε μη διατεταγμένη μορφή. Το συγκεκριμένο μοντέλο είναι το πιο γενικό, θέτοντας τις περισσότερες προκλήσεις κατά τον σχεδιασμό αλγορίθμων επεξεργασίας δεδομένων [28]. Σε πολλές περιπτώσεις μόνο ένα τμήμα μιας ροής έχει ενδιαφέρον σε μια δεδομένη χρονική στιγμή, καθιστώντας σημαντικά τα μοντέλα παραθύρων, που μπορούν να κατηγοριοποιηθούν σύμφωνα με τα ακόλουθα τρία κριτήρια: 1. Κατεύθυνση της κίνησης των άκρων του παραθύρου: Δύο σταθερά άκρα ορίζουν ένα σταθερό παράθυρο (fixed window), δύο κινούμενα άκρα ορίζουν ένα ολισθαίνον παράθυρο (sliding window), ενώ ένα σταθερό και ένα κινούμενο άκρο (με κατεύθυνση προς τα εμπρός ή προς τα πίσω) ορίζουν ένα παράθυρο οριοθέτησης (landmark window). Στο σύνολο υπάρχουν εννιά συνδυασμοί που προκύπτουν από τη δυνατότητα για

12 κάθε άκρο να είναι σταθερό ή να κινείται προς μια από τις δύο κατευθύνσεις. 2. Φυσικά έναντι λογικών παραθύρων: Τα φυσικά (physical) ή βασισμένα στον χρόνο (time-based) παράθυρα καθορίζονται με βάση κάποιο χρονικό διάστημα, ενώ τα λογικά (logical) ή αλλιώς παράθυρα βασισμένα στις πλειάδες (count-based ή tuple-based) ορίζονται με βάση τον αριθμό των πλειάδων που περιλαμβάνουν. 3. Διάστημα ενημερώσεων: Υπάρχει η δυνατότητα ενημέρωσης του παραθύρου με την άφιξη κάθε νέας πλειάδας ή στην περίπτωση της ομαδικής επεξεργασίας προκύπτουν τα παράθυρα άλματος (jumping windows). Αν το διάστημα ενημέρωσης είναι μεγαλύτερο από το μέγεθος του παραθύρου το αποτέλεσμα είναι μια ακολουθία από μη επικαλυπτόμενα κυλιόμενα παράθυρα (tumbling windows) [14]. 2.5 Τύποι επερωτήσεων Οι επερωτήσεις σε συνεχείς ροές δεδομένων έχουν αρκετά κοινά στοιχεία με τις επερωτήσεις στα παραδοσιακά συστήματα διαχείρισης βάσεων δεδομένων (DBMS). Ωστόσο υπάρχουν δύο σημαντικοί διαχωρισμοί στους τύπους επερωτήσεων, που οφείλονται στα ιδιαίτερα χαρακτηριστικά του μοντέλου ροών δεδομένων. Ο πρώτος διαχωρισμός γίνεται ανάμεσα στις στιγμιαίες επερωτήσεις (one-time queries) και στις συνεχείς επερωτήσεις (CQ- Continuous Queries). Οι στιγμιαίες επερωτήσεις (κατηγορία που περιλαμβάνει τις παραδοσιακές επερωτήσεις στα συστήματα DBMS) υποβάλλονται μία φορά σε ένα στιγμιότυπο των δεδομένων. Οι συνεχείς επερωτήσεις υποβάλλονται κατ επανάληψη καθώς τα δεδομένα φτάνουν διαρκώς. Οι απαντήσεις στις συνεχείς επερωτήσεις παράγονται με βάση τη ροή των δεδομένων που έχει φτάσει ως τη στιγμή υποβολής της επερώτησης. Τα αποτελέσματα αυτής της κατηγορίας επερωτήσεων μπορούν να αποθηκευτούν και να ανανεώνονται με την άφιξη καινούργιων δεδομένων ή μπορούν να αποτελέσουν νέες ροές δεδομένων. Ο δεύτερος διαχωρισμός γίνεται μεταξύ των προκαθορισμένων και των ad hoc επερωτήσεων. Οι προκαθορισμένες επερωτήσεις παρέχονται στο σύστημα πριν την άφιξη των

13 δεδομένων. Συνήθως σε αυτή την κατηγορία ανήκουν οι συνεχείς επερωτήσεις, όμως και οι στιγμιαίες επερωτήσεις είναι δυνατόν να προκαθοριστούν. Αντιθέτως, οι ad hoc επερωτήσεις υποβάλλονται on-line αφού έχει ξεκινήσει η ροή των δεδομένων. Τόσο οι στιγμιαίες όσο και οι συνεχείς επερωτήσεις μπορεί να είναι ad hoc. Ωστόσο αυτός ο τύπος επερωτήσεων καθιστά πιο πολύπλοκο τον σχεδιασμό ενός συστήματος διαχείρισης ροών δεδομένων (DSMS), αφ ενός γιατί οι επερωτήσεις δεν είναι γνωστές εκ των προτέρων και συνεπώς δεν υπάρχει δυνατότητα βελτιστοποίησης τους και αφετέρου γιατί η απάντηση σε μια ad hoc επερώτηση ενδέχεται να απαιτεί στοιχεία από τη ροή δεδομένων που έχουν ήδη φτάσει και πιθανώς απορριφθεί από το σύστημα [13],[26]. 2.6 Σημασιολογία συνεχών επερωτήσεων Οποιαδήποτε μονότονη (monotonic) συνεχής επερώτηση που μπορεί να ενημερωθεί αυξητικά, είναι δυνατόν να υλοποιηθεί ως μια συνεχής επερώτηση σε μια παραδοσιακή βάση δεδομένων. Σε μια βάση δεδομένων μόνο για προσάρτηση (append-only database), όλες οι συζευκτικές επερωτήσεις είναι μονότονες: μόλις προστεθεί μια πλειάδα, είτε ικανοποιεί την επερώτηση ή όχι και η συνθήκη που πρέπει να ικανοποιείται δεν αλλάζει με το χρόνο. Αντίθετα, η προσθήκη άρνησης μπορεί να παραβιάσει τη μονοτονία (π.χ. η επιλογή από μια ροή μηνυμάτων ηλεκτρονικού ταχυδρομείου όλων εκείνων των μηνυμάτων που ακόμα δεν έχουν λάβει απάντηση). Ωστόσο, σε ορισμένες περιπτώσεις επερωτήσεων η άρνηση είναι δυνατόν να αποφευχθεί με κατάλληλη διατύπωση. Παρόμοια, εάν η βάση δεδομένων δεν είναι μόνο για προσάρτηση, τότε καμία ερώτηση δεν είναι μονότονη, καθώς οι ενημερωμένες πλειάδες μπορούν να πάψουν να ικανοποιούν μια δεδομένη επερώτηση. Λιγότερο περιοριστική σημασιολογία μονότονων και μη μονότονων συνεχών επερωτήσεων σε δεδομένα έχει προταθεί [29]. Αν θεωρήσουμε για λόγους απλότητας ότι ο χρόνος αναπαριστάται σαν ένα σύνολο από φυσικούς αριθμούς και ότι όλες οι συνεχείς επερωτήσεις επαναξιολογούνται με κάθε χτύπο του ρολογιού, έστω ότι A(Q,t) είναι το σύνολο απαντήσεων μιας συνεχούς επερώτησης τη χρονική στιγμή t και τ είναι ο τρέχων χρόνος που

14 αρχίζει από το 0. Το σύνολο απαντήσεων μιας μονότονης συνεχούς επερώτησης Q τη χρονική στιγμή τ είναι: A( Q, ) t 1 ( A( Q, t) A( Q, t 1)) A( Q,0) (1) Δηλαδή, αρκεί η επαναξιολόγηση της επερώτησης στα νέο-αφιχθέντα στοιχεία και η προσάρτηση των πλειάδων που πληρούν τις προϋποθέσεις στο αποτέλεσμα. Αντίθετα, οι μη μονότονες επερωτήσεις μπορεί να χρειάζεται να υπολογιστούν εκ νέου κατά τη διάρκεια της επαναξιολόγησης υποστηρίζοντας την ακόλουθη σημασιολογία [14]: A( Q, ) τ t 0 A( Q, t) (2) 2.7 Γλώσσες επερωτήσεων Έχουν προταθεί τρεις γλώσσες επερωτήσεων για συστήματα διαχείρισης ροών δεδομένων. Τα σχεσιακά συστήματα χρησιμοποιούν γλώσσες παρόμοιες με την SQL, για επερωτήσεις σχέσεων που έχουν χρονικές ενδείξεις (timestamps), παρέχοντας συνήθως αυξημένη υποστήριξη σε παράθυρα και ταξινόμηση. Οι γλώσσες που βασίζονται σε αντικείμενα μοιάζουν επίσης με τη γλώσσα SQL, αλλά συμπεριλαμβάνουν υποστήριξη για αφηρημένους τύπους δεδομένων σε ροές (ADT) και σχετικές μεθόδους επεξεργασίας σήματος. Τα διαδικαστικά συστήματα συνθέτουν επερωτήσεις ορίζοντας ροές δεδομένων μέσα από διάφορους τελεστές. Στη συνέχεια περιγράφονται οι τρεις ομάδες γλωσσών και δίνονται παραδείγματα επερωτήσεων για να γίνουν εμφανείς οι διαφορές τους, ενώ κάποια από τα

15 παραδείγματα χρησιμοποιούν απλοποιημένη σύνταξη για να γίνουν πιο κατανοητά Γλώσσες βασισμένες σε σχέσεις Υπάρχουν τρεις γλώσσες βασισμένες στις σχέσεις (relation-based languages), η CQL, η StreaQueL και η AQuery. Η CQL (Continuous Query Language) χρησιμοποιείται στο σύστημα STREAM και περιλαμβάνει ολισθαίνοντα παράθυρα και τελεστές που μεταφράζουν σχέσεις σε ροές. Είναι δυνατή η λειτουργία PARTITION σε ένα παράθυρο με βάση ένα πεδίο καθώς και ο καθορισμός του εύρους ενός παραθύρου (π.χ. ROWS 100 ή RANGE 100 MINUTES). Για παράδειγμα αν μια ροή S περιέχει εγγραφές τηλεφωνικών κλήσεων, η ακόλουθη επερώτηση υπολογίζει το μέσο μήκος των δέκα πιο πρόσφατων υπεραστικών κλήσεων για κάθε πελάτη: SELECT AVG (S.call_length) FROM S [PARTITION BY S.customer_id ROWS 10 WHERE S.type = Long Distance ] Οι επερωτήσεις σε ολόκληρες ροές δεδομένων μπορούν να επιλέξουν μεταξύ [UNBOUNDED] ή [NOW] στον τύπο του παραθύρου, με την τελευταία επιλογή να χρησιμοποιείται σε μονότονες επερωτήσεις (π.χ. επιλογές) που δε χρειάζεται να λαμβάνουν υπόψη προηγούμενα δείγματα. Επιπλέον, υπάρχουν τρεις τελεστές σχέσης προς ροή, που μπορούν να χρησιμοποιηθούν για να καθορίσουν ρητά τη σημασιολογία των επερωτήσεων (όπως ορίζεται στις ισότητες (1) και (2)). Ακόμη, ο ρυθμός δειγματοληψίας μπορεί να καθοριστεί ρητά ακολουθώντας την αναφορά σε μια ροή με τη δήλωση π.χ. 10% SAMPLE. Η StreaQueL, που είναι η γλώσσα επερωτήσεων του συστήματος TelegraphCQ παρέχει εξελιγμένες δυνατότητες δημιουργίας παραθύρων. Κάθε ορισμός επερώτησης ακολουθείται από μία δομή βρόχου for με μια μεταβλητή t που επαναλαμβάνεται με τον χρόνο. Ο βρόχος περιέχει μια δήλωση WindowIs που καθορίζει τον τύπο και το μέγεθος του παραθύρου. Έστω μια ροή S, και ST η στιγμή εκκίνησης της επερώτησης. Για τον καθορισμό ενός ολισθαίνοντος παραθύρου στη ροή S με μέγεθος πέντε που

16 θα εκτελείται για πενήντα ημέρες θα προσαρτηθεί στη ροή ο ακόλουθος βρόχος for: for (t=st; t<st+50; t++) WindowIs (S, t-4, t) Η μετάβαση σε ένα παράθυρο οριοθέτησης θα μπορούσε να γίνει αντικαθιστώντας το t-4 με κάποια σταθερά στη δήλωση WindowIs. Αλλάζοντας τη συνθήκη αύξησης σε t=t+5 θα προκαλούσε την επερώτηση να εκτελείται κάθε πέντε χρονικές μονάδες. Η γλώσσα AQuery αποτελείται από μια άλγεβρα επερωτήσεων και μια γλώσσα βασισμένη στην SQL για ταξινομημένα δεδομένα. Οι στήλες των πινάκων θεωρούνται πίνακες (arrays), στους οποίους μπορούν να εφαρμοστούν οι βασιζόμενοι στη σειρά τελεστές όπως οι: next, prev, first και last. Για παράδειγμα, μια συνεχής επερώτηση σε μια ροή από τιμές μετοχών που αναφέρει διαδοχικές διαφορές τιμών της μετοχής π.χ. της εταιρείας IBM μπορεί να οριστεί ως εξής: SELECT price prev (price) FROM Tredes ASSUMING ORDER timestamp WHERE company = IBM Η φράση ASSUMING ORDER ορίζει το πεδίο ταξινόμησης του πίνακα. Η εφαρμογή της συγκεκριμένης επερώτησης σε συμβατικές ακολουθιακές γλώσσες απαιτεί μια σύζευξη της σχέσης Trades με ένα αντίγραφό της, το οποίο έχει ολισθήσει κατά μία θέση Γλώσσες βασισμένες σε αντικείμενα Μια προσέγγιση στην μοντελοποίηση αντικειμενοστρεφών ροών δεδομένων είναι η ταξινόμηση των περιεχομένων της ροής σύμφωνα με μια ιεραρχία τύπων. Η μέθοδος αυτή χρησιμοποιείται στο σύστημα Tribeca για την παρακολούθηση δικτύων, που υλοποιεί επίπεδα πρωτοκόλλων του Διαδικτύου σαν ιεραρχικούς τύπους δεδομένων. Μια άλλη δυνατότητα είναι η μοντελοποίηση των πηγών σαν τύπους ADT, όπως στο σύστημα COUGAR για τη διαχείριση δεδομένων από αισθητήρες. Κάθε τύπος αισθητήρα μοντελοποιείται με έναν ADT, του οποίου η διεπαφή αποτελείται από

17 μεθόδους επεξεργασίας σήματος που υποστηρίζει ο συγκεκριμένος τύπος δεδομένων. Η προτεινόμενη γλώσσα επερωτήσεων έχει σύνταξη που μοιάζει με την SQL και περιλαμβάνει επίσης μια δήλωση $every() που δείχνει τη συχνότητα επανεκτέλεσης της επερώτησης. Για παράδειγμα μια επερώτηση που εκτελείται κάθε εξήντα δευτερόλεπτα και επιστρέφει τις μετρήσεις θερμοκρασίας από όλους τους αισθητήρες στον τρίτο όροφο ενός κτηρίου θα μπορούσε να οριστεί ως εξής [14]: SELECT R.s.getTemperature() FROM R WHERE R.floor = 3 AND $every(60) Διαδικαστικές γλώσσες Μια εναλλακτική πρόταση στις δηλωτικές (declarative) γλώσσες επερωτήσεων είναι να καθορίσει ο χρήστης τον τρόπο ροής των δεδομένων στο σύστημα. Στο σύστημα Aurora οι χρήστες κατασκευάζουν σχέδια επερωτήσεων μέσω μιας γραφικής διεπαφής τοποθετώντας κουτιά (που αντιστοιχούν σε τελεστές επερωτήσεων), τα οποία ενώνουν με κατευθυνόμενα τόξα για να ορίσουν τη ροή των δεδομένων παρόλο που το σύστημα μπορεί στη συνέχεια να αλλάξει τη σειρά, να προσθέσει ή να αφαιρέσει τελεστές κατά τη φάση της βελτιστοποίησης. Το σύστημα Aurora περιλαμβάνει αρκετούς τελεστές που δεν ορίζονται ρητά σε άλλες γλώσσες. Ο τελεστής map εφαρμόζει μια λειτουργία σε κάθε στοιχείο, (ο τελεστής αυτός ορίζεται και στη γλώσσα AQuery, όπου ονομάζεται each). Ο τελεστής resample παρεμβάλλει τιμές στοιχείων που λείπουν σε ένα παράθυρο, ενώ ο drop απορρίπτει στοιχεία με τυχαίο τρόπο αν ο ρυθμός εισόδου είναι πολύ υψηλός [14]. 2.8 Το σύστημα TelegraphCQ Το σύστημα TelegraphCQ είναι εξέλιξη του ερευνητικού προγράμματος Telegraph το οποίο είχε ξεκινήσει στις αρχές του 2000 στο πανεπιστήμιο του Berkeley, με στόχο την ανάπτυξη μιας προσαρμοζόμενης αρχιτεκτονικής για ροές δεδομένων, η οποία θα υποστήριζε ένα ευρύ σύνολο δικτυακών εφαρμογών με έμφαση στα δεδομένα. Η πρώτη έκδοση του Telegraph

18 υποστήριζε συνενώσεις γεγονότων και σχημάτων (Federated Facts & Figures - FFF) και ήταν ένα σύστημα επερωτήσεων για web δεδομένα. Η αρχική αυτή έκδοση του Telegraph δεν έκανε καμία προσπάθεια να εκμεταλλευτεί τα κοινά στοιχεία μεταξύ ταυτόχρονα ενεργών επερωτήσεων. Αντίθετα, εστίαζε σε ένα σενάριο με ένα μόνο χρήστη, παρέχοντας αποδοτικά επιμέρους αποτελέσματα σε επερωτήσεις με αλληλεπιδραστικό έλεγχο από τον χρήστη. Στη συνέχεια αναπτύχθηκαν δύο επεκτάσεις του αρχικού συστήματος με τις ονομασίες CACQ και PSOUP για την υποστήριξη κοινής επεξεργασίας σε ροές δεδομένων. Ωστόσο τα συστήματα αυτά παρουσίαζαν ορισμένους σημαντικούς περιορισμούς: Μπορούσαν να επεξεργαστούν μόνο δεδομένα που βρίσκονταν στη μνήμη του συστήματος. Δε διερευνούσαν ζητήματα χρονοπρογραμματισμού και διαχείρισης πόρων για επερωτήσεις με μικρές ή καθόλου επικαλύψεις. Δεν αντιμετώπιζαν την ανάγκη για ποιότητα υπηρεσίας (QoS) με προσαρμογή στους περιορισμούς πόρων. Δεν ερευνούσαν δυνατότητες μεταβολής του βαθμού προσαρμοστικότητας για τη διαπραγμάτευση ευελιξίας και καθυστερήσεων. Με βάση τα αρχικά αυτά συστήματα έχει επανασχεδιαστεί και υλοποιηθεί ένα νέο σύστημα που ονομάστηκε TelegraphCQ και το οποίο δίνει πλέον έμφαση στην υποστήριξη επεξεργασίας κοινών, συνεχών επερωτήσεων σε ροές δεδομένων. Το σύστημα αυτό μπορεί να διαχειριστεί μεγάλες ροές συνεχών επερωτήσεων σε ροές δεδομένων υψηλής μεταβλητότητας και μεγάλου όγκου. Το TelegraphCQ έχει ως σκοπό την επίλυση των προβλημάτων που αντιμετώπιζαν τα προηγούμενα συστήματα. Συγκεκριμένα εστιάζει στα εξής ζητήματα: Χρονοπρογραμματισμός και διαχείριση πόρων για ομάδες επερωτήσεων Υποστήριξη δεδομένων εκτός μνήμης Μεταβλητή προσαρμοστικότητα

19 Δυναμική υποστήριξη QoS Παράλληλη επεξεργασία βασισμένη σε ομάδες και καταμερισμό εργασιών Παρά το γεγονός ότι το σύστημα στο αρχικό ερευνητικό πρόγραμμα Telegraph είχε υλοποιηθεί στη γλώσσα προγραμματισμού Java, αποφασίστηκε για το σύστημα TelegraphCQ να χρησιμοποιηθεί το σύστημα βάσης δεδομένων ανοιχτού κώδικα (open source) PostgreSQL. Αυτό συνέβη, διότι η εμπειρία από τη χρήση της γλώσσας Java για την ανάπτυξη ενός συστήματος δεν ήταν θετική, παρόλο που η έρευνα γύρω από την προσαρμοστικότητα και τον καταμερισμό παρουσίασε σημαντικά οφέλη. Ένα σύστημα συνεχών επερωτήσεων, όπως το TelegraphCQ, διαφέρει αρκετά από έναν παραδοσιακό επεξεργαστή επερωτήσεων. Ωστόσο, ένα σημαντικό μέρος του κώδικα PostgreSQL μπορούσε εύκολα να επαναχρησιμοποιηθεί. Επιπλέον, τα χαρακτηριστικά επεκτασιμότητας του συστήματος PostgreSQL αποδείχθηκαν πολύ χρήσιμα, ιδιαίτερα η δυνατότητα να χρησιμοποιηθεί κώδικας καθορισμένος από τον χρήστη καθώς και οι πολλοί τύποι δεδομένων όπως τα διαστήματα (intervals) [30],[31]. Για τις ανάγκες της παρούσας διπλωματικής εργασίας έχει χρησιμοποιηθεί η έκδοση v0.2 της πλατφόρμας TelegraphCQ. Ωστόσο, υπάρχουν διαθέσιμες και οι εκδόσεις v2.0 και v Σημασιολογία παραθύρων στο σύστημα TelegraphCQ Το σύστημα TelegraphCQ υποστηρίζει συνεχείς επερωτήσεις σε ένα συνδυασμό από πίνακες και ροές δεδομένων. Για τη διαχείριση ροών δεδομένων, των οποίων το μήκος είναι απεριόριστο, ορισμένες λειτουργίες, όπως η σύζευξη, μπορούν να πραγματοποιηθούν μόνο σε πεπερασμένα παράθυρα στις ροές αυτές. Προκειμένου να υποστηρίξει ένα μεγάλο πλήθος από τύπους επερωτήσεων, το σύστημα TelegraphCQ παρέχει πλούσια παραθυρικά σχήματα, τόσο στο τμήμα της ροής που έχει ήδη φτάσει, όσο και σε τμήματα που θα φτάσουν στο μέλλον. Επιπλέον, το σύστημα προσφέρει ευέλικτους μηχανισμούς παράδοσης των παραγόμενων αποτελεσμάτων από

20 τις επερωτήσεις που υποβάλλονται στα παράθυρα αυτά. Δηλαδή, επιτρέπει την άμεση προώθηση στον χρήστη των αποτελεσμάτων της εκτέλεσης επερωτήσεων σε διαδοχικά παράθυρα (όπως στο σύστημα CACQ) ή την παρουσίαση των αποτελεσμάτων μόνο έπειτα από απαίτηση του ίδιου του χρήστη (όπως στο σύστημα PSOUP) Παράθυρα σε ροές εισόδου Δύο δημοφιλή σχήματα παραθύρων, στα πλαίσια της επεξεργασίας επερωτήσεων σε ροές δεδομένων, είναι τα παράθυρα οριοθέτησης και τα ολισθαίνοντα παράθυρα. Για τις επερωτήσεις με παράθυρα οριοθέτησης, το χρονικά παλαιότερο άκρο του παράθυρου είναι σταθερό, ενώ το χρονικά νεότερο άκρο του κινείται με κατεύθυνση προς τα εμπρός όταν φτάνουν νέες εγγραφές στη ροή. Αντίθετα, στις επερωτήσεις με ολισθαίνοντα παράθυρα, και τα δύο άκρα κινούνται ταυτόχρονα με κατεύθυνση προς τα εμπρός όταν φτάνουν νέες εγγραφές. Ωστόσο, ή σημασιολογία που προσφέρουν τα παράθυρα οριοθέτησης και τα ολισθαίνοντα παράθυρα, καλύπτει μόνο ένα μικρό μέρος των ενδιαφερόντων εφαρμογών σε ροές δεδομένων. Για παράδειγμα, τα παράθυρα οριοθέτησης και τα ολισθαίνοντα παράθυρα δε μπορούν να συλλάβουν τη σημασιολογία μιας επερώτησης που εκτελείται με την άφιξη κάθε n πλειάδων, ούτε μπορούν να περιγράψουν παράθυρα με δεδομένα από το παρελθόν. Σε ένα σύστημα πλοήγησης ο χρήστης μπορεί να θελήσει να υποβάλει μια επερώτηση σχετικά με ένα τμήμα μιας ροής, το οποίο ανήκει στο παρελθόν, χρησιμοποιώντας παράθυρα που κινούνται προς τα πίσω ξεκινώντας από την παρούσα στιγμή. Τα παραδοσιακά παράθυρα οριοθέτησης και τα ολισθαίνοντα παράθυρα δεν μπορούν να χρησιμοποιηθούν σε τέτοιες εφαρμογές. Η σημασιολογία των επερωτήσεων στο σύστημα TelegraphCQ είναι η ακόλουθη. Για κάθε χρονική στιγμή, ένα παράθυρο σε μια ροή καθορίζει ένα σύνολο πλειάδων στις οποίες θα εκτελεστεί η επερώτηση. Δεδομένου ότι κάθε εκτέλεση της επερώτησης παράγει ένα σύνολο, η έξοδος μιας επερώτησης παρουσιάζεται στον τελικό χρήστη ως μια ακολουθία συνόλων όπου κάθε σύνολο συσχετίζεται με μια χρονική στιγμή. Το σύστημα TelegraphCQ

21 επιτρέπει πολλαπλές ταυτόχρονες έννοιες του χρόνου, όπως μια λογική ακολουθία αριθμών ή ο φυσικός χρόνος. Προκειμένου να συμπεριληφθούν ασαφώς συγχρονισμένες κατανεμημένες πηγές δεδομένων, μεταχειριζόμαστε το χρόνο ως μια μερική διάταξη, παρά ως πλήρη διάταξη. Έχει σχεδιαστεί μια άλγεβρα που επεκτείνει τους υπάρχοντες σχεσιακούς τελεστές, ώστε να λειτουργούν σε ροές και η οποία επιτρέπει σε μια ροή που έχει οριστεί με χρήση μιας χρονικής έννοιας να μετασχηματιστεί σε μια ροή που χρησιμοποιεί μια άλλη χρονική έννοια. Το σύστημα TelegraphCQ υποστηρίζει πολύ πιο γενικά παράθυρα από τα παράθυρα οριοθέτησης και τα ολισθαίνοντα παράθυρα. Αυτό γίνεται χρησιμοποιώντας μια δομή βρόχου for για τη δήλωση της ακολουθίας των παράθυρων στα οποία ο χρήστης επιθυμεί τις απαντήσεις σε μια επερώτηση. Μια μεταβλητή t κινείται στον χρονικό άξονα, καθώς ο βρόχος for επαναλαμβάνεται, ενώ το αριστερό και το δεξί άκρο κάθε παραθύρου στην ακολουθία και η συνθήκη τερματισμού για την επερώτηση μπορούν να οριστούν σε σχέση με αυτή τη μεταβλητή Επίδραση της σημασιολογίας παραθύρων στο σχεδιασμό του συστήματος TelegraphCQ Οι διαφορετικοί τύποι παραθύρων μπορούν να θέσουν σημαντικά διαφορετικές απαιτήσεις από τον σχεδιασμό του επεξεργαστή επερωτήσεων και του υποκείμενου διαχειριστή αποθήκευσης. Ένα βασικό ζήτημα σχετίζεται με τη χρήση λογικών (δηλαδή με βάση τον αριθμό της ακολουθίας πλειάδων) έναντι φυσικών (δηλαδή με βάση τον πραγματικό χρόνο) χρονικών ενδείξεων (timestamps). Στην πρώτη περίπτωση, οι απαιτήσεις ενός παραθύρου σε μνήμη μπορούν να είναι γνωστές εκ των προτέρων, ενώ στην δεύτερη περίπτωση, οι απαιτήσεις σε μνήμη θα εξαρτηθούν από τις διακυμάνσεις στον ρυθμό άφιξης δεδομένων. Ένα άλλο ζήτημα που σχετίζεται με τις απαιτήσεις σε μνήμη, είναι ο τύπος παραθύρου που χρησιμοποιείται σε μια επερώτηση. Ας θεωρήσουμε την περίπτωση της εκτέλεσης μιας MAX συνάθροισης σε μια ροή. Για ένα παράθυρο οριοθέτησης, είναι δυνατό να υπολογιστεί η απάντηση

22 επαναληπτικά, συγκρίνοντας απλά το τρέχον μέγιστο με το νεώτερο στοιχείο καθώς το παράθυρο επεκτείνεται. Αντιθέτως, για ένα ολισθαίνον παράθυρο, ο υπολογισμός του μέγιστου απαιτεί τη διατήρηση ολόκληρου του παραθύρου. Τέλος, η κατεύθυνση της κίνησης και το μέγεθος "άλματος" των παραθύρων (η απόσταση μεταξύ διαδοχικών παράθυρων που καθορίζεται από τον βρόχο for) έχουν επίσης σημαντική επίδραση στην εκτέλεση επερωτήσεων. Για παράδειγμα, αν το μέγεθος άλματος του παραθύρου ξεπεράσει το μέγεθος του ίδιου του παραθύρου, τότε κάποια μέρη της ροής δεν περιλαμβάνονται ποτέ στην επεξεργασία της επερώτησης [30] Η αρχιτεκτονική του συστήματος TelegraphCQ Στη συνέχεια περιγράφεται η αρχιτεκτονική λογισμικού του συστήματος TelegraphCQ δίνοντας αρχικά έμφαση στον τρόπο προσαρμογής της αρχιτεκτονικής του συστήματος PostgreSQL, ώστε να δοθεί η δυνατότητα κοινής επεξεργασίας των συνεχών επερωτήσεων σε πηγές ροών δεδομένων. Έπειτα περιγράφονται τα νέα στοιχεία που συνθέτουν το σύστημα TelegraphCQ. Το σύστημα TelegraphCQ έχει υλοποιηθεί στις γλώσσες προγραμματισμού C/C++, ενώ ταυτόχρονα έχει χρησιμοποιηθεί η βάση κώδικα του ανοιχτού λογισμικού PostgreSQL. Στο Σχήμα 7 φαίνεται η βασική δομή λειτουργίας του συστήματος PostgreSQL. Το PostgreSQL χρησιμοποιεί ένα μοντέλο διεργασίας-ανά-σύνδεση. Οι δομές δεδομένων, που μοιράζονται μεταξύ πολλαπλών διεργασιών βρίσκονται στην κοινή μνήμη. Μια διεργασία Postmaster δημιουργεί νέες διεργασίες εξυπηρετητή ως απάντηση σε νέες συνδέσεις πελατών. Μεταξύ των διαφορετικών στοιχείων κάθε διεργασίας εξυπηρετητή, ο Ακροατής (Listener) είναι υπεύθυνος για την αποδοχή των αιτήσεων σε μια σύνδεση και την επιστροφή των δεδομένων στον πελάτη. Όταν μια καινούργια επερώτηση φθάσει, αναλύεται, βελτιστοποιείται, και μεταγλωττίζεται σε ένα σχέδιο προσπέλασης, ενώ στη συνέχεια την επεξεργάζεται το στοιχείο Διεκπεραιωτής επερώτησης (Executor).

23 Σχήμα 7: Η αρχιτεκτονική του συστήματος PostgreSQL Τα στοιχεία που έχουν αλλάξει ελάχιστα στο σύστημα TelegraphCQ είναι: ο Postmaster, ο Ακροατής (Listener), ο Κατάλογος Συστήματος (System Catalog), ο Αναλυτής Επερωτήσεων (Query Parser) και ο Βελτιστοποιητής Επερωτήσεων (Query Optimizer). Τα στοιχεία που έχουν υποστεί σημαντικές αλλαγές είναι: ο Διεκπεραιωτής (Executor), ο Διαχειριστής Ενδιάμεσης Μνήμης (Buffer Manager) και οι Μέθοδοι Προσπέλασης (Access Methods). Επιπλέον, με την υιοθέτηση των front-end στοιχείων του συστήματος PostgreSQL, το TelegraphCQ έχει πρόσβαση στις υλοποιήσεις διεπαφής σε επίπεδο κλήσης από την πλευρά του πελάτη (που δεν φαίνονται στο Σχήμα 7) όπως οι ODBC και JDBC. Η κύρια πρόκληση στη χρήση του συστήματος PostgreSQL ήταν η υποστήριξη εκείνων των χαρακτηριστικών του TelegraphCQ για τα οποία δεν ήταν σχεδιασμένο όπως: οι ροές δεδομένων, οι συνεχείς επερωτήσεις, η

24 κοινή επεξεργασία και η προσαρμοστικότητα. Η μεγαλύτερη επίδραση των αλλαγών είναι στο μοντέλο διεργασία-ανά-σύνδεση του PostgreSQL. Στο σύστημα TelegraphCQ υπάρχει μια αποκλειστική διεργασία, που ονομάζεται Back End, για την εκτέλεση κοινών, μακροπρόθεσμων, συνεχών επερωτήσεων. Η διεργασία αυτή, μαζί με τη διεργασία ανά-σύνδεση Front End του συστήματος TelegraphCQ, δέχεται τις επερωτήσεις από τον πελάτη και επιστρέφει τα αποτελέσματα σε αυτόν. Η διεργασία Front End εξυπηρετεί επίσης μη συνεχείς επερωτήσεις και δηλώσεις DDL. Επιπλέον, το σύστημα TelegraphCQ διαθέτει μια αποκλειστική διεργασία που ονομάζεται Wrapper ClearingHouse και η οποία διασφαλίζει ότι οι λειτουργίες εισόδου των δεδομένων δεν εμποδίζουν την πρόοδο της εκτέλεσης επερωτήσεων. Σχήμα 8: Η αρχιτεκτονική του TelegraphCQ

25 Το Σχήμα 8 απεικονίζει την αρχιτεκτονική του συστήματος TelegraphCQ. Με οβάλ σχήμα φαίνονται οι τρεις διεργασίες (Back End, Front End και Wrapper ClearingHouse) που περιλαμβάνει ο εξυπηρετητής του TelegraphCQ. Οι διεργασίες αυτές επικοινωνούν χρησιμοποιώντας μια υποδομή κοινής μνήμης. Η διεργασία Front End περιέχει τον ακροατή, τον κατάλογο, τον αναλυτή, τον σχεδιαστή (Planner) και τον "μίνι-διεκπεραιωτή" ("mini- Executor"). Η πραγματική επεξεργασία επερωτήσεων πραγματοποιείται στην ξεχωριστή διεργασία Back End. Τέλος, η διεργασία Wrapper ClearingHouse χρησιμοποιείται για να φιλοξενήσει τους τελεστές εισόδου των δεδομένων, οι οποίοι καθιστούν τις νέες πλειάδες διαθέσιμες για επεξεργασία, αρχειοθετώντας τις αν είναι απαραίτητο. Η διεργασία Wrapper ClearingHouse είναι υπεύθυνη για τις ακόλουθες λειτουργίες: Αποδοχή συνδέσεων από εξωτερικές πηγές και λήψη του ονόματος της ροής που θα στείλουν. Φόρτωση των κατάλληλων συναρτήσεων από τους wrappers που έχει ορίσει ο χρήστης. Κλήση αυτών των wrapper συναρτήσεων όταν τα δεδομένα είναι διαθέσιμα σε μια σύνδεση. Επεξεργασία των πλειάδων που επιστρέφουν ως αποτέλεσμα από έναν wrapper σύμφωνα με τον τύπο της ροής. Εκκαθάριση όταν μια πηγή τερματίζει την αλληλεπίδρασή της με το σύστημα TelegraphCQ. Όπως και στο σύστημα PostgreSQL, έτσι και στο TelegraphCQ ο Postmaster «ακούει» σε μια γνωστή θύρα και δημιουργεί μια Front End διεργασία για κάθε μια νέα σύνδεση που λαμβάνει. Ο ακροατής δέχεται εντολές από έναν πελάτη και βασισμένος σε αυτές, επιλέγει πού να τις εκτελέσει. Οι δηλώσεις DDL και οι επερωτήσεις σε πίνακες εκτελούνται στην ίδια τη διεργασία Front End. Οι συνεχείς επερωτήσεις, που περιλαμβάνουν μόνο ροές δεδομένων καθώς επίσης και εκείνες που περιλαμβάνουν ροές δεδομένων και πίνακες, "προσχεδιάζονται" και στέλνονται μέσω της ουράς Σχεδίου Επερώτησης (Query Plan) (που βρίσκεται στην κοινή μνήμη) στη διεργασία Back End. Ο διεκπεραιωτής Back End βγάζει συνεχώς από την

26 ουρά νέες επερωτήσεις και τις προσθέτει δυναμικά στην τρέχουσα εκτελούμενη επερώτηση. Στη συνέχεια τα αποτελέσματα της επερώτησης τοποθετούνται σε ξεχωριστές ουρές Αποτελέσματος Επερώτησης (Query Result) για κάθε πελάτη. Όταν η διεργασία Front End δώσει μια επερώτηση στη διεργασία Back End, παράγει ένα ελάχιστο τοπικό σχέδιο επερώτησης, το οποίο ο μίνι-επεξεργαστής εκτελεί για να βγάζει συνεχώς αποτελέσματα από την ουρά Αποτελέσματος Επερώτησής του και να τα επιστρέφει στον συνδεδεμένο πελάτη. Δεδομένου ότι μια συνεχής επερώτηση δεν τελειώνει ποτέ, οι πελάτες θα πρέπει να υποβάλουν τέτοιες επερωτήσεις ως τμήμα καθορισμένων δρομέων. Έχει προστεθεί ένας τρόπος λειτουργίας συνεχούς επερώτησης στον psql, τον τυπικό αλληλεπιδραστικό πελάτη του συστήματος PostgreSQL. Με τον τρόπο αυτό, οι δηλώσεις SELECT μετατρέπονται αυτόματα σε καθορισμένους δρομείς που μπορούν στη συνέχεια να επαναλαμβάνονται ώστε να επιστρέφουν συνεχώς αποτελέσματα [30],[31] Χρήση του συστήματος TelegraphCQ Εκτός από τα χαρακτηριστικά που προσφέρει το ίδιο το σύστημα PostgreSQL, η αλληλεπίδραση των χρηστών με το σύστημα TelegraphCQ περιλαμβάνει τα εξής: Δημιουργία αρχειοθετημένων και μη αρχειοθετημένων ροών. Δημιουργία πηγών που στέλνουν δεδομένα στο σύστημα TelegraphCQ. Δημιουργία wrappers καθορισμένων από τους χρήστες. Υποβολή συνεχών επερωτήσεων. Οι ροές που δημιουργούνται στο σύστημα καθορίζουν αντικείμενα στα οποία μπορούν να υποβληθούν επερωτήσεις, και δεδομένα τα οποία μπορεί να επεξεργαστεί το σύστημα και πιθανώς να τα αρχειοθετήσει. Οι πηγές δεδομένων αποτελούν ανεξάρτητα προγράμματα που στέλνουν συνεχώς δεδομένα σε μια ροή με καθορισμένο όνομα στο σύστημα TelegraphCQ. Για κάθε ροή υπάρχει ένας wrapper ορισμένος από τον χρήστη που δηλώνεται

27 στο TelegraphCQ και είναι σχεδιασμένος έτσι ώστε να κατανοεί τα δεδομένα που στέλνει η πηγή. Τέλος, χρήστες και εφαρμογές μπορούν να συνδεθούν στο σύστημα ώστε να υποβάλλουν συνεχείς επερωτήσεις στις ροές αυτές [31] Δημιουργία ροών Στο σύστημα TelegraphCQ, μπορούν να δημιουργηθούν και να διαγραφούν ροές δεδομένων χρησιμοποιώντας τις νέες DDL δηλώσεις CREATE STREAM και DROP STREAM αντίστοιχα. Οι δηλώσεις αυτές είναι παρόμοιες με εκείνες που χρησιμοποιούνται για τη δημιουργία και τη διαγραφή πινάκων. Μια απαίτηση για τον ορισμό μιας ροής είναι ότι πρέπει να υπάρχει ακριβώς μια χρονική στήλη, η οποία εξυπηρετεί ως χρονική ένδειξη για τη ροή. Η στήλη αυτή ορίζεται με τον περιορισμό κλειδιού TIMESTAMPCOLUMN. Έτσι, ο καθορισμός μιας αρχειοθετημένης ροής, που χρησιμοποιήθηκε στα πλαίσια της παρούσας διπλωματικής εργασίας για τις μετρήσεις με το TelegraphCQ γίνεται με την ακόλουθη εντολή: CREATE STREAM temp.streams (Node INT, airtemp REAL, tcqtime TIMESTAMP TIMESTAMPCOLUMN ) TYPE ARCHIVED; Η παραπάνω ροή δεδομένων αποτελείται από: τον αριθμό του κόμβου αισθητήρα που πραγματοποιεί τη μέτρηση, τη θερμοκρασία αέρα που μετρά ο αισθητήρας και την ώρα μέτρησης. Πριν τη δημιουργία της ροής πρέπει να έχει δημιουργηθεί το σχήμα (schema) temp με την εντολή: CREATE SCHEMA temp; Δημιουργία πηγών Το σύστημα TelegraphCQ περιμένει ότι μια πηγή δεδομένων θα ξεκινήσει μια σύνδεση δικτύου με αυτό και θα του δώσει το όνομα της ροής στην οποία προτίθεται να παρέχει δεδομένα. Περισσότερες από μία πηγές μπορούν να παρέχουν ταυτόχρονα δεδομένα στην ίδια ροή. Το όνομα της ροής μεταδίδεται στα πρώτα bytes που στέλνει η πηγή στο σύστημα έπειτα από την εγκαθίδρυση της σύνδεσης. Δεν υπάρχουν άλλοι περιορισμοί ως προς τη

28 μορφή των δεδομένων της ροής, μιας και όλες οι επακόλουθες δικτυακές λειτουργίες της σύνδεσης είναι ευθύνη της λειτουργίας του καθορισμένου από τον χρήστη wrapper, που συνδέεται με τη ροή. Για τις ανάγκες της διπλωματικής εργασίας τροποποιήθηκε το παράδειγμα που βρίσκεται στον κατάλογο TelegraphCQ- 0.2/src/test/examples/tcqsanity. Η πηγή δεδομένων που χρησιμοποιείται στο συγκεκριμένο παράδειγμα είναι το αρχείο source.pl. Ωστόσο, για να παρέχει δεδομένα στη ροή που έχουμε δημιουργήσει θα πρέπει να προσθέσουμε στο αρχείο push_streams.sh τις εξής εντολές: TEMP_SCHEMA= temp STREAMS_STREAM=streams STREAMS_NAME="$CSV_WRAP,$TEMP_SCHEMA.$STREAMS_STREAM" echo 'sending temp.streams' cat streamsdata.log./source.pl $HOST $PORT $STREAMS_NAME Όπου streamsdata.log είναι το αρχείο με τα δεδομένα που θα τροφοδοτήσουν τη ροή temp.streams Δημιουργία wrappers Κάθε wrapper αποτελείται από τρεις συναρτήσεις ορισμένες από τον χρήστη (τις init, next και done), τις οποίες καλεί το σύστημα TelegraphCQ για να επεξεργαστεί τα δεδομένα από τις εξωτερικές πηγές. Οι συναρτήσεις δηλώνονται στο σύστημα με τη χρήση της τυπικής δήλωσης CREATE FUNCTION της PostgreSQL. Ωστόσο, εκτός από τους wrappers που μπορούν να ορίσουν οι χρήστες, στο TelegraphCQ υπάρχει ένας wrapper ο οποίος είναι διαθέσιμος για χρήση μετά την εγκατάσταση του συστήματος. Ονομάζεται csv και υποστηρίζει δεδομένα που φτάνουν οριοθετημένα, χωρίζοντας κάθε στήλη με κόμμα, ενώ οι πλειάδες χωρίζονται με αλλαγή γραμμής. Τα χαρακτηριστικά αυτά του csv wrapper μπορούν να αλλάξουν με τη χρήση των παραμέτρων ρύθμισης του wrapper. Επιπλέον, ο αριθμός στηλών σε ένα στοιχείο δεν χρειάζεται απαραίτητα να είναι ίσος με τον αριθμό των στηλών που έχει οριστεί για τη ροή. Οι επιπλέον στήλες των πλειάδων θα

29 περικοπούν, ενώ στην περίπτωση που οι τιμές σε κάποιες στήλες λείπουν, θα προστεθούν σε αυτές NULL τιμές. Ωστόσο, κάθε ροή δεδομένων πρέπει να έχει το ειδικό πεδίο TIMESTAMP ως το τελευταίο πεδίο της, το οποίο θα χρησιμοποιηθεί από τον διεκπεραιωτή του συστήματος TelegraphCQ. Ο wrapper που έχει χρησιμοποιηθεί για την επεξεργασία των ροών δεδομένων για τις ανάγκες της διπλωματικής εργασίας είναι ο csv wrapper. Η σύνδεσή του με τη ροή temp.streams γίνεται με την εντολή: ALTER STREAM temp.streams ADD WRAPPER csvwrapper; Συνεχείς επερωτήσεις Όταν οι ροές δεδομένων έχουν δημιουργηθεί στο σύστημα, οι χρήστες μπορούν να υποβάλλουν μακροπρόθεσμες συνεχείς επερωτήσεις σε αυτές. Μια επερώτηση θεωρείται ότι είναι συνεχής εάν υποβάλλεται σε μία ή περισσότερες ροές. Τέτοιου είδους επερωτήσεις δε θα σταματήσουν αν δεν τις τερματίσει ο χρήστης. Οι επερωτήσεις μπορεί να είναι απλές SQL επερωτήσεις (χωρίς υπο-ερωτήσεις), με προαιρετική σύνταξη που να περιέχει παράθυρο (window). Το χρονικό διάστημα που ορίζεται σαν συμβολοσειρά (string) εντός της σύνταξης του παραθύρου, υπάρχει δυνατότητα να είναι οτιδήποτε μπορεί το σύστημα PostgreSQL να μετατρέψει σε τύπο διαστήματος (interval). Η σύνταξη παραθύρου εξυπηρετεί στον περιορισμό της ποσότητας των δεδομένων που συμμετέχουν στην επερώτηση με την πάροδο του χρόνου. Αυτό είναι ιδιαίτερα σημαντικό για επερωτήσεις σύζευξης και συνάθροισης, δεδομένου ότι οι ροές δεδομένων είναι απεριόριστες. Οι επερωτήσεις μπορούν να υποβληθούν στο TelegraphCQ με τη χρήση του αλληλεπιδραστικού πελάτη psql. Είναι επίσης δυνατόν να χρησιμοποιηθούν και άλλες προγραμματιστικές διεπαφές, όπως οι ODBC και JDBC, αλλά οι εφαρμογές που τις χρησιμοποιούν πρέπει να έχουν δηλώσει καθορισμένους δρομείς για τις συνεχείς επερωτήσεις. Σε διαφορετική περίπτωση η διεπαφή επιπέδου κλήσης αποθηκεύει προσωρινά τα αποτελέσματα μιας επερώτησης και σταματά μέχρι να ληφθούν όλα τα δεδομένα. Ένα παράδειγμα επερώτησης η οποία χρησιμοποιήθηκε για τις μετρήσεις απόδοσης της διπλωματικής εργασίας είναι το εξής:

30 SELECT AVG (tr.airtemp) FROM temp.streams tr GROUP BY tr.node WINDOW tr [ 2 minutes ]; Η επερώτηση αυτή υποβάλλεται στη ροή δεδομένων temp.streams και επιστρέφει τη μέση τιμή της θερμοκρασίας του αέρα σε ένα ολισθαίνον παράθυρο 2 λεπτών.

Πίνακας περιεχοµένων

Πίνακας περιεχοµένων Πίνακας περιεχοµένων ΠΡΩΤΟ ΜΕΡΟΣ... 1 Κεφάλαιο 1 Εισαγωγή στα συστήµατα ρευµάτων δεδοµένων... 3 1.1 Εισαγωγή... 3 1.2 Η ανεπάρκεια των συµβατικών Σ Β... 4 1.3 Το µοντέλο ρεύµατος δεδοµένων... 7 1.4 Ερωτήµατα

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

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι:

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Μια δομή δεδομένων στην πληροφορική, συχνά αναπαριστά οντότητες του φυσικού κόσμου στον υπολογιστή. Για την αναπαράσταση αυτή, δημιουργούμε πρώτα ένα αφηρημένο μοντέλο στο οποίο προσδιορίζονται

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

Μία μέθοδος προσομοίωσης ψηφιακών κυκλωμάτων Εξελικτικής Υπολογιστικής

Μία μέθοδος προσομοίωσης ψηφιακών κυκλωμάτων Εξελικτικής Υπολογιστικής Μία μέθοδος προσομοίωσης ψηφιακών κυκλωμάτων Εξελικτικής Υπολογιστικής Βασισμένο σε μια εργασία των Καζαρλή, Καλόμοιρου, Μαστοροκώστα, Μπαλουκτσή, Καλαϊτζή, Βαλαή, Πετρίδη Εισαγωγή Η Εξελικτική Υπολογιστική

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

Κεφάλαιο 3. Διδακτικοί Στόχοι

Κεφάλαιο 3. Διδακτικοί Στόχοι Κεφάλαιο 3 Σε ένα υπολογιστικό σύστημα η Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ) εκτελεί τις εντολές που βρίσκονται στην κύρια μνήμη του. Οι εντολές αυτές ανήκουν σε προγράμματα τα οποία, όταν εκτελούνται,

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

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

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

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

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

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

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

ΤΑΞΙΝΟΜΗΣΗ ΑΠΟΤΕΛΕΣΜΑΤΩΝ ΕΡΩΤΗΜΑΤΟΣ

ΤΑΞΙΝΟΜΗΣΗ ΑΠΟΤΕΛΕΣΜΑΤΩΝ ΕΡΩΤΗΜΑΤΟΣ ΤΑΞΙΝΟΜΗΣΗ ΑΠΟΤΕΛΕΣΜΑΤΩΝ ΕΡΩΤΗΜΑΤΟΣ Η συνθήκη WHERE βάζει περιορισμούς στις εγγραφές που επιστρέφονται. Ο όρος ORDER BY ταξινομεί τις εγγραφές που επιστρέφονται. Παράδειγμα: SELECT * FROM table_name ORDER

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

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

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

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

Εργαλεία ανάπτυξης εφαρμογών internet Ι

Εργαλεία ανάπτυξης εφαρμογών internet Ι IEK ΟΑΕΔ ΚΑΛΑΜΑΤΑΣ ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΟΦΟΡΙΚΗΣ Εργαλεία ανάπτυξης εφαρμογών internet Ι Διδάσκουσα: Κανελλοπούλου Χριστίνα ΠΕ19 Πληροφορικής 4 φάσεις διαδικτυακών εφαρμογών 1.Εφαρμογές στατικής πληροφόρησης

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

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

A ΕΠΑ.Λ ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 5 η ΕΝΟΤΗΤΑ: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Εκπαιδευτικοί: ΓΑΛΑΝΟΣ ΓΕΩΡΓΙΟΣ ΜΠΟΥΣΟΥΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ A ΕΠΑ.Λ ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 5 η ΕΝΟΤΗΤΑ: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Εκπαιδευτικοί: ΓΑΛΑΝΟΣ ΓΕΩΡΓΙΟΣ ΜΠΟΥΣΟΥΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ 1 Βάση Δεδομένων: Με το όρο Βάση Δεδομένων εννοούμε ένα σύνολο δεδομένων που είναι οργανωμένο

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

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

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

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

Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων

Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων Οργάνωση Η/Υ Ενότητα 1η: Εισαγωγή στην Οργάνωση Η/Υ Άσκηση 1: Αναλύστε τη διαδοχική εκτέλεση των παρακάτω εντολών MIPS με βάση τις

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

ΗΥ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. Περίληψη Συνεισφοράς

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

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

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

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

ΚΕΦΑΛΑΙΟ 2ο ΠΡΟΣΟΜΟΙΩΣΗ ΔΙΑΚΡΙΤΩΝ ΓΕΓΟΝΟΤΩΝ

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

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

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

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

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

Τμήμα Οικιακής Οικονομίας και Οικολογίας. Οργάνωση Υπολογιστών

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

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

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

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

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

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

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

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ 1 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΚΕΦΑΛΑΙΟ 3ο: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΜΕΡΟΣ 2 ο : ΣΤΟΙΒΑ & ΟΥΡΑ ΙΣΤΟΣΕΛΙΔΑ ΜΑΘΗΜΑΤΟΣ: http://eclass.sch.gr/courses/el594100/ ΣΤΟΙΒΑ 2 Μια στοίβα

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

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

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

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

Ενότητα 3: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ

Ενότητα 3: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ Ενότητα 3: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΔΕΔΟΜΕΝΑ ΑΛΓΟΡΙΘΜΟΙ -ΠΛΗΡΟΦΟΡΙΑ: Δεδομένα: Αναπαράσταση της Πραγματικότητας Μπορούν να γίνουν αντιληπτά με μια από τις αισθήσεις μας Πληροφορία: Προκύπτει από

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

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

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

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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι Β. Μεγαλοοικονόμου, Δ. Χριστοδουλάκης Εισαγωγή στις Βάσεις Δεδομένων Ακ.Έτος 2008-09 (μεβάσητιςσημειώσειςτωνsilberchatz, Korth και Sudarshan) Εισαγωγή Γιατί

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

Δομές Ακολουθίας- Επιλογής - Επανάληψης. Δομημένος Προγραμματισμός

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

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

Vodafone Business Connect

Vodafone Business Connect Vodafone Business Connect Vodafone Business WebHosting Αναλυτικός Οδηγός Χρήσης MSSQL Manager Αναλυτικός οδηγός χρήσης: MS SQL Manager Vodafone Business Connect - Υπηρεσίες φιλοξενίας εταιρικού e-mail

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

Δομές Δεδομένων και Αλγόριθμοι. Λουκάς Γεωργιάδης

Δομές Δεδομένων και Αλγόριθμοι. Λουκάς Γεωργιάδης Δομές Δεδομένων και Αλγόριθμοι Λουκάς Γεωργιάδης loukas@cs.uoi.gr www.cs.uoi.gr/~loukas Στόχοι Μαθήματος Η σχεδίαση και ανάλυση αλγορίθμων και δομών δεδομένων αποτελεί σημαντικό τμήμα της πληροφορικής.

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

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

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

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

Διαγράμματα Κλάσεων στη Σχεδίαση

Διαγράμματα Κλάσεων στη Σχεδίαση Διαγράμματα Κλάσεων στη Σχεδίαση περιεχόμενα παρουσίασης Αφηρημένες κλάσεις Ιδιότητες Λειτουργίες Απλοί τύποι Συσχετίσεις Εξάρτηση Διεπαφές αφηρημένες κλάσεις Οι αφηρημένες κλάσεις δεν μπορούν να δημιουργήσουν

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

Διαδικασίες παραγωγής λογισμικού. Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση

Διαδικασίες παραγωγής λογισμικού. Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Διαδικασίες παραγωγής λογισμικού Περιεχόμενα Παρουσίαση μοντέλων διεργασίας ανάπτυξης λογισμικού Περιγραφή τριών γενικών μοντέλων διεργασίας ανάπτυξης λογισμικού Γενική περιγραφή των διαδικασιών που περιλαμβάνονται

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Εισαγωγή στη Python Νικόλαος Ζ. Ζάχαρης Αναπληρωτής

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

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

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

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

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 11 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 11 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Γιώργος Δημητρίου Μάθημα 11 ο Γεννήτορας Τελικού Κώδικα Ο γεννήτορας τελικού κώδικα είναι το πιο κρίσιμο τμήμα του μεταγλωττιστή και αντιμετωπίζει πολύπλοκα προβλήματα Βέλτιστη χρήση της αρχιτεκτονικής

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

Τεχνολογία Δικτύων Επικοινωνιών (Ενότητα Πρωτόκολλα και Αρχιτεκτονική Δικτύου)

Τεχνολογία Δικτύων Επικοινωνιών (Ενότητα Πρωτόκολλα και Αρχιτεκτονική Δικτύου) Τεχνολογία Δικτύων Επικοινωνιών (Ενότητα 1.7 - Πρωτόκολλα και Αρχιτεκτονική Δικτύου) Πρωτόκολλο είναι ένα σύνολο κανόνων που πρέπει να ακολουθήσουν όλοι οι σταθμοί εργασίας σε ένα δίκτυο ώστε να μπορούν

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

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

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

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

TRAVIS TRAFFIC VIOLATION INFORMATION SYSTEM ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΗΣΗΣ ΠΑΡΑΒΑΣΕΩΝ ΦΩΤΟΕΠΙΣΗΜΑΝΣΗΣ

TRAVIS TRAFFIC VIOLATION INFORMATION SYSTEM ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΗΣΗΣ ΠΑΡΑΒΑΣΕΩΝ ΦΩΤΟΕΠΙΣΗΜΑΝΣΗΣ TRAFFIC VIOLATION INFORMATION SYSTEM ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΗΣΗΣ ΠΑΡΑΒΑΣΕΩΝ ΦΩΤΟΕΠΙΣΗΜΑΝΣΗΣ TRAVIS-V1-2012 TRAVIS Λογισμικό Διαχείρισης Παραβάσεων Φωτοεπισήμανσης Το σύστημα διαχείρισης παραβάσεων φωτοεπισήμανσης

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

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ (Οι ερωτήσεις µε κίτρινη υπογράµµιση είναι εκτός ύλης για φέτος) ΕΙΣΑΓΩΓΗ Q1. Οι Πρωταρχικοί τύποι (primitive types) στη Java 1. Είναι όλοι οι ακέραιοι και όλοι οι πραγµατικοί

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

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

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

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

Ενδεικτικές Ερωτήσεις Θεωρίας

Ενδεικτικές Ερωτήσεις Θεωρίας Ενδεικτικές Ερωτήσεις Θεωρίας Κεφάλαιο 2 1. Τι καλούμε αλγόριθμο; 2. Ποια κριτήρια πρέπει οπωσδήποτε να ικανοποιεί ένας αλγόριθμος; 3. Πώς ονομάζεται μια διαδικασία που δεν περατώνεται μετά από συγκεκριμένο

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX. Συστήματα Αρχείων. Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX. Συστήματα Αρχείων. Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX Μάθημα: Λειτουργικά Συστήματα Συστήματα Αρχείων Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης (clam@unipi.gr) Δρ. Α. Γαλάνη (agalani@unipi.gr) Λειτουργικά Συστήματα 1 Αρχεία με Χαρτογράφηση

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

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

Ενότητα 3: Διαχείριση πληροφοριακών πόρων με τη χρήση βάσεων δεδομένων Ενότητα 3: Διαχείριση πληροφοριακών πόρων με τη χρήση βάσεων δεδομένων YouTube Ιδρύθηκε το 2005 Στόχος του ήταν να δημιουργήσει μία παγκόσμια κοινότητα Βάση δεδομένων βίντεο Μέσα σε ένα χρόνο από τη δημιουργία

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

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

Προβλήματα, αλγόριθμοι, ψευδοκώδικας Προβλήματα, αλγόριθμοι, ψευδοκώδικας October 11, 2011 Στο μάθημα Αλγοριθμική και Δομές Δεδομένων θα ασχοληθούμε με ένα μέρος της διαδικασίας επίλυσης υπολογιστικών προβλημάτων. Συγκεκριμένα θα δούμε τι

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

1 η Εργαστηριακή Άσκηση MATLAB Εισαγωγή

1 η Εργαστηριακή Άσκηση MATLAB Εισαγωγή ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΗΠΕΙΡΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Τ.Ε. Εργαστήριο Επεξεργασία Εικόνας & Βίντεο 1 η Εργαστηριακή Άσκηση MATLAB Εισαγωγή Νικόλαος Γιαννακέας Άρτα 2018 1 Εισαγωγή Το Matlab

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

GET SDI PORTAL v1. Οδηγός Βοήθειας

GET SDI PORTAL v1. Οδηγός Βοήθειας GET SDI PORTAL v1 Οδηγός Βοήθειας Μεταδεδομένα εγγράφου Στοιχείο/Element Τιμή/value Ημερομηνία/Date 2011-06-16 Τίτλος/Title GETSDIPortal_v1_Help_v1.0 Θέμα/Subject Οδηγός Βοήθειας Έκδοση/Version 1.0 Σελίδα

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

Συνοπτικός Οδηγός Χρήσης του Moodle για τον Καθηγητή

Συνοπτικός Οδηγός Χρήσης του Moodle για τον Καθηγητή Συνοπτικός Οδηγός Χρήσης του Moodle για τον Καθηγητή 1 Πίνακας Περιεχομένων 1. Εισαγωγή... 4 1.1 Περιβάλλον Moodle...4 1.2 Χρήση ονόματος χρήστη και κωδικού...4 1.3 Δημιουργία νέου μαθήματος...4 1.3.1

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

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL 8.1. Εισαγωγή ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PACAL Πως προέκυψε η γλώσσα προγραμματισμού Pascal και ποια είναι τα γενικά της χαρακτηριστικά; Σχεδιάστηκε από τον Ελβετό επιστήμονα της Πληροφορικής Nicklaus Wirth to

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

Κεφάλαιο 4: Λογισμικό Συστήματος

Κεφάλαιο 4: Λογισμικό Συστήματος Κεφάλαιο 4: Λογισμικό Συστήματος Ερωτήσεις 1. Να αναφέρετε συνοπτικά τις κατηγορίες στις οποίες διακρίνεται το λογισμικό συστήματος. Σε ποια ευρύτερη κατηγορία εντάσσεται αυτό; Το λογισμικό συστήματος

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

Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες)

Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι

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

Σου προτείνω να τυπώσεις τις επόμενες τέσσερις σελίδες σε ένα φύλο διπλής όψης και να τις έχεις μαζί σου για εύκολη αναφορά.

Σου προτείνω να τυπώσεις τις επόμενες τέσσερις σελίδες σε ένα φύλο διπλής όψης και να τις έχεις μαζί σου για εύκολη αναφορά. AeppAcademy.com facebook.com/aeppacademy Γεια. Σου προτείνω να τυπώσεις τις επόμενες τέσσερις σελίδες σε ένα φύλο διπλής όψης και να τις έχεις μαζί σου για εύκολη αναφορά. Καλή Ανάγνωση & Καλή Επιτυχία

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΝΑΠΤΥΞΗ ΚΑΙ ΣΧΕΔΙΑΣΗ ΛΟΓΙΣΜΙΚΟΥ Η γλώσσα προγραμματισμού C ΕΡΓΑΣΤΗΡΙΟ 2: Εκφράσεις, πίνακες και βρόχοι 14 Απριλίου 2016 Το σημερινό εργαστήριο

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

Μάθημα 3: Αρχιτεκτονική Υπολογιστών

Μάθημα 3: Αρχιτεκτονική Υπολογιστών Μάθημα 3: Αρχιτεκτονική Υπολογιστών 3.1 Περιφερειακές μονάδες και τμήμα επεξεργασίας Στην καθημερινή μας ζωή ερχόμαστε συνέχεια σε επαφή με υπολογιστές. Ο υπολογιστής είναι μια συσκευή που επεξεργάζεται

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

Ορισμοί Σχεσιακού Μοντέλου και (απλές)τροποποιήσεις Σχέσεων στην SQL. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

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

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ 2011-2012 Επιμέλεια: Ομάδα Διαγωνισμάτων από το Στέκι των Πληροφορικών Θέμα Α Α1. Να γράψετε στο τετράδιό σας τον

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

FORTRAN και Αντικειμενοστραφής Προγραμματισμός

FORTRAN και Αντικειμενοστραφής Προγραμματισμός FORTRAN και Αντικειμενοστραφής Προγραμματισμός Παραδόσεις Μαθήματος 2016 Δρ Γ Παπαλάμπρου Επίκουρος Καθηγητής ΕΜΠ georgepapalambrou@lmentuagr Εργαστήριο Ναυτικής Μηχανολογίας (Κτίριο Λ) Σχολή Ναυπηγών

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

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

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

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

Σύντομη παρουσίαση των εργαλείων/εντολών telnet, ping, traceroute nslookup και nmap, zenmap

Σύντομη παρουσίαση των εργαλείων/εντολών telnet, ping, traceroute nslookup και nmap, zenmap Σύντομη παρουσίαση των εργαλείων/εντολών telnet, ping, traceroute nslookup και nmap, zenmap Version 2.00 Επιμέλεια Σημειώσεων: Δημήτρης Κόγιας Πατρικάκης Χαράλαμπος Πίνακας περιεχομένων TELNET... 2 PING...

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

Κεφάλαιο 7. ΕΠΑΛ Σύμης Εφαρμογές πληροφορικής Ερωτήσεις επανάληψης

Κεφάλαιο 7. ΕΠΑΛ Σύμης Εφαρμογές πληροφορικής Ερωτήσεις επανάληψης ΕΠΑΛ Σύμης Εφαρμογές πληροφορικής Ερωτήσεις επανάληψης Κεφάλαιο 7 1. Σε τι διαφέρει ο Η/Υ από τις υπόλοιπες ηλεκτρικές και ηλεκτρονικές συσκευές; Που οφείλεται η δυνατότητά του να κάνει τόσο διαφορετικές

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

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

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

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

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

Field Service Management ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ Field Service Management ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ 1 ΠΕΡΙΕΧΟΜΕΝΑ 1. ΑΝΑΛΥΣΗ ΜΕΝΟΥ ΕΦΑΡΜΟΓΗΣ... 4 2. ΕΠΕΞΗΓΗΣΗ ΚΕΝΤΡΙΚΟΥ ΜΕΝΟΥ ΚΑΡΤΕΛΑΣ... 5 3. ΔΗΜΙΟΥΡΓΙΑ ΠΕΛΑΤΗ... 6 4. ΑΝΑΖΗΤΗΣΗ ΠΕΛΑΤΗ... 6 5. ΕΠΕΞΕΡΓΑΣΙΑ/ΔΙΑΓΡΑΦΗ

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

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

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

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

Αρχές Δικτύων Επικοινωνιών. Επικοινωνίες Δεδομένων Μάθημα 4 ο

Αρχές Δικτύων Επικοινωνιών. Επικοινωνίες Δεδομένων Μάθημα 4 ο Αρχές Δικτύων Επικοινωνιών Επικοινωνίες Δεδομένων Μάθημα 4 ο Τα επικοινωνιακά δίκτυα και οι ανάγκες που εξυπηρετούν Για την επικοινωνία δύο συσκευών απαιτείται να υπάρχει μεταξύ τους σύνδεση από σημείο

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

3 Αλληλεπίδραση Αντικειμένων

3 Αλληλεπίδραση Αντικειμένων Αφαίρεση και Αρθρωσιμότητα 3 Αλληλεπίδραση Αντικειμένων Πώς συνεργάζονται τα αντικείμενα που δημιουργούμε Αφαίρεση (abstraction) είναι η δυνατότητα να αγνοούμε τις λεπτομέρειες και να εστιάζουμε την προσοχή

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

ΑΣΦΑΛΕΙΑ ΔΕΔΟΜΕΝΩΝ ΣΤΗΝ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ (Μηχανισμοί Ελέγχου Προσπέλασης)

ΑΣΦΑΛΕΙΑ ΔΕΔΟΜΕΝΩΝ ΣΤΗΝ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ (Μηχανισμοί Ελέγχου Προσπέλασης) ΑΣΦΑΛΕΙΑ ΔΕΔΟΜΕΝΩΝ ΣΤΗΝ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ (Μηχανισμοί Ελέγχου Προσπέλασης) Καλλονιάτης Χρήστος Επίκουρος Καθηγητής Τμήμα Πολιτισμικής Τεχνολογίας και Επικοινωνίας, Πανεπιστήμιο Αιγαίου http://www.ct.aegean.gr/people/kalloniatis

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 3) Ουρανία Σμυρνάκη

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 3) Ουρανία Σμυρνάκη ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 3) Ουρανία Σμυρνάκη 1 3 η ενότητα: Εισαγωγή στις Βάσεις Δεδομένων και στην MySQL

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

Εισαγωγή. Κατανεµηµένα Συστήµατα 01-1

Εισαγωγή. Κατανεµηµένα Συστήµατα 01-1 Εισαγωγή Υλισµικό Λογισµικό Αρχές σχεδίασης ιαφάνεια Κλιµάκωση Παρεχόµενες υπηρεσίες Μοντέλο πελάτη εξυπηρετητή Μοντέλο πελάτη εξυπηρετητή τριών επιπέδων Κατανοµή επεξεργασίας Κατανεµηµένα Συστήµατα 01-1

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

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

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

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

Εργαλεία Ανάπτυξης Εφαρμογών Internet I

Εργαλεία Ανάπτυξης Εφαρμογών Internet I Εργαλεία Ανάπτυξης Εφαρμογών Internet I 2: Εισαγωγή στον περιβάλλον με δομή πελάτη-εξυπηρετητή Σταύρος Καμμάς 4 φάσεις διαδικτυακών εφαρμογών 1. Εφαρμογές στατικής πληροφόρησης 2. Εφαρμογές με απλή αμφίδρομη

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

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr Λειτουργικά

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

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2 Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2 1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων Πληροφορικής 2. Ο αλγόριθμος αποτελείται από ένα πεπερασμένο σύνολο εντολών 3. Ο αλγόριθμος

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

ΚΕΦΑΛΑΙΟ 2: Τύποι δεδομένων και εμφάνιση στοιχείων...33

ΚΕΦΑΛΑΙΟ 2: Τύποι δεδομένων και εμφάνιση στοιχείων...33 ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος του συγγραφέα... 13 Πρόλογος του καθηγητή Τιμολέοντα Σελλή... 15 ΚΕΦΑΛΑΙΟ 1: Εργαλεία γλωσσών προγραμματισμού...17 1.1 Γλώσσες προγραμματισμού τρίτης γεννεάς... 18 τι είναι η γλώσσα

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

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

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

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

Πρότυπο Αναφοράς Open Systems Interconnection (OSI) Επικοινωνίες Δεδομένων Μάθημα 5 ο

Πρότυπο Αναφοράς Open Systems Interconnection (OSI) Επικοινωνίες Δεδομένων Μάθημα 5 ο Πρότυπο Αναφοράς Open Systems Interconnection (OSI) Επικοινωνίες Δεδομένων Μάθημα 5 ο Πρωτόκολλα και Αρχιτεκτονική Δικτύου Για να ανταλλάξουν δεδομένα δύο σταθμοί, εκτός από την ύπαρξη διαδρομής μεταξύ

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

Τι είναι αλγόριθμος; Υποπρογράμματα (υποαλγόριθμοι) Βασικές αλγοριθμικές δομές

Τι είναι αλγόριθμος; Υποπρογράμματα (υποαλγόριθμοι) Βασικές αλγοριθμικές δομές Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι

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

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

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

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

Εργαστήριο «Τεχνολογία Πολιτισμικού Λογισμικού» Ενότητα. Επεξεργασία πινάκων

Εργαστήριο «Τεχνολογία Πολιτισμικού Λογισμικού» Ενότητα. Επεξεργασία πινάκων Ενότητα 4 Επεξεργασία πινάκων 36 37 4.1 Προσθήκη πεδίων Για να εισάγετε ένα πεδίο σε ένα πίνακα που υπάρχει ήδη στη βάση δεδομένων σας, βάζετε τον κέρσορα του ποντικιού στο πεδίο πάνω από το οποίο θέλετε

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

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

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

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

Εισαγωγή στην Αριθμητική Ανάλυση

Εισαγωγή στην Αριθμητική Ανάλυση Εισαγωγή στην Αριθμητική Ανάλυση Εισαγωγή στη MATLAB ΔΙΔΑΣΚΩΝ: ΓΕΩΡΓΙΟΣ ΑΚΡΙΒΗΣ ΒΟΗΘΟΙ: ΔΗΜΗΤΡΙΑΔΗΣ ΣΩΚΡΑΤΗΣ, ΣΚΟΡΔΑ ΕΛΕΝΗ E-MAIL: SDIMITRIADIS@CS.UOI.GR, ESKORDA@CS.UOI.GR Τι είναι Matlab Είναι ένα περιβάλλον

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

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

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

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

ΟΔΗΓΟΣ ΧΡΗΣΗΣ(ΜΑΝUΑL) ΔΙΑΧΕΙΡΙΣΤΗ-ΧΡΗΣΤΗ.

ΟΔΗΓΟΣ ΧΡΗΣΗΣ(ΜΑΝUΑL) ΔΙΑΧΕΙΡΙΣΤΗ-ΧΡΗΣΤΗ. ΟΔΗΓΟΣ ΧΡΗΣΗΣ(ΜΑΝUΑL) ΔΙΑΧΕΙΡΙΣΤΗ-ΧΡΗΣΤΗ. Οδηγός Διαχειριστή Το m-learning Toolkit είναι μια ολοκληρωμένη πλατφόρμα εξ αποστάσεως εκπαίδευσης που έχει σχεδιαστεί για να υπάρχει η δυνατότητα της πρόσβασης

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

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Άσκηση 1 α) Η δομή σταθμισμένης ένωσης με συμπίεση διαδρομής μπορεί να τροποποιηθεί πολύ εύκολα ώστε να υποστηρίζει τις

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

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, Ελληνική

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

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

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 8 Ο. Ταξινόμηση και Αναζήτηση Συναρτήσεις χειρισμού οθόνης ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 8 Ο. Ταξινόμηση και Αναζήτηση Συναρτήσεις χειρισμού οθόνης ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 8 Ο Ταξινόμηση και Αναζήτηση Συναρτήσεις χειρισμού οθόνης ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 2010-11 1 Εισαγωγή Η τακτοποίηση των δεδομένων με ιδιαίτερη σειρά είναι πολύ σημαντική λειτουργία που ονομάζεται

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

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

ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΘΕΜΑ 1 (Α) Σημειώστε δίπλα σε κάθε πρόταση «Σ» ή «Λ» εφόσον είναι σωστή ή λανθασμένη αντίστοιχα. 1. Τα συντακτικά λάθη ενός προγράμματος

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

Λιβανός Γιώργος Εξάμηνο 2017Β

Λιβανός Γιώργος Εξάμηνο 2017Β Λιβανός Γιώργος Εξάμηνο 2017Β Υπολογιστικό σύστημα Υλικό (hardware) Λογισμικό (Software) Ολοκληρωμένα κυκλώματα, δίσκοι, οθόνη, κλπ. Λογισμικό συστήματος Προγράμματα εφαρμογών Χρειάζονται ένα συντονιστή!!!

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

Επιλέξτε Σωστό ή Λάθος για καθένα από τα παρακάτω:

Επιλέξτε Σωστό ή Λάθος για καθένα από τα παρακάτω: Επιλέξτε Σωστό ή Λάθος για καθένα από τα παρακάτω: 1ο ΓΕΛ Καστοριάς Βασικές Έννοιες Αλγορίθμων Δομή Ακολουθίας (κεφ. 2 και 7 σχολικού βιβλίου) 1. Οι μεταβλητές αντιστοιχίζονται από τον μεταγλωττιστή κάθε

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

Διαχρονικές δομές δεδομένων

Διαχρονικές δομές δεδομένων Διαχρονικές δομές δεδομένων Μια τυπική δομή δεδομένων μεταβάλλεται με πράξεις εισαγωγής ή διαγραφής Π.χ. κοκκινόμαυρο δένδρο εισαγωγή 0 18 0 5 39 73 1 46 6 80 Αποκατάσταση ισορροπίας 5 39 73 0 46 6 80

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

Orchid: Integrating Schema Mapping and ETL ICDE 2008

Orchid: Integrating Schema Mapping and ETL ICDE 2008 Orchid: Integrating Schema Mapping and ETL ICDE 2008 Δομουχτσίδης Παναγιώτης Γενικά Data warehouse (DW): Είναι μία αποθήκη πληροφοριών οργανωμένη από ένα ενοποιημένο μοντέλο. Τα δεδομένα συλλέγονται από

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

Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον υποδειγματική διδασκαλία Κεφ. 3 Δομές Δεδομένων & αλγόριθμοι

Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον υποδειγματική διδασκαλία Κεφ. 3 Δομές Δεδομένων & αλγόριθμοι Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον υποδειγματική διδασκαλία Κεφ. 3 Δομές Δεδομένων & αλγόριθμοι Αραποστάθης Μάριος Καθηγητής Πληροφορικής Πειραματικού Λυκείου Βαρβακείου http://users.sch.gr/mariosarapostathis

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

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης Η συνάρτηση printf() Η συνάρτηση printf() χρησιμοποιείται για την εμφάνιση δεδομένων στο αρχείο εξόδου stdout (standard output stream), το οποίο εξ ορισμού συνδέεται με την οθόνη Η συνάρτηση printf() δέχεται

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

Εισαγωγή στην εφαρμογή Βασική Σελίδα (Activity) Αναζήτηση Πελάτη... 6 Προβολή Πελάτη... 7 Επεξεργασία Πελάτη... 10

Εισαγωγή στην εφαρμογή Βασική Σελίδα (Activity) Αναζήτηση Πελάτη... 6 Προβολή Πελάτη... 7 Επεξεργασία Πελάτη... 10 Περιεχόμενα Εισαγωγή στην εφαρμογή... 2 Βασική Σελίδα (Activity)... 3 Ρυθμίσεις... 3 Πελάτες... 6 Αναζήτηση Πελάτη... 6 Προβολή Πελάτη... 7 Επεξεργασία Πελάτη... 10 Αποθήκη... 11 Αναζήτηση προϊόντος...

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

Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ

Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ Σχεδιασμός και υλοποίηση υποδομής σημείωσης διεργασιών στον

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

Ακαδημαϊκό Έτος , Χειμερινό Εξάμηνο Μάθημα: Εργαστήριο «Πληροφορική Υγείας» ΕΙΣΑΓΩΓΗ ΣΤΗΝ ACCESS

Ακαδημαϊκό Έτος , Χειμερινό Εξάμηνο Μάθημα: Εργαστήριο «Πληροφορική Υγείας» ΕΙΣΑΓΩΓΗ ΣΤΗΝ ACCESS Ακαδημαϊκό Έτος 2016-2017, Χειμερινό Εξάμηνο Μάθημα: Εργαστήριο «Πληροφορική Υγείας» ΕΙΣΑΓΩΓΗ ΣΤΗΝ ACCESS A. Εισαγωγή στις βάσεις δεδομένων - Γνωριμία με την ACCESS B. Δημιουργία Πινάκων 1. Εξήγηση των

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

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

Περιεχόμενα. Κεφάλαιο 1 Εισαγωγή στην Access...9. Κεφάλαιο 2 Χειρισμός πινάκων... 25 Περιεχόμενα Κεφάλαιο 1 Εισαγωγή στην Access...9 Γνωριμία με την Access... 12 Δημιουργία βάσης δεδομένων... 18 Άνοιγμα και κλείσιμο βάσης δεδομένων... 21 Ερωτήσεις ανακεφαλαίωσης... 22 Πρακτική εξάσκηση...

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

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος. 1. Δώστε τον ορισμό του προβλήματος. 2. Σι εννοούμε με τον όρο επίλυση ενός προβλήματος; 3. Σο πρόβλημα του 2000. 4. Σι εννοούμε με τον όρο κατανόηση προβλήματος; 5. Σι ονομάζουμε χώρο προβλήματος; 6.

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

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

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

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

Ένα αφαιρετικό πραγματικού χρόνου μοντέλο λειτουργικού συστήματος για MPSoC

Ένα αφαιρετικό πραγματικού χρόνου μοντέλο λειτουργικού συστήματος για MPSoC Ένα αφαιρετικό πραγματικού χρόνου μοντέλο λειτουργικού συστήματος για MPSoC Αρχιτεκτονική Πλατφόρμας Μπορεί να μοντελοποιηθεί σαν ένα σύνολο από διασυνδεδεμένα κομμάτια: 1. Στοιχεία επεξεργασίας (processing

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. 1 ο ΚΕΦΑΛΑΙΟ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ 1 ο ΚΕΦΑΛΑΙΟ 1) Τι είναι πρόβλημα (σελ. 3) 2) Τι είναι δεδομένο, πληροφορία, επεξεργασία δεδομένων (σελ. 8) 3) Τι είναι δομή ενός προβλήματος (σελ. 8)

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4 «Προγραμματισμός Η/Υ» - Τετράδιο Εργαστηρίου #4 2 Γενικά Στο Τετράδιο #4 του Εργαστηρίου θα αναφερθούμε σε θέματα διαχείρισης πινάκων

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