Κεφάλαιο 2 Ερωτήµατα σε ρεύµατα δεδοµένων

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

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

Ευρετήριο όρων. Η ηµερολόγιο 3 δείκτης 114. Ι δεικτοδότηση , 191 ιστόγραµµα 53 δηλωτική γλώσσα 70 διάδοση δεδοµένων 199

Οπτικοποίηση ρευµάτων τροχιάς κινούµενων αντικειµένων

Ακεραιότητα και Ασφάλεια Μέρος 1 Σχεδιασμός Βάσεων Δεδομένων

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

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

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

Certified Data Base Designer (CDBD)

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

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

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

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

ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

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

J-GANNO. Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β, Φεβ.1998) Χάρης Γεωργίου

αβεβαιότητα (uncertainty) Η έλλειψη ακριβούς γνώσης ή το σφάλµα που σχετίζεται µε την πραγµατική θέση ενός κινούµενου αντικειµένου.

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

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

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

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

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

Αριθμητική εύρεση ριζών μη γραμμικών εξισώσεων

4.4 Μετατροπή από μία μορφή δομής επανάληψης σε μία άλλη.

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

6. Διαχείριση Έργου. Έκδοση των φοιτητών

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

ΑΝΑΛΥΣΗ ΕΥΑΙΣΘΗΣΙΑΣ Εισαγωγή

Σύβακας Σταύρος ΠΕ19,MSc. IT ΣΥΒΑΚΑΣ ΣΤΑΥΡΟΣ ΕΡΩΤΗΜΑΤΑ

Αδιέξοδα Ανάθεση Πόρων (Deadlocks Resource Allocation)

Περιεχόµενα. Πληροφοριακά Συστήµατα: Κατηγορίες και Κύκλος Ζωής. Π.Σ. ιαχείρισης Πράξεων. Π.Σ. ιοίκησης. Κατηγορίες Π.Σ. Ο κύκλος ζωής Π.Σ.

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

Κατακερματισμός (Hashing)

Πρωτόκολλο TCP Διάλεξη ΙΙI

Αικατερίνη Τσούμα Ερευνήτρια Κέντρου Προγραμματισμού και Οικονομικών Ερευνών (ΚΕΠΕ)

Χαιρετισμός του Ειδικού Γραμματέα για την Κοινωνία της Πληροφορίας Καθ. Β. Ασημακόπουλου. στο HP day

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

Αδιέξοδα Ανάθεση Πόρων (Deadlocks Resource Allocation)

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

Εγγυημένη ποιότητα υπηρεσίας

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

Μάθημα 7 ο. Αλγόριθμοι Χρονοδρομολόγησης

Λάμπρος Καφίδας Εργασία Σχεδιασμός & Διοίκηση Έργου Ιανουάριος 2005 ΚΕΦΑΛΑΙΟ 1

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

ΙΑΧΕΙΡΙΣΗ ΟΣΟΛΗΨΙΩΝ Να θυµηθούµε:

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

1 η ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ

Εργαστήριο Λειτουργικών Συστημάτων - Αλγόριθμοι Χρονοπρογραμματισμού. Εργαστηριακή Άσκηση

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

Νέες τεχνολογίες εισάγονται ή χρησιµοποιούνται

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

ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

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

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

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

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

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

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων Μανουσόπουλος Χρήστος

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

Λειτουργικά Συστήματα (Λ/Σ)

ΕΝΟΤΗΤΑ 2 η ΙΑΧΕΙΡΙΣΗ ΡΟΗΣ ΕΡΓΑΣΙΑΣ (WORKFLOW MANAGEMENT) 2.1 Εισαγωγή

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ ΘΕΜΑ Α

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

Αυτόματο Κλείσιμο Ισολογισμού

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

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

3. Προσομοίωση ενός Συστήματος Αναμονής.

Ψευδοκώδικας. November 7, 2011

Ομιλία του Καθηγητή B. Ασημακόπουλου Ειδικού Γραμματέα για την Κοινωνία της Πληροφορίας

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

Περί της Ταξινόμησης των Ειδών

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

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

Υδρονοµέας Σύστηµα υποστήριξης της διαχείρισης υδατικών πόρων

Αυτόματο Κλείσιμο Ισολογισμού

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

Επιλογή και επανάληψη. Λογική έκφραση ή συνθήκη

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

Λειτουργικά Συστήματα Πραγματικού Χρόνου

4.1 Άνοιγμα υπάρχοντος βιβλίου εργασίας

(18 ο ) ΚΛΑΣΜΑΤΙΚΗ ΑΝΑΓΩΓΗ - ΙI: «διάμεσος &θεσιακή επιλογή στοιχείου»

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

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

Κεφάλαιο 6: Προσομοίωση ενός συστήματος αναμονής

BΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΕΞΕΤΑΣΗ ΦΕΒΡΟΥΑΡΙΟΥ 2005

Πανεπιστήµιο Θεσσαλίας

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

Απάντηση του Ευρωπαϊκού Ελεγκτικού Συνεδρίου στη δεύτερη έκθεση αξιολόγηση της Επιτροπής σύμφωνα με το άρθρο 318

Μάθημα 7: Αλγόριθμοι Χρονοδρομολόγησης

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

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

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

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

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

ΑΠΟΦΑΣΗ ΡΑΕ ΥΠ ΑΡΙΘΜ. 213/2006

Στοιχεία από την αρχιτεκτονική των μικροϋπολογιστών

Η Αμερικάνικη Πλειοδοτική Δημοπρασία (Yankee Forward Auction)

Transcript:

Κεφάλαιο 2 Ερωτήµατα σε ρεύµατα δεδοµένων 2.1 Εισαγωγή ὶς ἐς τὸν αὐτὸν ποταµὸν οὐκ ἂν ἐµβαίης. Ἡράκλειτος (6 ος αιώνας π.χ.) Από τη φύση τους, οι εφαρµογές παρακολούθησης διατηρούν συνεχώς ένα ενεργό σύνολο ερωτηµάτων τα οποία υπολογίζονται επί των δεδοµένων που διαβιβάζονται στο σύστηµα. Η επεξεργασία τέτοιων ερωτηµάτων διαρκείας (continuous queries), στα οποία εκτιµάται ότι θα αφιερώνεται το µεγαλύτερο µέρος της επεξεργασίας, δεν µπορεί να διεκπεραιωθεί αποδοτικά από ένα συµβατικό σύστηµα διαχείρισης βάσεων δεδοµένων (Σ Β ). Σε ένα τυπικό Σ Β, η υποβολή ερωτηµάτων στα αποθηκευµένα δεδοµένα αποτελεί το γεγονός που ενεργοποιεί τους υπολογισµούς (pull-model). Στην περίπτωση των ρευµάτων συµβαίνει το ανάποδο: υπάρχει ένα προσδιορισµένο σύνολο ερωτηµάτων το οποίο θα πρέπει να ανταποκρίνεται στην διαρκή άφιξη των στοιχείων (pushmodel). Η καινοτοµία που εισάγεται µε τα ερωτήµατα διαρκείας υπερβαίνει την ανάγκη απλής επεξεργασίας των δεδοµένων πλειάδα προς πλειάδα, αφού ο ρυθµός παραγωγής των στοιχείων είναι ταχύς και φυσικά οι χρήστες αναµένουν έγκαιρες απαντήσεις online. Είναι πολύ πιθανόν ότι τα ρεύµατα που καταφθάνουν είναι ανεξάντλητα ή τουλάχιστον δεν είναι γνωστό πότε θα σταµατήσουν να παρέχουν στοιχεία. Εποµένως, τα ερωτήµατα που τίθενται σ αυτά προϋποθέτουν διαφορετική σηµασιολογία (semantics), χρήση µη ανασχετικών τελεστών (non-blocking query operators) και ανοχή σε σφάλµατα (fault tolerance). Οι τελεστές επιστρέφουν αποτελέσµατα σταδιακά (incrementally), εποµένως είναι µάλλον απαραίτητος ο ορισµός χρονικών παραθύρων προκειµένου να περιοριστεί ο όγκος των στοιχείων που θα περάσουν από επεξεργασία. Επιπλέον, αφού τα ερωτήµατα διαρκείας εκτιµάται ότι θα εκτελούνται επί µακρόν, θα πρέπει να ληφθεί πρόνοια σχετικά µε την προσαρµογή της εκτέλεσής τους στις απρόοπτα µεταβαλλόµενες συνθήκες που θα επικρατούν στο σύστηµα (διαθέσιµοι πόροι, ρυθµός άφιξης των στοιχείων, πλήθος ενεργοποιηµένων ερωτηµάτων κ.ά.). 31

Ερωτήµατα σε ρεύµατα δεδοµένων. Το γεγονός ότι τα στοιχεία των ρευµάτων προέρχονται από πηγές εκτός του συστήµατος, συνεπάγεται ότι τα προσχέδια εκτέλεσης ερωτηµάτων δεν ασκούν κανενός είδους έλεγχο πάνω στο ρεύµα. Συνεπώς, τα περιεχόµενα του ρεύµατος µπορούν να διαβαστούν µόνο µια φορά και µάλιστα κατά τη σειρά που έχουν παραχθεί. Ο αλγόριθµος επεξεργασίας πιθανόν να απαιτήσει τη διατήρηση κάποιου τµήµατος του ρεύµατος, αλλά το εύρος των στοιχείων που θα καλύπτει εξαρτάται άµεσα από τη διαθέσιµη µνήµη. Επιπλέον, η ύπαρξη πολλαπλών ρευµάτων από διαφορετικές πηγές εγείρει το ζήτηµα της εύρεσης κάποιας σχετικής διάταξης µεταξύ των στοιχείων, µην επιτρέποντας οποιαδήποτε υπόθεση σχετικά µε τη σχετική σειρά ανάγνωσης των πλειάδων από τα διαφορετικά ρεύµατα. 2.2 Ερωτήµατα διαρκείας Ανατρέχοντας στη συζήτηση του ολοκληρωµένου παραδείγµατος της ενότητας 1.5, τα ερωτήµατα διαρκείας είναι δυνατόν να εµπλακούν σε µια ποικιλία περιπτώσεων: Εάν κρίνεται απαραίτητο να υπάρχει πάντοτε διαθέσιµη η τρέχουσα απάντηση R στο ερώτηµα Q (λ.χ. ένα ερώτηµα επιλογής στοιχείων µε κάποια κριτήρια), τότε αυτή θα πρέπει να αποθηκεύεται µε κάποιο τρόπο. Ωστόσο, εάν υποτεθεί ότι το ρεύµα δεδοµένων εισόδου είναι ανεξάντλητο, τότε προφανώς δεν µπορούν να τεθούν περιορισµοί ούτε στο µέγεθος της απάντησης. Αφού η απάντηση δεν µπορεί να αποθηκευτεί, ίσως θα µπορούσε να ενηµερώνεται συνεχώς µε νέες εγγραφές, καθώς αυτές προκύπτουν. Στην περίπτωση αυτή, η απάντηση λαµβάνει τη µορφή ρεύµατος δεδοµένων, αλλά οι περιορισµένες δυνατότητες σε αποθηκευτικό χώρο είναι και πάλι καθοριστικές, ιδίως όταν χρειάζεται να καταγραφεί η είσοδος νέων πλειάδων στο αποτέλεσµα. Χαρακτηριστικό παράδειγµα είναι η αδυναµία υπολογισµού του αποτελέσµατος της σύνδεσης ενός ρεύµατος δεδοµένων µε τον εαυτό του. Τα πράγµατα περιπλέκονται περισσότερο εάν επιτραπούν διαγραφές (deletions) ή ενηµερώσεις (updates) στις πλειάδες του αποτελέσµατος. Για να συµβεί κάτι τέτοιο, δεν χρειάζεται απαραίτητα να υπάρχουν αντίστοιχης µορφής αλλαγές (διαγραφές ή ενηµερώσεις) στο πρωτογενές ρεύµα δεδοµένων. Για παράδειγµα, η ύπαρξη ενός τελεστή συνάθροισης (aggregate operator) σε ένα ερώτηµα Q επί των εισερχόµενων δεδοµένων αρκεί για να αλλοιώσει το µέγεθος και το περιεχόµενο του αποτελέσµατος, αφού η συνεχής έλευση νέων στοιχείων υποχρεώνει σε αναθεώρηση της απάντησης. Εάν τέλος το ίδιο το ρεύµα δεδοµένων γενικά υφίσταται αλλαγές, είναι αναµενόµενο ότι και η απάντηση R θα έχει ανάλογη συµπεριφορά, ιδίως εάν το ερώτηµα Q καλύπτει µεγάλο µέρος της ιστορικής εξέλιξης του ρεύµατος. Τότε η ανάγκη για αποθήκευση τουλάχιστον ενός τµήµατος του ρεύµατος γίνεται πολύ περισσότερο επιτακτική, ώστε να µπορούν να τηρηθούν µε κάποιο τρόπο οι ενηµερώσεις. 32

2.2 Ερωτήµατα διαρκείας Για να αντιµετωπιστούν ζητήµατα τέτοιας φύσεως, έχουν προταθεί δύο προσεγγίσεις: Η πρώτη τακτική συνηγορεί στην υιοθέτηση περιορισµών είτε στο µέγεθος της απάντησης που θα µπορεί να ληφθεί είτε στην επιπλέον ποσότητα αποθηκευτικού χώρου που κρίνεται απαραίτητος για τον διαρκή υπολογισµό των αποτελεσµάτων. Η δεύτερη προσέγγιση παραιτείται από την προσπάθεια παροχής ακριβούς απάντησης στο ερώτηµα και αντ αυτής αρκείται σε µια προσεγγιστική (approximate query answering). Τα ερωτήµατα διαρκείας εµφανίζουν αρκετή συνάφεια µε τις υλοποιηµένες όψεις, καθώς και µε τους σκανδαλιστές (triggers), όχι όµως χωρίς σηµαντικές διαφοροποιήσεις. Πράγµατι, οι υλοποιηµένες όψεις, αποτελούν στην πραγµατικότητα ερωτήµατα που απλώς πρέπει να επικαιροποιούνται κάθε φορά που αλλάζουν τα στοιχεία της βάσης δεδοµένων στα οποία στηρίζονται. Από την άλλη πλευρά, οι triggers, γνωστοί επίσης ως κανόνες ECA (Event Condition Action), χρησιµοποιούνται σε βάσεις δεδοµένων για να διαγνώσουν κα-ταστάσεις ή γεγονότα στα οποία το σύστηµα πρέπει ν ανταποκριθεί άµεσα µε κάποιες ενέργειες. 2.2.1 Αποτίµηση των υλοποιηµένων όψεων σε σχέση µε τα ερωτήµατα διαρκείας Οι υλοποιηµένες όψεις (materialized views) αποθηκεύουν ένα στιγµιότυπο της κατάστασης της βάσης δεδοµένων σε κάποια συγκεκριµένη χρονική στιγµή. Κάθε φορά που συµβαίνουν αλλαγές στη βάση, αυτές θα πρέπει να µεταφέρονται και στις υλοποιηµένες όψεις. Μια απλοϊκή προσέγγιση µπορεί να είναι ο εξαρχής υπολογισµός από τα πρωτογενή δεδοµένα, ωστόσο είναι εφικτός και ο σταδιακός υπολογισµός τους (incremental view maintenance), όταν οι αλλαγές δεν είναι πολύ εκτεταµένες. Έτσι, είναι δυνατόν η ανανέωση των στοιχείων να γίνεται περιοδικά ή και να αναβληθεί µέχρις ότου τεθεί κάποιο ερώτηµα που αφορά αυτά τα στοιχεία. Η επιλογή της κατάλληλης µεθόδου εξαρτάται από το αν συµφέρει περισσότερο η επικαιροποίηση των παρωχηµένων στοιχείων έναντι του εκτιµώµενου κόστους. Εξ ορισµού λοιπόν, οι υλοποιηµένες όψεις είναι ερωτήµατα που ουσιαστικά πρέπει να επαναϋπολογίζονται εξαρχής ή να προσθέτουν εγγραφές κάθε φορά που συµβαίνει κάποια αλλαγή στα σχετικά δεδοµένα. Υπ αυτό το πρίσµα, ασφαλώς υφίσταται κάποιας µορφής συγγένεια µε τα ερωτήµατα διαρκείας. Ωστόσο, τα ερωτήµατα διαρκείας εµφανίζουν την ιδιαιτερότητα ότι συνήθως διοχετεύουν τα αποτελέσµατά τους ξανά ως ρεύµατα δεδοµένων αντί να τα αποθηκεύουν. Το αποτέλεσµα της εκτέλεσης των ερωτηµάτων διαρκείας µπορεί να µην είναι η ακριβής απάντηση, αλλά µια προσεγγιστική, ενώ και η µέθοδος επεξεργασίας µπορεί να προσαρµόζεται στα τρέχοντα χαρακτηριστικά του ρεύµατος δεδοµένων (λ.χ. ρυθµός άφιξης των στοιχείων). Επιπλέον, δεν έχει αντιµετωπιστεί το ζήτηµα των περιορισµών που επιβάλλονται στο µέγεθος των υλοποιηµένων όψεων. Τέλος, είναι πιθανόν στα ρεύµατα δεδοµένων απλώς και µόνο να προστίθενται διαρκώς νέα στοιχεία (append-only) στο σύστηµα, χωρίς να υπάρχει ανάγκη διαγραφών ή τροποποιήσεων σε όσα έχουν ήδη συρρεύσει σ αυτό. Αξίζει να µνηµονευτεί η ανάγκη αυτοσυντήρησης (self-maintenance) των όψεων που υλοποιούνται, εφόσον χρειάζεται να υπάρχουν αποθηκευµένα αρκετά δεδοµένα για 33

Ερωτήµατα σε ρεύµατα δεδοµένων. να είναι δυνατόν να συντηρηθούν οι όψεις, ακόµη κι αν τα δεδοµένα όπου βασίζονται γίνουν απροσπέλαστα προσωρινά. Ωστόσο, η τακτική αυτή θέτει δραστικούς περιορισµούς στις όψεις που είναι επιτρεπτό να δηλωθούν, ενώ προϋποθέτει ίσως τον ορισµό και βοηθητικών όψεων. Συναφές είναι και το ζήτηµα της λήξης των δεδοµένων (data expiration): είναι ευνόητο ότι κατά καιρούς δεδοµένα θα απορρίπτονται από το σύστηµα, χωρίς όµως να τίθεται σε κίνδυνο η δυνατότητα συντήρησης των όψεων που βασίζονται σε αυτά. Με µια τέτοια τεχνική, αξιοποιούνται ήδη γνωστοί περιορισµοί στα χαρακτηριστικά των δεδοµένων, ώστε να κριθεί πότε αυτά µπορούν να διαγραφούν χωρίς παρενέργειες. 2.2.2 ιαφοροποίηση των ερωτηµάτων διαρκείας από τους σκανδαλιστές (triggers) Συνήθως τα ερωτήµατα διαρκείας έχουν ή υπονοούν κάποια συνθήκη τερµατισµού (λ.χ. «τις επόµενες 24 ώρες»), ενώ οι σκανδαλιστές (triggers) πρέπει να διαγραφούν από το σύστηµα όταν χρειάζεται να τερµατιστεί η εκτέλεσή τους. Με τους κανόνες ECA παρέχεται η ευχέρεια στους χρήστες να προσδιορίσουν µε περισσότερη ελευθερία τα γεγονότα που ενδιαφέρονται να επιτηρήσουν. Αντίθετα, στα ερωτήµατα διαρκείας τα γεγονότα περιορίζονται σ αυτά που έχουν άµεσες επιπτώσεις πάνω στη συνθήκη ενεργοποίησης του trigger. Κάτι τέτοιο ενέχει βεβαίως τον κίνδυνο να διαφύγουν κάποια από τα γεγονότα που όντως χρειάζεται να επιτηρηθούν (λ.χ. µε χρήση σύνθετων συνθηκών). Οι κανόνες ECA έχουν δηµιουργηθεί για να µπορούν να ενταχθούν ως επιπρόσθετες δοµές σε ένα συγκεντρωτικό Σ Β γενικού σκοπού, ενώ τα ερωτήµατα διαρκείας στοχεύουν περισσότερο προς την αποτελεσµατική παρακολούθηση γεγονότων σε κατανεµηµένα συστήµατα, όπου οι πληροφορίες εισρέουν από ποικίλες ακόµη κι ετερογενείς πηγές. Εποµένως, οι κανόνες ECA δύσκολα µπορούν να υλοποιηθούν σε µεγάλης έκτασης ετερογενή συστήµατα όπως το ιαδίκτυο (Internet). Επιπλέον, τα ερωτήµατα διαρκείας µπορούν να πάρουν ακόµη και προσωπική χροιά (personalization), καθώς οι χρήστες µπορούν να επικεντρωθούν στα στοιχεία που τους ενδιαφέρουν περισσότερο από ένα µεγάλο όγκο πληροφοριών, όπως λ.χ. ιστοσελίδες µε πληροφορίες που επιλέγει ο ίδιος ο χρήστης. Τέλος, στα ερωτήµατα διαρκείας ελέγχονται συνεχώς οι ίδιες συνθήκες και εκφράσεις, ενώ η ενεργοποίηση κάποιου trigger µπορεί να προκαλέσει την κυκλική εκτέλεσή του ξανά και ξανά, προξενώντας ανεπιθύµητες παρενέργειες στον έλεγχο συνδροµικότητας των δοσοληψιών που εκτελούνται ταυτόχρονα από το σύστηµα. 2.2.3 Ερωτήµατα διαρκείας βάσει του χρόνου ή του περιεχοµένου Τα ερωτήµατα διαρκείας επιβάλλεται να ανταποκρίνονται είτε σε κάθε µεταβολή των στοιχείων (change-based) όποτε αυτά γίνονται διαθέσιµα, είτε να εκτελούνται ανά τακτά χρονικά διαστήµατα (time-based) όπως τα προσδιορίζει ο χρήστης. Φυσικά, η πρώτη κατηγορία ερωτηµάτων, που προσιδιάζει στο µοντέλο των triggers, πλεονεκτεί ως προς 34

Ενεργά συστήµατα βάσεων δεδοµένων (Active database systems) Τα ενεργά συστήµατα βάσεων δεδοµένων επιτηρούν διάφορες καταστάσεις που ενδιαφέρουν τους χρήστες και, όταν αυτές συµβούν, πυροδοτούν (trigger) εγκαίρως την κατάλληλη ενέργεια. Αυτή η συµπεριφορά εκφράζεται από ενσωµατωµένους κανόνες παραγωγής (production rules) της µορφής «Γεγονός Συνθήκη Ενέργεια» (Event Condition Action, ECA): ON <event> IF <condition> THEN <action> οι οποίοι ορίζονται και αποθηκεύονται στη βάση δεδοµένων. Όταν συµβεί κάποιο σχετικό γεγονός, ελέγχεται η συνθήκη από τα στοιχεία της βάσης δεδοµένων οπότε, εφόσον ικανοποιείται, εκτελείται η αντίστοιχη ενέργεια. Το πλεονέκτηµα είναι ότι οι κανόνες µπορούν να ισχύουν ταυτόχρονα για πολλαπλές εφαρµογές, παρέχοντας την ευχέρεια βελτιστοποίησης της υλοποίησής τους. Στα σχεσιακά συστήµατα βάσεων δεδοµένων, οι κανόνες ορίζονται ως µεταδεδοµένα (metadata) στο σχήµα της βάσης, µαζί µε τους πίνακες, τις όψεις, κλπ. Μάλιστα, είναι ορισµένοι πάνω σε συγκεκριµένους πίνακες, εποµένως εάν ο πίνακας καταργηθεί, τότε και οι αντίστοιχοι κανόνες παύουν πλέον να ισχύουν. Σε αντικειµενοστρεφή συστή- µατα, συνηθίζεται οι κανόνες να ορίζονται ως αντικείµενα (από γεγονότα, συνθήκες και ενέργειες), δηλαδή στιγµιότυπα των τύπων κανόνων που έχουν οριστεί στο σχήµα. Τα γεγονότα (events) που µπορεί να ενεργοποιήσουν κάποιον κανόνα είναι συνήθως τροποποιήσεις στοιχείων της βάσης, αλλά και ανάκτηση πληροφορίας, δοσοληψίες (commit, abort), από χρονικές ενδείξεις (απόλυτες, σχετικές ή περιοδικές), καθώς και άλλες σύνθετες περιπτώσεις. Το τµήµα της συνθήκης (condition) ενός κανόνα προσδιορίζει το κατηγόρηµα (predicate) που πρέπει να επαληθευθεί ή το ερώτηµα (query) που πρέπει να υποβληθεί στα στοιχεία της βάσης δεδοµένων. Εάν το κατηγόρηµα αποδειχτεί αληθές ή το ερώτηµα όντως επιστρέφει κάποια απάντηση, τότε η συνθήκη ικανοποιείται και η αντίστοιχη ενέργεια θα εκτελεσθεί. Στους triggers της SQL-99, οι ενέργειες (actions) µπορεί να είναι ακολουθίες εντολών ανάκτησης ή τροποποίησης δεδοµένων της βάσης, ακόµη και απόρριψης (abort) της τρέχουσας δοσοληψίας. Βέβαια, στην SQL-99 δεν επιτρέπεται για το ίδιο γεγονός να ορίζονται περισσότεροι του ενός κανόνες, ενώ επιβάλλεται ο ορισµός µιας σειράς επιλογής των κανόνων που θα εκτελεστούν (ιεραρχική, αριθµητική), ώστε να αποφευχθούν επιπλοκές. Επίσης, ο αριθµός των κανόνων στο σύστηµα µπορεί να αυξηθεί σε τόσο µεγάλο βαθµό, που να είναι απαραίτητο να συµπερι-ληφθούν µηχανισµοί που να τους ελέγχουν, ενεργοποιώντας ή απενεργοποιώντας τους. Προφανώς, το σύστηµα δεν έχει τη δυνατότητα να παρακολουθεί αποτελεσµατικά ένα τόσο µεγάλο αριθµό κανόνων ανά πάσα χρονική στιγµή, γι αυτό και τίθενται περιορισµοί ως προς τον συνολικό αριθµό τους (Oracle, Sybase,Ingres κ.ά). Κατά την SQL-99, όταν ένας κανόνας ενεργοποιείται 35 εξαιτίας µιας αλλαγής σε έναν πίνακα, τότε οποιαδήποτε αναφορά στον πίνακα αυτόν σε οποιοδήποτε σκέλος του κανόνα υπονοεί την αλλαγµένη πλειάδα. Χαρακτηριστικό παράδειγµα ο ακόλουθος trigger που ενεργοποιείται πριν τη διαγραφή µιας πλειάδας από τη σχέση Shelfs: CREATE TRIGGER DeleteShelf BEFORE DELETE ON Shelf WHEN Shelf.Count<100 DELETE Book WHERE Book.class=Shelf.class οπότε για την πλειάδα που πρόκειται να διαγραφεί, θα ελεγχθεί η συνθήκη WHEN και οµοίως θα διαγραφεί η πλειάδα της σχέσης Book. Σε µια βάση δεδοµένων, οι δοσοληψίες, οι αλλαγές των στοιχείων ή και τα ερωτήµατα προκαλούν την ενεργοποίηση των κανόνων, οι οποίοι είναι ενταγµένοι στη δραστηριότητα της βάσης. Βασικό ζήτηµα που ανακύπτει είναι το επίπεδο ανάλυσης (granularity) που ισχύει ιδίως σε περιπτώσεις τροποποιήσεων (updates), κατά πόσον δηλαδή ο κανόνας θα ενεργοποιείται έπειτα από την τροποποίηση κάθε πλειάδας ή όταν το σύνολο των αλλαγών ολοκληρωθεί. Επιπλέον, πολλά συστήµατα επιτρέπουν σε ένα συµβάν να µπορεί να ενεργοποιήσει διάφορους κανόνες. Τότε, εµφανίζεται το ενδεχόµενο κάποιος κανόνας να ενεργοποιήσει κάποιον άλλο ή και ένα ακόµη στιγµιότυπο του εαυτού του, οπότε η συνθήκη τερµατισµού αποκτά ιδιαίτερη σηµασία. Τέλος, οφείλει να αντιµετωπιστεί η περίπτωση ταυτόχρονης εκτέλεσης κανόνων και δοσοληψιών που υποβάλλει ο χρήστης. Σε περίπτωση σφάλµατος (λ.χ. τα δεδοµένα έχουν διαγραφεί ή εκτελέστηκαν ταυτόχρονα δοσοληψίες που οδήγησαν σε αδιέξοδο), η τακτική που υιοθετούν τα περισσότερα συστήµατα είναι η ολοκληρωτική απόρριψη της δοσοληψίας (transaction abort), και η επανέναρξή της, είτε στο σύνολό της είτε από το σκέλος που απέτυχε. Οι κανόνες παραγωγής προσφέρουν έναν οµοιογενή µηχανισµό για την ενίσχυση της ακεραιότητας, τη συντήρηση συναγόµενων δεδοµένων, την πρόσθετη προστασία, τον έλεγχο εκδοχών (versions), την υλοποίηση triggers και alerters, τη συγκέντρωση στοιχείων χρήσιµων στη βελτιστοποίηση ερωτηµάτων κ.ά. Βέβαια, οι triggers δεν έχουν τη µορφή τυπικών ερωτηµάτων, άρα αδυνατούν να παρέχουν απαντήσεις σε ερωτήµατα διαρκείας, στοιχείο κρίσιµο για τα ρεύµατα δεδοµένων. Επίσης, δεν επαρκούν για το χειρισµό δεδοµένων από πολλαπλές ετερογενείς πηγές (λ.χ. Internet). Εν τούτοις, είναι πολύτιµοι κυρίως στην ανίχνευση περίπλοκων καταστάσεων στο σύστηµα (λ.χ. στη λήψη στοιχείων από πολλαπλά ρεύµατα δεδοµένων ή ύπαρξη στατικών πινάκων) αλλά κι όταν επιβάλλεται ο έλεγχος της εγκυρότητας κάποιων συνθηκών. Εκτιµάται ότι οι τεχνικές βελτιστοποίησης ερωτηµάτων και διαχείρισης του χώρου αποθήκευσης των ρευµάτων δεδοµένων, θα συνεισφέρουν σηµαντικά και στον τρόπο επεξεργασίας των triggers στις βάσεις δεδοµένων. ( [DHW94] )

Ερωτήµατα σε ρεύµατα δεδοµένων. τον χρόνο απόκρισης, αλλά ενδεχοµένως δεσµεύει πολύτιµους πόρους του συστήµατος όταν δεν χρειάζονται άµεσες απαντήσεις. Από την άλλη πλευρά, όταν τα ερωτήµατα διαρκείας εκτελούνται ανά τακτά χρονικά διαστήµατα, το σύστηµα µπορεί να τα υποστηρίξει περισσότερο αποτελεσµατικά, εµφανίζοντας δυνατότητες κλιµάκωσης (scalability). Βεβαίως, ζήτηµα ανακύπτει σχετικά µε τη βελτιστοποίηση ερωτηµάτων όταν αυτά χαρακτηρίζονται από διαφορετικές συχνότητες εκτέλεσης ή όταν τα χρονικά διαστήµατα είναι αλληλοεπικαλυπτόµενα. 2.2.4 Ερωτήµατα συνάθροισης σε ρεύµατα δεδοµένων Είναι αναµενόµενο ότι η πληροφορία που καταφθάνει στο σύστηµα από τα ρεύµατα δεδοµένων που το τροφοδοτούν θα είναι σε πολλές περιπτώσεις εξαιρετικά λεπτοµερής, σε βαθµό που ίσως να µην ενδιαφέρει την πλειοψηφία των χρηστών. Λ.χ. εάν κάθε αισθητήρας στέλνει µετρήσεις θερµοκρασίας κάθε λεπτό, είναι πολύ πιθανόν οι µεταβολές µεταξύ διαδοχικών τιµών να είναι ανεπαίσθητες. Αντίθετα, περισσότερο νόηµα έχουν κάποια στατιστικά στοιχεία, λ.χ. µέση ωριαία θερµοκρασία ή η µέγιστη τιµή που παρατηρήθηκε τις τελευταίες 24 ώρες. Εποµένως, τα ερωτήµατα συνάθροισης (aggregate queries) αποτελούν σπουδαίο εργαλείο για την επεξεργασία των ρευµάτων, αφού δίνουν την τάση µεταβολής των στοιχείων τους. Συνήθως δίνεται διάκριση στους εξής τύπους: i. Ερωτήµατα συνάθροισης για µεµονωµένα στοιχεία (point aggregates). Πρόκειται για ερωτήµατα όπου ζητούνται συγκεντρωτικά αποτελέσµατα για ένα συγκεκριµένο στοιχείο που καταγράφεται στο ρεύµα, λ.χ. «Να υπολογιστεί η µέση χρονική διάρκεια συνδιαλέξεων του συνδροµητή µε αριθµό <#> σήµερα». ii. Ερωτήµατα συνάθροισης για σειρά στοιχείων (range aggregates). Τα ερωτήµατα αυτά οµαδοποιούν τα δεδοµένα σε οµάδες που προσδιορίζονται από το γεγονός ότι κάποια χαρακτηριστικά τους κινούνται σε ένα ορισµένο διάστηµα τιµών. Για παράδειγµα, µπορεί να ζητηθεί η συνολική χρονική διάρκεια των κλήσεων που είναι εξερχόµενες από κάποιο τηλεφωνικό κέντρο την τελευταία εβδοµάδα. iii. Ερωτήµατα συνάθροισης σε στοιχεία βαθµιαίας ηλικίας (aged aggregates). Πολλές φορές, οι χρήστες επιθυµούν να συνδυάσουν πληροφορίες από πολλαπλές χρονικές περιόδους, δίνοντας στην καθεµιά κάποια βαρύτητα, η οποία ελαττώνεται βαθµηδόν όσο παλαιότερα στο παρελθόν ανάγονται τα στοιχεία. Αυτό ισοδυναµεί µε ένα χρονικό παράθυρο που καλύπτει ένα τµήµα των δεδοµένων του ρεύµατος, µε τη διαφορά ότι τα πλέον πρόσφατα στοιχεία προσµετρούν πολύ περισσότερο στο τελικό αποτέλεσµα από εκείνα που αντιστοιχούν στη χρονική αφετηρία του παραθύρου. Για παράδειγµα, ο συνολικός αριθµός συνδιαλέξεων που έγιναν τις τελευταίες 24 ώρες, µπορεί να µην αντιπροσωπεύει τη µέση τυπική ηµέρα, αφού µπορεί να έχει µεσολαβήσει κάποιο έκτακτο γεγονός (λ.χ. αργία ή κάποια θεοµηνία). Έτσι, το αποτέλεσµα µπορεί να εκτιµηθεί συνυπολογίζοντας λ.χ. τα στοιχεία του τελευταίου 36

2.2 Ερωτήµατα διαρκείας µηνός, αποδίδοντας σε κάθε ηµέρα κυµαινόµενο βάρος ανάλογα µε τη χρονική της απόσταση από τη σηµερινή. 2.2.5 Ανενεργά ερωτήµατα (Inactive queries) Τα ερωτήµατα που υποβάλλονται στο σύστηµα διακρίνονται σε ενεργά (active) και ανενεργά (inactive). Η διαφορά τους έγκειται στο γεγονός ότι στη δεύτερη περίπτωση το σύστηµα δεν χρειάζεται να παρέχει απαντήσεις, παρόλο που τα δεδοµένα εξακολουθούν να καταφθάνουν στο σύστηµα. Βεβαίως, η ύπαρξη του ερωτήµατος δεν αγνοείται παντελώς, αφού ξαφνικά µπορεί πάλι να ενεργοποιηθεί. Ακόµη και ανενεργά ερωτήµατα λαµβάνονται υπόψη κατά το στάδιο της κατάστρωσης προσχεδίων εκτέλεσης ερωτηµάτων (query plans) και κατανοµής πόρων (resource allocation) του συστήµατος. 2.2.6 Ερωτήµατα µε βάρη (Weighted queries) Στα συστήµατα διαχείρισης ρευµάτων δεδοµένων, συνήθως το ενδιαφέρον εστιάζεται στην συνολική ρυθµοαπόδοση (throughput), παρά στις επιδόσεις µεµονωµένων ερωτηµάτων. Ωστόσο, στα ερωτήµατα είναι πιθανόν να αποδοθούν βάρη (weights), ώστε να δηλώνεται κάποιας µορφής ιεράρχηση µεταξύ τους. Η απόδοση βαρών αποδεικνύεται καθοριστική όταν το σύστηµα εξαναγκάζεται να προβεί σε προσεγγιστικές απαντήσεις εξαιτίας περιορισµένων διαθέσιµων πόρων. Τότε, ένα ερώτηµα µε µεγαλύτερο βάρος αξιολογείται ως περισσότερο σηµαντικό, οπότε καταβάλλεται προσπάθεια να λάβει µια απάντηση πιο ακριβή από κάποια άλλα ερωτήµατα µικρότερης βαρύτητας. Υπ αυτήν την έννοια, τα ανενεργά ερωτήµατα µπορούν να θεωρηθούν και ως ερωτήµατα αµελητέας βαρύτητας. εν πρέπει να αποκλειστεί και η περίπτωση τα βάρη να παίξουν ρόλο και στον χρονοπρογραµµατισµό (scheduling), ρυθµίζοντας την προτεραιότητα εκτέλεσης των ερωτηµάτων. Επίσης, µπορεί να χρησιµεύσουν για να απαγορεύσουν σε ένα µοναδικό αλλά πολύ «ακριβό» ερώτηµα να απορροφήσει όλους τους πόρους του συστήµατος, παραγκωνίζοντας τα υπόλοιπα (starvation). Τέλος, αξίζει να σηµειωθεί ότι η απόδοση βαρών πρέπει να είναι µια δυναµική διαδικασία, ώστε τα βάρη των ερωτηµάτων να µπορούν να µεταβληθούν, προσαρµοζόµενα τόσο στις συνθήκες που επικρατούν όσο και στις προτεραιότητες που θέτουν κάθε φορά οι χρήστες. 2.3 Ερωτήµατα µε χρήση παραθύρων Είναι ευνόητο ότι ένα σύστηµα διαχείρισης ρευµάτων δεδοµένων χαρακτηρίζεται από αδυναµία καταγραφής του συνόλου των στοιχείων που έχουν διέλθει απ αυτό, ενώ είναι ανίκανο να µαντέψει το συνολικό µεγέθος των δεδοµένων που πρόκειται να καταφθάσουν στο µέλλον. Οι περιορισµοί αυτοί έχουν εµφανή αντίκτυπο στον τρόπο 37

Ερωτήµατα σε ρεύµατα δεδοµένων. επεξεργασίας των ερωτηµάτων, αφού το σύστηµα αναγκάζεται σε πολλές περιπτώσεις να δίνει προσεγγιστικές απαντήσεις, καταφεύγοντας στη χρήση παραθύρων. Εφόσον λοιπόν η απάντηση που θα δοθεί σε ένα ερώτηµα ούτως ή άλλως δεν θα είναι ακριβής, δεν συντρέχει ιδιαίτερος λόγος να εξετασθεί το σύνολο των δεδοµένων που έχει περάσει ως εκείνη τη στιγµή από το σύστηµα, αλλά µάλλον µόνο ένα συγκεκριµένο τµήµα τους, εντός ενός παραθύρου (window) επί των πλέον πρόσφατων στοιχείων. Έτσι, σε κάθε χρονική στιγµή, το παράθυρο περιλαµβάνει ένα σύνολο διαδοχικών πλειάδων επί των οποίων θα εφαρµοστεί το ερώτηµα. Λ.χ. για την τιµή µιας µετοχής µπορούν να ληφθούν υπόψη οι διακυµάνσεις της τελευταίας εβδοµάδας, ενώ τα παλαιότερα στοιχεία µπορούν να εξαλειφθούν από το σύστηµα. Η εκτέλεση του ερωτήµατος θα αποδώσει ένα άλλο σύνολο πλειάδων, εποµένως ο χρήστης λαµβάνει συνεχώς αλλεπάλληλα κύµατα αποτελεσµάτων, ένα για κάθε χρονική στιγµή. Έτσι, αφενός το σύστηµα θα πρέπει να διακρίνεται ως προς την ευελιξία χειρισµού τέτοιων δοµών, αφετέρου οφείλει να παρέχει τα αποτελέσµατα σε σταθερή βάση είτε όταν ζητηθούν από τους χρήστες είτε εξάγοντάς τα καθώς παράγονται. Η ύπαρξη χρονικών παραθύρων, που σηµειωτέον δεν αφορούν αποκλειστικά ερωτήµατα διαρκείας, αλλά και ερωτήµατα στιγµιοτύπου, εµφανίζεται ως αναπόσπαστο σκέλος ιδίως όταν περιλαµβάνονται συνδέσεις (joins) ή εµπλέκονται τελεστές συνάθροισης (aggregates) σε ρεύµατα δεδοµένων. Πρόσφατα, ιδιαίτερο ενδιαφέρον προσελκύουν δύο κατηγορίες παραθύρων: τα παράθυρα χρονικού οροσήµου (landmark windows) και τα κυλιόµενα παράθυρα (sliding windows), χωρίς αυτό να σηµαίνει ότι αυτοί οι τύποι επαρκούν για την κάλυψη όλων των περιπτώσεων. Απαιτούνται λοιπόν πρόσθετες δοµές για να είναι δυνατή λ.χ. η επαναληπτική εκτέλεση ερωτηµάτων έπειτα από την άφιξη n πλειάδων κάθε φορά, καθώς και η περιγραφή ειδικών παραθύρων που διατρέχουν χρονικές περιόδους στο παρελθόν. Προφανώς, δεν µπορεί να αποκλειστεί η πιθανότητα κάποιος χρήστης να επιθυµεί να ανατρέξει σε ιστορικά στοιχεία του ρεύµατος ξεκινώντας από την παρούσα στιγµή κινούµενος χρονικά προς τα πίσω. Ακόµη περισσότερο, δεν είναι απίθανο να οριστούν διάσπαρτα παράθυρα, δηλαδή παράθυρα που εµφανίζουν χρονικά κενά, αποκλείοντας από την επεξεργασία δεδοµένα που αντιστοιχούν σε συγκεκριµένες χρονικές στιγµές ή περιόδους και περικλείοντας κάποια άλλα (π.χ. παράθυρα που αποκλείουν ολόκληρες ηµέρες, που συµπίπτουν λ.χ. µε αργίες). Η αναζήτηση στοιχείων βάσει δοµών παραθύρου εντάσσεται στην ευρύτερη κατηγορία των χρονικών ερωτηµάτων σε σχεσιακές βάσεις δεδοµένων, ιδιαίτερα τις βάσεις δεδοµένων ακολουθιών (sequence databases), τις χρονικές βάσεις δεδοµένων (temporal databases) και τις βάσεις δεδοµένων πραγµατικού χρόνου (real-time databases). Βεβαίως, εντοπίζονται αρκετές διαφορές µε το µοντέλο υπολογισµών στα ρεύµατα δεδοµένων, µε προεξάρχουσα την έµφαση που αποδίδεται απ αυτές τις βάσεις δεδοµένων στην τήρηση όλης της ιστορικής εξέλιξης µιας τιµής στο χρόνο. Αντίθετα, σε ένα σύστηµα διαχείρισης ρεύµατος δεδοµένων το κύριο ενδιαφέρον µετατοπίζεται στην επεξεργασία των στοιχείων που συρρέουν σ αυτό κατά την άφιξή τους (on-the-fly) κι όχι έπειτα από την ολοκλήρωση της καταγραφής τους (λ.χ. αφού τελειώσει η εισαγωγή των στοιχείων σε πίνακες). 38

Οι βάσεις δεδοµένων ακολουθιών (sequence databases) Τα δεδοµένα ακολουθιών αναφέρονται σε στοιχεία που τηρούνται σε διάταξη (order) εξαιτίας λογικών συσχετισµών που ενυπάρχουν σε αυτά. Έναυσµα της έρευνας στον τοµέα αυτό, αποτέλεσε η αναγκαιότητα χειρισµού δεδοµένων χρονοσειρών (time-series). Τα συµβατικά συστήµατα βάσεων δεδοµένων δεν παρέχουν τη δυνατότητα ορισµού διάταξης στο µοντέλο δεδοµένων, οπότε αδυνατούν να υποστηρίξουν και ερωτήµατα σχετικά µε την υφιστάµενη λογική ακολουθία των στοιχείων. Βασικό αίτηµα είναι τα στοιχεία που προσδιορίζουν τη σειρά της ακολουθίας να µπορούν να αντιστοιχηθούν σε µέλη ενός ολικώς διατεταγµένου πεδίου ορισµού (totally ordered domain). Τότε, για κάθε στοιχείο, είναι δυνατόν να προσδιοριστεί το προηγούµενο και το επόµενό του. Έτσι, σε αφηρηµένο επίπεδο, οι ακολουθίες δεδοµένων µπορούν να θεωρηθούν ως ένας µετασχη- µατισµός (mapping), όπου κάθε εγγραφή που ανήκει στη συλλογή στοιχείων αντιστοιχείται σε µια θέση στο διατεταγµένο σύνολο. Φυσικά, δεν είναι απαραίτητο να υφίσταται αντιστοιχία για όλα τα µέλη του διατεταγµένου συνόλου, όµως υποχρεωτικά όλα τα στοιχεία της ακολουθίας οφείλουν να έχουν αντιστοιχηθεί. Η αντι- µετώπιση αυτή οδηγεί σε τελεστές (operators) που αποτελούν επέκταση της σχεσιακής άλγεβρας (relational algebra). Η ουσία του ζητήµατος ανάγεται τελικά στην υποστήριξη δεδοµένων µε χρονικό περιεχόµενο. Η γνωστή πρόταση ORDER BY που παρέχει η SQL, αναφέρεται αποκλειστικά στη σειρά παρουσίασης των απαντήσεων σε ερωτήµατα των χρηστών, βασιζόµενη σε πεδία που προσδιορίζονται ειδικά για το σκοπό αυτό. Παρόλο που η SQL-92 και η SQL-99 υποστηρίζουν ικανοποιητικά δοµές χρονικών οροσήµων (timestamps) των εγγραφών, η σύνταξη των ερωτηµάτων εµπλέκει συνήθως τη χρήση ένθετων υποερωτηµάτων (subqueries) και τελεστές συνάθροισης (aggregates), υπονοµεύοντας µάλλον την αποτελεσµατικότητα της εκτέλεσής τους. Έτσι, το σύστηµα PREDATOR που αναπτύχθηκε στο Πανεπιστήµιο του Wisconsin, εισηγείται τη χρήση «Ενισχυµένων Αφηρηµένων Τύπων εδοµένων» (Enhanced Abstract Data Types, E-ADT), ώστε να είναι δυνατή η µοντελοποίηση από κοινού τόσο των ακολουθιών όσο και των κλασικών σχέσεων. Τέτοιες δοµές επιτρέπουν στους χρήστες τη διαχείριση σχέσεων και ακολουθιών αδιακρίτως και δίχως να είναι απαραίτητο να µετατραπούν προηγουµένως οι ακολουθίες σε σχέσεις. Στο υποσύστηµά του SEQ, κάθε διατεταγµένο πεδίο ορισµού µοντελοποιείται ως νέος τύπος δεδοµένων µε πρόσθετες µεθόδους, για να µπορούν να προσδιοριστούν οι έννοιες «µικρότερο από», «µεγαλύτερο από», «επόµενο», «προηγούµενο» κ.ά. Τελικά, η θέση κάθε στοιχείου στην ακολουθία καταγράφεται σε κάθε εγγραφή ως ένα πρόσθετο ειδικό πεδίο µε την έννοια του χρονικού οροσήµου (timestamp). Τα στοιχεία τηρούνται ως επί το πλείστον σε ειδικά 39 διαµορφωµένα αρχεία. Βασικό κριτήριο της αποτελεσµατικότητας του τρόπου αποθήκευσης είναι η διευκόλυνση ανάγνωσης (scan) των περιεχοµένων τους µε αποδοτικό τρόπο, αφού κάτι τέτοιο απαιτείται πρακτικά από όλα σχεδόν τα ερωτήµατα. Γι αυτό και κάθε ακολουθία προσπελαύνεται σε ένα µόνο πέρασµα, ως ένα ρεύµα δεδοµένων (stream access). Επίσης, η ποσότητα µνήµης που απαιτείται από ένα τέτοιο σύστηµα είναι σταθερή, ανεξαρτήτως του όγκου των δεδοµένων. Τα ερωτήµατα τίθενται σε SQL, δηλαδή µε δηλωτικό τρόπο, αλλά µε επιπρόσθετες ένθετες εκφράσεις συνταγµένες στην - ειδική για ακολουθίες - γλώσσα ερωταποκρίσεων SEQUIN. Αυτή βασίζεται επίσης στην SQL, αλλά µε ορισµένες διαφοροποιήσεις και επεκτάσεις, όπως φαίνεται κι από τη γενική δοµή των εκφράσεων, που το αποτέλεσµα της εκτέλεσής τους είναι πάντα µια ακολουθία: PROJECT <project-list> FROM <sequences-merged-on-position> [WHERE <selection-conditions>] [OVER <start-window> TO <end-window>] [ZOOM <zoom-info>] Ένα τέτοιο υποερώτηµα αντιµετωπίζεται από την SQL ως κλήση µιας συνάρτησης, έτσι υπολογίζεται κατά την εκτέλεση του ερωτήµατος χωρίς να ελέγχεται συντακτικά. Η άλγεβρα τελεστών που υποκρύπτεται πίσω από τη γλώσσα, συµβάλλει σηµαντικά στο ζήτηµα της βελτιστοποίησης των ερωτηµάτων. Καταρχάς, ενδεχόµενες αναφορές στη διάταξη των στοιχείων από τις συνθήκες του ερωτήµατος είναι οπωσδήποτε χρήσιµες (λ.χ. ζητούνται τα στοιχεία µετά από µια συγκεκριµένη χρονική στιγµή). Αν υπολογίζονται κινούµενοι µέσοι όροι (moving average aggregates), είναι δυνατόν να αξιοποιηθούν οι επικαλύψεις µεταξύ των διαδοχικών χρονικών παραθύρων. Επίσης, αναλύοντας τους γράφους ερωτη- µάτων (query graphs) µπορούν να εντοπιστούν κοινές υποεκφράσεις µεταξύ ερωτηµάτων. Τέλος, είναι εφικτό να προστεθούν ενδιάµεσες δοµές αποθήκευσης (buffers) των στοιχείων σε κάθε τελεστή, µε την επιδίωξη να γίνουν άµεσα διαθέσιµα τα πλέον πρόσφατα τµήµατα της ακολουθίας, υλοποιώντας κάποιου είδους αλληλουχία (pipelining) εκτέλεσης µεταξύ των τελεστών. Στα ρεύµατα δεδοµένων, τα ερωτήµατα διαρκείας απαιτείται πολλές φορές να αναφέρονται στην ακολουθία των πλειάδων, κυρίως µε τη µορφή κυλιόµενων παραθύρων. Ωστόσο, το µοντέλο επεξεργασίας των βάσεων δεδοµένων ακολουθιών προϋποθέτει ότι το σύστηµα ελέγχει και ρυθµίζει µόνο του από ποια ακολουθία θα προέλθουν οι εγγραφές που θα δοθούν κατόπιν προς επεξεργασία (λ.χ. όταν επιχειρείται συγχώνευση στοιχείων από πολλές ακολουθίες). Κάτι τέτοιο, δεν ευσταθεί φυσικά σε ένα σύστηµα που καλείται να διαχειριστεί ρεύµατα δεδοµένων. ( [SLR96] )

Οι βάσεις δεδοµένων πραγµατικού χρόνου (real-time databases) Στις βάσεις δεδοµένων πραγµατικού χρόνου ισχύουν χρονικοί περιορισµοί σε κάθε πτυχή της βάσης, όπως στην απάντηση ερωτηµάτων, στην επεξεργασία δοσοληψιών, στην τήρηση της ακεραιότητας της βάσης δεδοµένων κ.ά., στους οποίους το σύστηµα προσπαθεί να ανταποκριθεί εξασφαλίζοντας έναν βαθµό εµπιστοσύνης. Το κατάλληλο χρονικό µοντέλο δεδοµένων µπορεί να υλοποιηθεί είτε πάνω στο σχεσιακό είτε στο αντικειµενοστρεφές µοντέλο, µε κύριο στόχο την καταγραφή όλης της ιστορικής εξέλιξης µιας τιµής στο χρόνο, ενώ τα τελευταία χρόνια έχουν παρουσιαστεί µερικά πρωτότυπα συστήµατα. Ο χρόνος ισχύος (valid time) αναφέρεται στο χρόνο κατά τον οποίο το γεγονός ισχύει στην πραγµατικότητα, ανεξάρτητα από το πότε καταγράφηκε στη βάση δεδοµένων, οπότε µπορεί κάλλιστα να αναφέρεται και στο µέλλον, εάν πιστεύεται ότι το γεγονός θα συµβεί οπωσδήποτε σε κάποια χρονική στιγµή. Ο χρόνος δοσοληψίας (transaction time) αναφέρεται στο χρόνο που το γεγονός είναι παρόν στη βάση δεδοµένων ως αποθηκευµένο στοιχείο. Αυτό το χρονικό διάστηµα καλύπτει τη χρονική περίοδο µεταξύ της δοσοληψίας που εισήγαγε το στοιχείο στη βάση και της δοσοληψίας που το διέγραψε. Αξίζει να σηµειωθεί η απροσδιοριστία που τυχόν υπάρχει στο χρόνο ισχύος, δηλαδή η άγνοια ως προς το πότε ακριβώς συνέβη το γεγονός (αν και δεν υπάρχει αµφιβολία ότι συνέβη). Ενώ αυτοί οι χρονικοί προσδιορισµοί έχουν σηµασία και υποστηρίζονται από το Σ Β, ο χρήστης έχει την ευχέρεια να ορίσει δικό του χρόνο (user-defined time) για την εξυπηρέτηση των αναγκών του. Στα συστήµατα πραγµατικού χρόνου, οι δοσοληψίες έχουν κάποιες προθεσµίες που ενδεχοµένως να γίνουν πολύ αυστηρές (hard real-time systems). Τότε, οι δοσοληψίες θα πρέπει να διεκπεραιώνονται σε χρόνο πριν από τον χρόνο ισχύος, ειδάλλως, τα περιεχόµενα της βάσης δεδοµένων, όσο πρόσφατα κι αν είναι, µπορεί να µην είναι απολύτως σωστά, αφού η κατάσταση ενδέχεται να άλλαξε αµέσως µετά την καταγραφή του γεγονότος στη βάση. Κάτι τέτοιο χρειάζεται λ.χ. σε συστήµατα κρατήσεων σε αεροπορικά ταξίδια, στον έλεγχο εναέριας κυκλοφορίας, σε εφαρµογές παρακολούθησης µετοχών του χρηµατιστηρίου κ.ά. Ο χρόνος ισχύος µπορεί να αναπαρασταθεί από χρονικά ορόσηµα (timestamps) µε τη µορφή είτε χρονικών στιγµών είτε διαστηµάτων ή και οµάδας χρονικών διαστη- µάτων, ενώ µπορεί να αναφέρεται σε µεµονωµένες ιδιότητες (attributes), σε οµάδες ιδιοτήτων ή και σε όλη την πλειάδα (tuple). Ο χρόνος δοσοληψίας είναι απαραίτητος ιδίως όταν προκύπτει ανάγκη για επαναφορά (roll back) κάποιας προηγούµενης κατάστασης της βάσης δεδοµένων ή για την αποθήκευση αλλεπάλληλων εκδοχών (versions). Η έγκαιρη εκτέλεση των δοσοληψιών απαιτεί καλή εκτίµηση του απαιτούµενου χρόνου στη χειρότερη περίπτωση (worst-case execution time), κάτι ίσως δύσκολο να επιτευχθεί σε καταστάσεις όπου ο χρόνος αυτός εξαρτάται από τις τιµές των στοιχείων, οι δοσοληψίες απορρίπτονται ή αναστέλλονται λόγω ανταγωνισµών για δεδοµένα ή πόρους 40 του συστήµατος, ή τέλος, εξαιτίας των τεχνικών που χρησιµοποιούνται για την εγγραφή/ανάγνωση από το δίσκο ή την ενδιάµεση µνήµη (buffer). Είναι λοιπόν εύλογο να αρθεί η απαίτηση για αµεροληψία στο χειρισµό δοσοληψιών ή η µεγιστοποίηση της απόδοσης του συστήµατος, αποδίδοντας προτεραιότητες στις δοσοληψίες ώστε να τηρηθούν οι χρονικές προσθεσµίες. Οι δοσοληψίες πραγµατικού χρόνου, είναι δυνατόν να εκτιµηθούν από µια σειρά παραγόντων, όπως: ο τρόπος υποβολής των δοσοληψιών (περιοδικές ή σποραδικές;), οι τύποι δεδοµένων που προσπελαύνονται, γνώση των δεδοµένων που εµπλέκονται, οι τεχνικές που αφορούν την CPU ή τον χρόνο εγγραφής/ανάγνωσης µε το δίσκο, καθώς και τί θα συµβεί εάν η δοσοληψία δεν εκτελεστεί εντός των ορισµένων χρονικών ορίων. Οι βάσεις δεδοµένων πραγµατικού χρόνου αποκαλούνται εσωτερικά συνεπείς (Internally consistent), εάν επιτρέπουν µόνο σειραϊκή εκτέλεση των δοσοληψιών και εκπληρώνουν τους προκαθορισµένους περιορισµούς ακεραιότητας (δηλαδή Αυτονοµία, Συνέπεια, Αποµόνωση και Μονιµότητα, ACID). Αντίθετα, είναι εξωτερικά συνεπείς (externally consistent) όταν τα δεδοµένα που χρησιµοποιούνται από τη δοσοληψία αντικατοπτρίζουν τον πραγµατικό κόσµο την ίδια χρονική στιγµή. Είναι αναµενόµενο ότι δεν είναι εφικτό να ικανοποιούνται ταυτόχρονα οι απαιτήσεις τόσο για εσωτερική όσο και για εξωτερική συνέπεια, καθότι στοιχεία που µόλις έχουν καταφτάσει πιθανόν να παραβιάζουν την εσωτερική συνέπεια της βάσης δεδοµένων. Εποµένως, η συνεργασία και η συνδροµικότητα των δοσοληψιών είναι καίριας σηµασίας. Στις συµβατικές βάσεις δεδοµένων δίνεται βάρος στη δίκαιη κατανοµή των πόρων του συστήµατος ή στη µέγιστη αξιοποίησή τους. Στα συστήµατα βάσεων δεδο- µένων πραγµατικού χρόνου η προτεραιότητα δίνεται στην έγκαιρη εκτέλεση των δοσοληψιών και οι επιδόσεις του συστήµατος εξαρτώνται από το ποσοστό αυτών που ολοκληρώνονται εντός των προκαθορισµένων χρονικών προθεσµιών. Ιδιαίτερη σηµασία αποδίδεται επίσης και στο ζήτηµα της βελτιστοποίησης ερωτηµάτων, όπου πρέπει να αποφεύγεται η ανάγνωση όλων των δεδοµένων, ειδάλλως η εκτέλεση του ερωτήµατος θα επιβραδύνεται µε τη συσσώρευση νέων στοιχείων στη βάση δεδοµένων. Γι αυτό, έχουν αναπτυχθεί ή προσαρ- µοστεί διάφοροι αλγόριθµοι χρονικών συνδέσεων (temporal joins), όπως time-join, time-equijoin, event join, κ.ά., οι οποίοι είναι συνήθως επεκτάσεις των γνωστών αλγορίθµων nested loop και merge join. Τέλος, αξίζει να τονιστεί ότι στα συστήµατα πραγµατικού χρόνου οι προθεσµίες ισχύουν για ανεξάρτητες δοσοληψίες, σε αντιπαραβολή προς τα ρεύµατα δεδοµένων όπου πρέπει είτε να υφίστανται διαρκείς χρονικοί περιορισµοί ή για κάθε αποτέλεσµα να εκτιµάται η ποιότητα υπηρεσιών (QoS) του συστήµατος, όπως συµβαίνει στο AURORA. ([OS95],[KGM95])

2.3 Ερωτήµατα µε χρήση παραθύρων 2.3.1 Χρονικά παράθυρα Εκ των πραγµάτων, σε οποιασδήποτε µορφής προσεγγιστική µέθοδο υπολογισµού απαντήσεων για ερωτήµατα διαρκείας ελλοχεύει ο κίνδυνος µεγάλου σφάλµατος, λ.χ. λόγω ατυχούς επιλογής δειγµάτων. Αντίθετα, τα χρονικά παράθυρα αποτελούν µια ντετερµινιστική µέθοδο υπολογισµού, περιορίζοντας δραστικά τέτοια πιθανότητα. Επιπλέον, οι χρήστες του συστήµατος είναι εµµέσως ενήµεροι και για την αξιοπιστία του αποτελέσµατος, αφού οι ίδιοι προσδιορίζουν ακριβώς ποιο τµήµα των στοιχείων θα χρησιµοποιηθεί για να δοθεί το αποτέλεσµα. Όµως η σπουδαιότητα της µεθόδου έγκειται στην έµφαση που αποδίδει στα πλέον πρόσφατα στοιχεία, τα οποία για τις περισσότερες εφαρµογές πραγµατικού χρόνου έχουν πολύ µεγαλύτερη σηµασία και χρησιµότητα απ ό,τι τα παλιότερα δεδοµένα. Έτσι, το αποτέλεσµα είναι µάλλον απίθανο να επηρεαστεί ή να διαστρεβλωθεί από παρωχηµένα στοιχεία. Συχνά οι χρήστες ενδιαφέρονται να µάθουν σε πραγµατικό χρόνο λ.χ. ποιες µετρήσεις από αισθητήρες υπερβαίνουν κάποιο κατώφλι ή στατιστικά στοιχεία για τηλεφωνικές συνδιαλέξεις, που αφορούν το πρόσφατο παρά το απώτερο παρελθόν. Κατά συνέπεια, η τεχνική των χρονικών (και ιδιαίτερα των κυλιόµενων) παραθύρων δεν πρέπει να εκλαµβάνεται αποκλειστικά ως µια λύση επιβεβληµένη λόγω της αδυναµίας επεξεργασίας όλων των ιστορικών στοιχείων που συσσωρεύονται ή της ανεπάρκειας της διαθέσιµης µνήµης για την τήρησή τους, δηλαδή απλώς ως ένας µηχανισµός επιτάχυνσης της εκτέλεσης των ερωτηµάτων και µείωσης του όγκου των δεδοµένων. Απεναντίας, η περιγραφή χρονικών παραθύρων ενδεχοµένως µπορεί να θεωρηθεί αναπόσπαστο µέρος της σηµασιολογίας του ερωτήµατος (query semantics), που ο ίδιος ο χρήστης εκφράζει µε τις κατάλληλες συνθήκες. Για να περιγραφεί µε σαφήνεια η χρονική έκταση που θα καλύπτεται από τα παράθυρα, είναι επιτακτική η ανάγκη προσδιορισµού χρονικών οροσήµων (timestamps), δηλαδή ενδείξεων στα στοιχεία του ρεύµατος δεδοµένων που δηλώνουν συνήθως τη χρονική στιγµή παραγωγής τους. Από την άλλη πλευρά, επεκτάσεις της γλώσσας SQL ή της σχεσιακής άλγεβρας για να ενσωµατωθούν οι αντίστοιχες προδιαγραφές χρήσης παραθύρων δεν είναι απλές και επιβάλλουν σηµαντικές αλλαγές στη σύνταξη των εντολών. Έτσι, τυχόν τροποποιήσεις προκειµένου να επιτραπεί η δηµιουργία παραθύρων πιθανόν να έχουν επιπτώσεις κατά το στάδιο της βελτιστοποίησης των ερωτηµάτων (query optimization), όπως και στην υλοποίηση της µεθόδου. Τέλος, δεν υπάρχει καµιά εγγύηση ότι το ίδιο το παράθυρο δεν θα είναι τόσο εκτεταµένο, ώστε ο όγκος των πλειάδων που περιλαµβάνει να µην επαρκεί στην κύρια µνήµη, στην οποία πραγµατοποιείται η επεξεργασία. Τότε ίσως χρειάζεται να επινοηθούν αλγόριθµοι ικανοί να υπολογίσουν την προσεγγιστική απάντηση εκµεταλλευόµενοι µόνο τους διαθέσιµους πόρους (κυρίως µνήµη). Έστω ότι υπάρχει στη µνήµη δεσµευµένος ένας χώρος M µε ικανότητα τήρησης κάθε φορά n πλειάδων του ρεύµατος και ας υποτεθεί ότι κάθε χρονική στιγµή εισέρχεται στο σύστηµα µόνο µια νέα πλειάδα. Προφανώς ο χώρος αυτός µπορεί να θεωρηθεί ως ένας πίνακας (array) n θέσεων, M[0], M[n-1], ο οποίος λειτουργεί κατά κυκλικό τρόπο: 41

Ερωτήµατα σε ρεύµατα δεδοµένων. όταν έρθει κάποιο νέο στοιχείο i n, το στοιχείο M[0] θα πρέπει να απορριφθεί και όλα τα υπόλοιπα στοιχεία να µετατεθούν µια θέση προς τ αριστερά. Το νέο στοιχείο εισάγεται πάντοτε στη θέση M[n-1]. Κατ αυτόν τον τρόπο, εάν το παράθυρο µετατοπίζεται σταθερά κατά µια θέση (κυλιόµενο παράθυρο), όλα τα διαδοχικά υποσύνολα του ρεύµατος που φυλάσσονται στον πίνακα θα έχουν n-1 κοινά στοιχεία. Παράδειγµα 2.3.1. Έστω ένα σύστηµα ρευµάτων δεδοµένων t 0 χρόνος t 0 + t 1 t 0 + t 2 που διαχειρίζεται τηλεφωνικές συνδιαλέξεις, νεότερη κατά το πρότυπο της πλειάδα ενότητας 1.5. Μπορεί να τεθεί ένα ερώτηµα της µορφής: «Να υπολογίζεται εφεξής η µέση χρονική διάρκεια των τηλεφωνικών κλήσεων του συνδροµητή Χρονικό παράθυρο µε αριθµό <#> που πραγ- παλαιότερη Πλειάδες που µεγέθους w=30 λεπτών µατοποιήθηκαν εντός των πλειάδα µπορούν να τελευταίων 30 λεπτών». διαγραφούν Το κυλιόµενο παράθυρο θα πρέπει λοιπόν να Σχέδιο 2.1: Η λογική των παραθύρων στα ρεύµατα δεδοµένων καλύπτει χρονικό διάστηµα µισής ώρας. Είναι φανερό ότι η έννοια του παραθύρου αποτελεί βασικό στοιχείο του ίδιου του ερωτήµατος. εν έχει νόηµα να αναζητηθεί η µέση χρονική διάρκεια των κλήσεων, αν δεν προσδιορίζεται η χρονική περίοδος στην οποία σηµειώθηκαν. Βεβαίως, ο αριθµός των πλειάδων που θα περιλαµβάνονται εντός του παραθύρου (στο σχήµα 2.1 µε τις διακεκοµµένες γραµµές) θα είναι µεταβαλλόµενος, αφού ο ρυθµός παραγωγής των στοιχείων, που προκύπτει από τη συχνότητα των κλήσεων, δεν µπορεί να κρατηθεί σταθερός. Επίσης, εφόσον το ενδιαφέρον επικεντρώνεται στο πολύ πρόσφατο παρελθόν, είναι εύλογο ότι δεν υπάρχει πρόβληµα να διαγραφούν τα παλαιότερα στοιχεία (λ.χ. των προηγούµενων ηµερών), ιδιαίτερα µάλιστα αν δεν εξυπηρετούν σε κάποιο άλλο ερώτηµα. Η περίπτωση να χρειαστούν σε κάποιο µη προβλέψιµο ερώτηµα που ίσως τεθεί µελλοντικά, µπορεί να καλυφθεί τηρώντας κάποια γενικά αθροιστικά στοιχεία µε τη µορφή περιλήψεων, όπως θα αναφερθεί σε επόµενη ενότητα. 2.3.2 ιάταξη ρευµάτων και χρονικά ορόσηµα Προκειµένου να είναι δυνατή η εφαρµογή χρονικών παραθύρων, δηλαδή ο υπολογισµός των πλειάδων που περιλαµβάνονται εντός τους, θα πρέπει να υπάρχει πρόνοια για διάταξη των στοιχείων µε βάση ένα χρονικό ορόσηµο (timestamp) που δίνεται καθολικά από το χρονόµετρο του συστήµατος (system clock). Εξάλλου, για να είναι δυνατή η σύνδεση και ο συντονισµός µεταξύ σχέσεων και ρευµάτων, θα πρέπει και ενδεχόµενες ενηµερώσεις (updates) των σχεσιακών πλειάδων να φέρουν ένα χρονικό ορόσηµο, που επίσης θα λαµβάνουν µε τον ίδιο τρόπο. 42

2.3 Ερωτήµατα µε χρήση παραθύρων Πολύ ενδιαφέρουσα δείχνει η ιδέα του σφυγµού (heartbeat), δηλαδή της περιοδικής αποστολής ειδικών σηµάτων από το ρολόι. Έπειτα από τη λήψη των σηµάτων αυτών δεν θα πρέπει να αναµένονται άλλα στοιχεία ρευµάτων ή ενηµερώσεις σχέσεων που υστερούν σε σύγκριση µε την χρονική σήµανση του σφυγµού, ειδάλλως δεν θα είναι δυνατόν να προκύπτουν αποτελέσµατα. Τυχόν µη διατεταγµένες πλειάδες κάποιων ρευµάτων θα µπορούσαν να αντιµετωπιστούν µε χρήση ενδιαµέσης µνήµης (buffers) και αναµονή µέχρι τον επόµενο σφυγµό (heartbeat) πριν ξεκινήσει η ταξινόµησή τους. Μια παρεµφερής αντιµετώπιση θα ήταν η θέσπιση περιοδικού χρονικού περιθωρίου (timeout). Βάσει αυτής της τεχνικής, έπειτα από την εκπνοή του χρονικού ορίου δεν θα γίνονται αποδεκτές πλειάδες µε προγενέστερο χρονικό ορόσηµο (timestamp), αποδεχόµενοι βεβαίως ότι υπάρχει σοβαρό ενδεχόµενο αποτελεσµάτων µειωµένης ακρίβειας. 2.3.3 Κατηγορίες ερωτηµάτων µε χρονικά παράθυρα Η σχέση µεταξύ της αρχής και του πέρατος του παραθύρου ως προς το χρόνο καθορίζει τη δοµή του και, ως εκ τούτου, τη συµπεριφορά του ερωτήµατος όπου χρησι- µοποιείται. Θέτοντας αυτό το κριτήριο, διακρίνονται οι εξής τύποι ερωτηµάτων µε χρήση παραθύρων: i. Ερωτήµατα στιγµιοτύπου (one-time or snapshot queries) Ένα τέτοιο ερώτηµα εκτελείται µόνο µια φορά πάνω σ ένα χρονικό παράθυρο που έχει οριστεί. Τόσο η αφετηρία όσο και το πέρας του παραθύρου είναι συγκεκριµένες χρονικές στιγµές στην ιστορική εξέλιξη των (παρελθόντων) στοιχείων του ρεύµατος. Παράδειγµα 2.3.2. «Υπολόγισε τον συνολικό ηµερήσιο αριθµό συνδιαλέξεων του συνδροµητή µε τηλεφωνικό αριθµό <###> για το µήνα Μάρτιο». ii. Ερωτήµατα χρονικού οροσήµου (landmark queries) Σ αυτά τα ερωτήµατα, τα παράθυρα έχουν ως σταθερή αφετηρία κάποιο χρονικό ορόσηµο (timestamp) αλλά το πέρας τους παρακολουθεί τη χρονική εξέλιξη των πλειάδων του ρεύµατος. Εποµένως, το νεότερο άκρο του παραθύρου προχωρεί παράλληλα µε το χρόνο, ταυτιζόµενο µε την παρούσα χρονική στιγµή, ώστε να καλύπτει συνεχώς την έλευση νέων στοιχείων. Το εύρος του παραθύρου αυξάνεται λοιπόν διαρκώς, όπως και ο αριθµός των πλειάδων που περιλαµβάνει. Παράδειγµα 2.3.3. Τέτοιου είδους παράθυρα µπορούν να εκφράσουν έννοιες όπως η εξέλιξη ενός µεγέθους από την αρχή του έτους µέχρι σήµερα, λ.χ. «Υπολόγισε τον συνολικό ηµερήσιο αριθµό συνδιαλέξεων του συνδροµητή µε τηλεφωνικό αριθµό <###> από την αρχή του έτους». iii. Ερωτήµατα κυλιόµενου παραθύρου (sliding window queries) Τα παράθυρα στα ερωτήµατα αυτά έχουν αφετηρία και πέρας που κινούνται ταυτόχρονα παρακολουθώντας την χρονική εξέλιξη των στοιχείων που συρρέουν στο σύστηµα. Μπορεί βεβαίως το εύρος τους να παραµένει σταθερό, ωστόσο ούτε ο αριθµός 43

Ερωτήµατα σε ρεύµατα δεδοµένων. των πλειάδων ούτε φυσικά και τα περιεχόµενα εντός των παραθύρων διατηρούνται αµετάβλητα, εφόσον παλαιότερα δεδοµένα απορρίπτονται και καινούργια εισέρχονται µε κυµαινόµενο ρυθµό. Επιπλέον, δεν είναι πάντοτε επιθυµητό η κίνηση του παραθύρου να είναι οµαλή, αλλά µπορεί να εµφανίζει άλµατα στο χρόνο ή να κινείται αντίθετα προς την πρόοδο των στοιχείων, ανάλογα µε τις απαιτήσεις των ερωτηµάτων. Παράδειγµα 2.3.4. Με χρήση τέτοιων παραθύρων µπορούν να δηλωθούν αλλαπάλληλες χρονικές περίοδοι, όπως λ.χ. «Από την αρχή του έτους και στο τέλος κάθε εβδοµάδας, υπολόγισε τη µέση χρονική διάρκεια των συνδιαλέξεων του συνδροµητή µε αριθµό <###>, εξαιρώντας τα Σαββατοκύριακα». iv. Ερωτήµατα χρονικής σύνδεσης ζώνης (temporal band-join queries) Τέτοια ερωτήµατα αποσκοπούν στη σύνδεση πλειάδων από πολλαπλά ρεύµατα δεδοµένων βάσει των χρονικών τους οροσήµων. Έτσι ζώνες ή λωρίδες (bands) στοιχείων ορίζονται σε κάθε ρεύµα µε χρήση καταλλήλων παραθύρων, τα οποία συνήθως έχουν κοινή αφετηρία και πέρας. Παράδειγµα 2.3.5. «Για τις επόµενες δέκα ηµέρες, βρες τους τηλεφωνικούς αριθµούς που ανήκουν στην εταιρεία <ΧΧΧ> που πραγµατοποίησαν την ίδια ηµέρα µεγαλύτερο αριθµό συνδιαλέξεων από τον τηλεφωνικό αριθµό <###> της ίδιας εταιρείας». 2.3.4 Η έννοια του χρόνου στα ερωτήµατα µε παράθυρα Η έννοια του χρόνου ενδεχοµένως είναι διαφορετική µεταξύ των ρευµάτων που συρρέουν στο σύστηµα, αφού άλλα µπορεί να φέρουν σαφή χρονική ένδειξη από κάποιο χρονόµετρο (φυσικός χρόνος) και άλλα έναν αύξοντα αριθµό πλειάδας (λογικός χρόνος). Οι απαιτήσεις του παραθύρου σε µνήµη µπορεί να είναι γνωστές εκ των προτέρων όποτε χρησιµοποιούνται λογικά χρονικά ορόσηµα (logical timestamps), ενώ θα εξαρτώνται από τις πιθανές διακυµάνσεις στο ρυθµό άφιξης των πλειάδων εάν αυτές σηµατοδοτούνται µε φυσικά ορόσηµα (physical or clock timestamps). Ουσιαστικά λοιπόν πρόκειται για διάκριση µεταξύ ρητών (explicit timestamps) και έµµεσων χρονικών οροσήµων (implicit timestamps) στα ρεύµατα δεδοµένων, που παρουσιάζει µεγάλη οµοιότητα µε τις έννοιες του χρόνου εγκυρότητας (valid time) και του χρόνου δοσοληψίας (transaction time) στα συστήµατα χρονικών βάσεων δεδοµένων. Τα ρητά χρονικά ορόσηµα (explicit timestamps) έχουν προφανή σκοπιµότητα όταν οι πλειάδες αντιπροσωπεύουν γεγονότα του πραγµατικού κόσµου σε χρονικές στιγµές που συνεισφέρουν στην καταγραφόµενη πληροφορία. Αντίθετα, τα έµµεσα χρονικά ορόσηµα (implicit timestamps) εισάγονται εκ των υστέρων στο ρεύµα δεδοµένων, είτε όταν οι πηγές που το τροφοδοτούν µε πλειάδες δεν καταγράφουν χρονική πληροφορία είτε επειδή κρίνεται ότι τέτοιες ενδείξεις δεν συνεισφέρουν κάτι αξιόλογο. Αναµφίβολα, η χρήση ρητών χρονικών οροσήµων µειονεκτεί κατά το γεγονός ότι η σειρά άφιξης των πλειάδων πιθανόν να µην συµφωνεί µε την καταγεγραµµένη χρονική πληροφορία. Ως εκ τούτου, πλειάδες µε µεταγενέστερη χρονική ένδειξη µπορεί να λαµβάνονται από το σύστηµα νωρίτερα από άλλες µε προγενέστερο χρονικό ορόσηµο 44

2.3 Ερωτήµατα µε χρήση παραθύρων εξαιτίας καθυστερήσεων. Έτσι, δεν υπάρχει απόλυτη βεβαιότητα ότι οι πλειάδες θα είναι τελικά ταξινοµηµένες ως προς το χρονικό τους ορόσηµο, φαινόµενο που δυσχεραίνει τους υπολογισµούς που βασίζονται στη διάταξη ή εµπλέκουν χρονικά παράθυρα. Πάντως, υποθέτοντας ότι οι πλειάδες που καταγράφονται από το σύστηµα είναι χονδρικά διατεταγµένες µε µικρές µόνο σποραδικές ανωµαλίες, αυτές µπορούν να επιλυθούν εάν µεσολαβεί ενδιάµεση µνήµη (buffer) των στοιχείων ειδικά για τους σκοπούς της ταξινό- µησής τους, πριν αυτά διοχετευτούν προς περαιτέρω επεξεργασία. Το είδος των ερωτηµάτων που τίθενται σχετίζονται άµεσα µε το παράθυρο που θα χρησιµοποιηθεί. Λ.χ. σε ένα ερώτηµα συνάθροισης (aggregation query) όπου ζητείται η µέγιστη τιµή των στοιχείων του ρεύµατος, ο τελεστής MAX µπορεί να εφαρµοστεί πάνω σε ένα παράθυρο χρονικού οροσήµου (landmark window). Καθώς νέα στοιχεία καταφθάνουν, η απάντηση µπορεί να προκύπτει συγκρίνοντας την τρέχουσα µέγιστη τιµή µε αυτές που προστίθενται διαρκώς στο παράθυρο. Αντίθετα, η χρήση κυλιόµενου παραθύρου θα επέβαλε τη διατήρηση όλων των τιµών εντός του, προκειµένου να υπολογιστεί η µέγιστη, αυξάνοντας έτσι κατά πολύ τις απαιτήσεις σε µνήµη. Επιπλέον, σηµαντικοί παράγοντες στην εκτέλεση των ερωτηµάτων είναι η κατεύθυνση κίνησης του παραθύρου (παράλληλη προς την εξέλιξη του χρόνου ή ανάποδα), καθώς και το χρονικό βήµα προόδου του παραθύρου όπως εκφράζεται από την χρονική απόσταση διαδοχικών παραθύρων. Εάν τυχόν το χρονικό βήµα υπεβαίνει το µέγεθος του παραθύρου, αναπόφευκτα τµήµα των πλειάδων των ρευµάτων θα παραµείνει τελικά εκτός επεξεργασίας. Η χρονική µονάδα, βάσει της οποίας ορίζεται το παράθυρο, ενδέχεται επίσης να ποικίλλει: το παράθυρο µπορεί να οριστεί σε επίπεδο δευτερολέπτου, λεπτού, ώρας ή ακόµη και ηµέρας. Η σηµασιολογία του ερωτήµατος θα πρέπει να παρέχει την ευελιξία για τον προσδιορισµό των εναλλακτικών χρονικών περιόδων. Επίσης, το παράθυρο δεν αποκλείεται να ορίζεται µε τον ίδιο τρόπο, όπως και τα χρονικά ορόσηµα. Συνεπώς, όταν ισχύει ο φυσικός χρόνος, το παράθυρο µπορεί να περιγραφεί µε τη χρονική του διάρκεια ή τα όριά του, ενώ όταν οι πλειάδες χαρακτηρίζονται µε τον αύξοντα αριθµό τους (λογικός χρόνος), το παράθυρο µπορεί επίσης να οριστεί µε το πλήθος των προγενέστερων πλειάδων ή από τον ελάχιστο και µέγιστο αριθµό πλειάδας. Συστήµατα όπως το STREAM, θεωρούν ότι ο χρόνος αναπαρίσταται από διακριτές στιγµές, οπότε είναι εφικτή η ολική διάταξή τους. Κατά συνέπεια, επιτρέπεται ο ορισµός παραθύρων και µε τους δύο τρόπους, ανάλογα και µε τη µορφή του ερωτήµατος που τίθεται. Σε περιπτώσεις που συρρέουν δεδοµένα από πολλαπλές πηγές, δηλαδή το σύστηµα είναι κατανεµηµένο, οι πλειάδες πιθανόν να µην παρουσιάζουν ιδιαίτερο συγχρονισµό µεταξύ τους, άρα δεν είναι εύκολο να τεθούν σε ολική διάταξη (complete order). Μια λύση, που προτείνεται από το TelegraphCQ, είναι να επιτρεπεί ακόµη και µερική διάταξη (partial order) των χρονικών στιγµών. Επιπλέον, πρέπει να κατασκευαστεί µια άλγεβρα ρευµάτων (stream algebra), ώστε οι τυπικοί τελεστές να µπορούν να εφαρµοστούν σε ρεύµατα δεδοµένων και να είναι δυνατός ο µετασχηµατισµός ρευµάτων που ακολουθούν διαφορετικές χρονικές ενδείξεις από τη µια µορφή στην άλλη (από λογικά σε φυσικά ορόσηµα κι αντίστροφα). 45