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

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

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

Transcript

1 ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΖΩΓΡΑΦΟΥ , ΑΘΗΝΑ ΕΒΓ - ΙΠΛ Σεπτέµβρης 2001 ΜΕΛΕΤΗ & ΣΥΓΚΡΙΣΗ ΑΛΓΟΡΙΘΜΩΝ ΓΙΑ ΛΕΙΤΟΥΡΓΙΕΣ ΕΠΑΥΞΗΤΙΚΗΣ ΕΞΑΓΩΓΗΣ(INCREMENTAL EXTRACTION) Ε ΟΜΕΝΩΝ ΑΠΟ RDBMS ηµήτρης Βουδούρης ΕΠΙΒΛΕΠΩΝ ΚΑΘΗΓΗΤΗΣ: Τίµος Σελλής ΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΕΡΓΑΣΤΗΡΙΟ ΣΥΣΤΗΜΑΤΩΝ ΒΑΣΕΩΝ ΓΝΩΣΕΩΝ ΚΑΙ Ε ΟΜΕΝΩΝ

2 2

3 Στην οικογένειά µου! Ευχαριστώ του κυρίους Τ. Σελλή, A. Σιµιτσή και Ν. Καραγιαννίδη για την πολύτιµη βοήθεια που µου παρείχαν κατά την εκπόνηση της διπλωµατικής αυτής εργασίας, καθώς και όλα τους υπεύθυνους (και µη) του εργαστηρίου για τις πολύτιµες συµβουλές,πάνω σε τεχνικά θέµατα, που µου προσέφεραν. 3

4 4

5 ΠΕΡΙΕΧΟΜΕΝΑ 5

6 Πίνακας Περιεχοµένων ΚΕΦΑΛΑΙΟ 1 : ΕΙΣΑΓΩΓΗ ) ΑΝΤΙΚΕΙΜΕΝΟ ΤΗΣ ΙΠΛΩΜΑΤΙΚΗΣ ) Γενική περιγραφή ) Συνεισφορά ) ΟΡΓΑΝΩΣΗ ΤΟΥ ΤΟΜΟΥ...11 ΚΕΦΑΛΑΙΟ 2 : ΠΕΡΙΓΡΑΦΗ ΠΡΟΒΛΗΜΑΤΟΣ ) ΕΙΣΑΓΩΓΗ ) ΑΠΟΘΉΚΕΣ Ε ΟΜΈΝΩΝ & ΣΥΣΤΉΜΑΤΑ OLAP ) ΕΠΑΥΞΗΤΙΚΉ ΕΞΑΓΩΓΉ(INCREMENTAL EXTRACTION)...18 KΕΦΑΛΑΙΟ 3 : ΘΕΩΡΗΤΙΚΗ ΠΕΡΙΓΡΑΦΗ ΑΛΓΟΡΙΘΜΩΝ ) ΕΙΣΑΓΩΓΉ ) ΘΕΩΡΗΤΙΚΉ ΠΕΡΙΓΡΑΦΉ ΤΗΣ ΜΕΘΌ ΟΥ ΑΝΆΛΥΣΗΣ ΤΩΝ LOGS ) Περιγραφή των αρχείων log και χρησιµότητα τους ) Εκµετάλευση των logs για την απόσπαση πληροφοριών σχετικών µε τις αλλαγές που έχουν γίνει στη βάση-incremental extraction ) Log mining µέσα από την Oracle ) Θεωρητικά πλεονεκτήµατα της µεθόδου ) Θεωρητικά µειονεκτήµατα της µεθόδου ) ΘΕΩΡΗΤΙΚΉ ΠΡΟΣΈΓΓΙΣΗ ΤΗΣ ΜΕΘΌ ΟΥ ΣΥΝΕΧΟΎΣ ΠΑΡΑΚΟΛΟΎΘΗΣΗΣ ΤΗΣ ΒΆΣΗΣ-TRIGGERS ) Γενική περιγραφή της µεθόδου ) TRIGGERS στην Oracle ) Θεωρητική περιγραφή πρώτης εκδοχής ) Θεωρητική περιγραφή δεύτερης εκδοχής-timestamps ) Θεωρητικά πλεονεκτήµατα των µεθόδων µε τα TRIGGERS ) Θεωρητικά µειονεκτήµατα των µεθόδων µε τα TRIGGERS ) Σύγκριση µεταξύ των δύο διαφορετικών εκδοχών: triggers & timestamps28 3.4) ΘΕΩΡΗΤΙΚΉ ΠΡΟΣΈΓΓΙΣΗ ΤΗΣ ΜΕΘΌ ΟΥ ΜΕ ΤΑ SNAPSHOTS ) Γενική περιγραφή της µεθόδου ) Υλοποίηση των στιγµιοτύπων στην ORACLE ) Θεωρητική περιγραφή της πρώτης εκδοχής-crc ) Θεωρητική περιγραφή της δεύτερης εκδοχής Window algorithm ) Θεωρητικά µειονεκτήµατα και πλεονεκτήµατα των µεθόδων χρήσης των snapshots ) Σύγκριση µεταξύ των δύο διαφορετικών εκδοχών της µεθόδου ) ΘΕΩΡΗΤΙΚΉ ΣΎΓΚΡΙΣΗ ΌΛΩΝ ΤΩΝ ΠΑΡΑΠΆΝΩ ΠΡΟΣΕΓΓΊΣΕΩΝ(LOGS, TRIGGERS- TIMESTAMPS, SNAPSHOTS)...35 ΚΕΦΑΛΑΙΟ 4 : ΥΛΟΠΟΙΗΣΗ ΤΩΝ ΑΛΓΟΡΙΘΜΩΝ ) ΕΙΣΑΓΩΓΉ

7 4.2) ΠΕΡΙΒΆΛΛΟΝ ΥΛΟΠΟΊΗΣΗΣ ΤΩΝ ΜΕΘΌ ΩΝ ) ΠΡΑΚΤΙΚΉ ΥΛΟΠΟΊΗΣΗ ΤΗΣ ΜΕΘΌ ΟΥ ΑΝΆΛΥΣΗΣ ΤΩΝ LOG FILES ) Εργαλεία που χρησιµοποιούνται-περιγραφή Logminer,export/import ) Στοιχεία που προστίθενται στη βάση για την υποστήριξη της µεθόδου ) Περιγραφή υλοποίησης µεθόδου ανάλυσης των logs ) ΠΡΑΚΤΙΚΉ ΥΛΟΠΟΊΗΣΗ ΜΕΘΌ ΟΥ ΧΡΉΣΗΣ TRIGGERS ) Εργαλεία που χρησιµοποιούνται από τις δύο εκδοχές της µεθόδου- Περιγραφή των TRIGGERS της ORACLE & SEQUENCES ) Στοιχεία που προστίθενται στη βάση µας για την υποστήριξη της πρώτης εκδοχής της µεθόδου ) Περιγραφή υλοποίησης πρώτης εκδοχής ) Στοιχεία που προστίθενται στη βάση µας για την υποστήριξη της δεύτερης εκδοχής της µεθόδου ) Περιγραφή υλοποίησης δεύτερης εκδοχής ) ΠΡΑΚΤΙΚΉ ΥΛΟΠΟΊΗΣΗ ΤΗΣ ΜΕΘΌ ΟΥ ΧΡΉΣΗΣ SNAPSHOTS ) Εργαλεία που χρησιµοποιούνται από τις δύο εκδοχές της µεθόδου ) Απλοποιήσεις και παραδοχές που υιοθετήσαµε ) Στοιχεία που προστίθενται στη βάση µας για την υποστήριξη της µεθόδου ) Περιγραφή υλοποίησης της πρώτης εκδοχής της µεθόδου-χρήση CRC ) Στοιχεία που προστίθενται στη βάση µας για την υποστήριξη της δεύτερης εκδοχής της µεθόδου ) Περιγραφή υλοποίησης της δεύτερης εκδοχής της µεθόδου-window algorithm...88 ΚΕΦΑΛΑΙΟ 5 : ΠΕΙΡΑΜΑΤΑ & ΜΕΤΡΗΣΕΙΣ ) ΕΙΣΑΓΩΓΉ ) ΠΑΡΆ ΕΙΓΜΑ ΕΚΤΈΛΕΣΗΣ ) Περιγραφή υλικού ) Περιγραφή σχήµατος της βάσης δεδοµένων που χρησιµοποιήθηκε ) Αποτελέσµατα ) ΠΕΙΡΑΜΑΤΙΚΈΣ ΜΕΤΡΉΣΕΙΣ ) Περιγραφή πειράµατος ) Επαλήθευση αποτελεσµάτων ) Αποτελέσµατα µεθόδου χρήσης των Logs ) Αποτελέσµατα µεθόδου χρήσης των triggers ) Αποτελέσµατα µεθόδου χρήσης των materialized views(snapshots) ) Συγκριτικά αποτελέσµατα, συµπεράσµατα και αποκλίσεις από τα θεωρητικά αναµενόµενα ΚΕΦΑΛΑΙΟ 6 : ΕΠΙΛΟΓΟΣ ) ΠΕΡΙΓΡΑΦΉ ΠΡΟΒΛΉΜΑΤΟΣ ΚΑΙ ΣΎΝΟΨΗ ΤΩΝ ΜΕΘΌ ΩΝ ΠΟΥ ΠΕΡΙΓΡΆΦΗΚΑΝ. ΣΥΜΠΕΡΆΣΜΑΤΑ ) ΜΕΛΛΟΝΤΙΚΈΣ ΠΡΟΕΚΤΆΣΕΙΣ ΚΕΦΑΛΑΙΟ 7 : ΒΙΒΛΙΟΓΡΑΦΙΑ ΠΑΡΑΡΤΗΜΑΤΑ Α) ΑΝΑΦΟΡΆ ΣΤΗΝ ORACLE VERSION Σύνδεση σε κάποιο instance της ORACLE

8 Ξεκινώντας, Κλείνοντας την ORACLE σε περιβάλλον LINUX ΑRCHIVED MODE SERVICE NAMES BLOCKS ΕΝΤΟΛΩΝ ΚΑΙ ΗΜΙΟΥΡΓΙΑ ΚΑΙ ΕΚΤΕΛΕΣΗ ΣΥΝΑΡΤΗΣΕΩΝ ΜΕΣΑ ΑΠΟ ΤΟ ΠΕΡΙΒΑΛΛΟΝ ΤΗΣ ORACLE DYNAMIC SQL ΡΥΘΜΙΣΗ ODBC Β) ΑΝΑΦΟΡΆ ΣΤΗΝ JAVA VERSION JDBC COMPILE ΕΧΕCUTION C) ΠΕΡΙΓΡΑΦΉ ΚΛΆΣΕΩΝ JAVA

9 Κεφάλαιο 1 : ΕΙΣΑΓΩΓΗ 9

10 1.1) ΑΝΤΙΚΕΙΜΕΝΟ ΤΗΣ ΙΠΛΩΜΑΤΙΚΗΣ 1.1.1) Γενική περιγραφή Η παρούσα διπλωµατική εργασία ασχολείται µε το στάδιο ETL (extract, transform, load) στις αποθήκες δεδοµένων (data warehouses) και συγκεκριµένα µε αποδοτικούς αλγόριθµούς εξαγωγής δεδοµένων από σύστηµα OLTP (on line transaction processing) για τη µετέπειτα φόρτωσή τους στην αποθήκη. Αναζητούµε µεθόδους οι οποίες να εξάγουν πληροφορίες από το OLTP σύστηµα επιβάλλοντάς του µικρή επιβάρυνση, ενώ πρέπει παράλληλα, η φόρτωση αυτών στην αποθήκη δεδοµένων να µπορεί να γίνει σε εύλογο χρονικό διάστηµα. Οι αποθήκες δεδοµένων (µεγάλες βάσεις δεδοµένων, διαφορετικής συνήθως αρχιτεκτονικής από τα συνηθισµένα OLTP συστήµατα) έχουν κατακτήσει τελευταία ένα σηµαντικό τµήµα της έρευνας στο χώρο των βάσεων δεδοµένων και χρησιµοποιούνται πλέον σε ένα ευρύ φάσµα δραστηριοτήτων, σαν το decision supporting.για τη σωστή και οµαλή λειτουργία τους είναι απαραίτητο να ανανεώνονται τα δεδοµένα τους και να αντικαθίστανται µε τα καινούργια σε τακτά χρονικά διαστήµατα. Τα καινούργια αυτά δεδοµένα προέρχονται συνήθως από ένα ή περισσότερα µικρότερα OLTP συστήµατα (τα οποία αποτελούν τις πηγές πληροφοριών για αυτές) ή άλλου είδους εισόδους (πχ αρχεία COBOL για παλιότερα συστήµατα) και είναι προφανές πως δεν είναι στατικά, αλλά µεταβάλλονται µε την πάροδο του χρόνου, οπότε είναι και απαραίτητο να προωθούνται στην αποθήκη. Επιπλέον αφορούν, κυρίως, στατιστικά ή συγκεντρωτικά στοιχεία και πολύ σπάνια απαιτείται η αποστολή λεπτοµερειών. Οι παραπάνω ανανεώσεις, δηλ η εξαγωγή από τα OLTP συστήµατα των πληροφοριών και η φόρτωσή τους στην αποθήκη, γίνονται, σχεδόν πάντα, σε µαζική (batch) µορφή µε ειδικευµένα εργαλεία. Η εξαγωγή των δεδοµένων µπορεί να εκτελεστεί µε δύο διαφορετικές φιλοσοφίες. Σύµφωνα µε την πρώτη όλη η πληροφορία µεταφέρεται από τα OLTP συστήµατα στην αποθήκη, οδηγώντας έτσι σε έναν τεράστιο όγκο µεταφερόµενων δεδοµένων, ο οποίος στη συνέχεια θα πρέπει να φορτωθεί, θέτοντας off line τη δεύτερη για ένα σηµαντικό χρονικό διάστηµα. Σύµφωνα µε την άλλη φιλοσοφία, εντοπίζουµε µόνο τις αλλαγές στα στοιχεία της βάσης µας (δηλ τα inserts, updates & deletes που έχουν πραγµατοποιηθεί) και µεταφέρουµε µόνο αυτά. Προφανώς, σε αυτήν την περίπτωση, ο όγκος της µεταφερόµενης πληροφορίας µειώνεται αισθητά, µαζί µε τον χρόνο που απαιτείται να µείνει off line η αποθήκη. Είναι προφανές πως η τελευταία προοπτική είναι σαφώς προτιµότερη, αλλά και δυσκολότερη να υλοποιηθεί, αφού θα πρέπει σε κάθε περίπτωση να εντοπίζουµε τις αλλαγές στη βάση δεδοµένων του OLTP συστήµατος, πριν τις εξάγουµε. Στην παρούσα διπλωµατική υλοποιούµε και συγκρίνουµε µερικές από τις πιο δηµοφιλείς µεθόδους επαυξητικής εξαγωγής. Πιο συγκεκριµένα υλοποιούνται οι µέθοδος ανάλυσης των logs, η χρήση triggers και η χρήση snapshots (CRC & window algorithm). Σαν πλατφόρµα χρησιµοποιήθηκε το RDBMS ORACLE στην έκδοση ) Συνεισφορά Μέχρι τώρα, πολλοί αλγόριθµοι (σαν αυτούς που αναφέραµε προηγουµένως) έχουν προταθεί (τουλάχιστον σε θεωρητικό επίπεδο) και ακόµα λιγότεροι έχουν υλοποιηθεί. Μέσω της παρούσας διπλωµατικής δίνεται η ευκαιρία να υλοποιηθούν κάποιοι από αυτούς σε κοινή πλατφόρµα και να εκτελεστούν σε κοινή βάση δεδοµένων, ώστε να εξεταστεί κατά πόσο µπορούν να δώσουν απάντηση στο δύσκολο πρόβληµα του incremental extraction. Επιπλέον, µέσω των πειραµατικών 10

11 συγκρίσεων, δίνεται και µια πρώτη άποψη για την απόδοση των µεθόδων αυτών, σε διάφορα µεγέθη βάσης δεδοµένων (τουλάχιστον ως προς τη χρονική επιβάρυνση του συστήµατος, στο οποίο εκτελούνται). Έτσι η εργασία αυτή µπορεί να γίνει η απαρχή για µια εµπεριστατωµένη µελέτη του κάθε αλγορίθµου, ώστε να µελετηθούν οι καταστάσεις και τα συστήµατα, στα οποία αυτός αποδίδει καλύτερα. 1.2) ΟΡΓΑΝΩΣΗ ΤΟΥ ΤΟΜΟΥ Στο 1 ο κεφάλαιο αναφέρεται µε λίγα λόγια το αντικείµενο της διπλωµατικής και η οργάνωση του τόµου. Στο 2 ο κεφάλαιο της διπλωµατικής επιχειρείται µια εισαγωγή στην τεχνολογία των data warehouses, τα προβλήµατα που ανακύπτουν κατά τη λειτουργία τους, το incremental extraction και σε κάποιους αλγόριθµους που προσφέρουν λύσεις στο τελευταίο. Στο 3 ο κεφάλαιο αναλύονται οι παραπάνω αλγόριθµοι σε θεωρητική βάση, δίνοντας επιπλέον πληροφορίες και επεξηγήσεις για τις απαιτήσεις που αυτοί έχουν, καθώς και τυχόν παραλλαγές που µπορούν να προκύψουν. Σε κάθε περίπτωση αναφέρονται τα θεωρητικά πλεονεκτήµατα και µειονεκτήµατα, ενώ στο τέλος υπάρχει θεωρητική σύγκριση όλων. Στο 4 ο κεφάλαιο περιγράφεται η υλοποίηση του κάθε αλγόριθµου(µαζί µε τις παραλλαγές του). Στο 5 ο κεφάλαιο περιγράφεται το σχήµα της βάσης που χρησιµοποιήσαµε για την πραγµατοποίηση όλων των παραπάνω,ενώ ενσωµατώνεται και ένα παράδειγµα εκτέλεσης των µεθόδων που υλοποιήθηκαν. Στο 6 ο κεφάλαιο συγκρίνονται οι παραπάνω µέθοδοι πρακτικά (τουλάχιστον στον τοµέα του χρόνου εκτέλεσης και της χρονικής επιβάρυνση), χρησιµοποιώντας βάση δεδοµένων διαφόρων µεγεθών. Αναφέρονται τυχόν διαφορές από τα θεωρητικά αναµενόµενα και δικαιολογούνται. Στο 7 ο κεφάλαιο ακολουθεί ο επίλογος, όπου περιγράφονται µε λίγα λόγια, όλα όσα πραγµατοποιήθηκαν στη διπλωµατική και αναφέρονται και πιθανές µελλοντικές προεκτάσεις. Στο 8 ο κεφάλαιο δίνεται η βιβλιογραφία και γενικότερα οι πηγές οι οποίες προµήθευσαν τις απαραίτητες πληροφορίες για τη συγγραφή της διπλωµατικής. Τέλος υπάρχουν τα παραρτήµατα που παρέχουν χρήσιµες πληροφορίες για την ORACLE, την JAVA και γενικότερα οτιδήποτε χρησιµοποιήθηκε στην υλοποίηση των µεθόδων. 11

12 Κεφάλαιο 2 : ΠΕΡΙΓΡΑΦΗ ΠΡΟΒΛΗΜΑΤΟΣ 12

13 2.1) ΕΙΣΑΓΩΓΗ Είναι γεγονός ότι η τεχνολογία στις βάσεις δεδοµένων τις τελευταίες δεκαετίες αναπτύσσεται µε αλµατώδεις ρυθµούς δηµιουργώντας συστήµατα µεγαλύτερα και πολυπλοκότερα. Όλοι οι µεγάλοι οργανισµοί και επιχειρήσεις χρησιµοποιούν οργανωµένα συστήµατα διαχείρισης βάσεων δεδοµένων για την αποτελεσµατικότερη οργάνωση και επεξεργασία των δεδοµένων που προκύπτουν κατά τη λειτουργία τους. Οι οργανισµοί αυτοί χρησιµοποιούν δεκάδες (εκατοντάδες πολλές φορές) υποκαταστήµατα µέσω των οποίων οι πελάτες µπορούν να εκτελέσουν τις διάφορες συναλλαγές τους(κλασικό παράδειγµα είναι οι µεγάλες τράπεζες).τα κλασικά συστήµατα τα οποία χρησιµοποιούνται για τις συναλλαγές(oltp- On Line Transaction Processing) παρέχουν πολλές δυνατότητες για επεξεργασία µεγάλου αριθµού δοσοληψιών. Όµως δεν µπορούν να διαχειριστούν αποτελεσµατικά πολύ µεγάλο όγκο πληροφοριών πράγµα που θα αποτελεί µεγάλο µειονέκτηµα που θα εξελιχτεί σιγά-σιγά σε µεγαλύτερο µε την πάροδο του χρόνου (συνήθως το µειονέκτηµα αυτό οφείλεται στο σχεσιακό µοντέλο που χρησιµοποιείται από τα περισσότερα εµπορικά συστήµατα βάσεων δεδοµένων το οποίο είναι εξαιρετικά αποτελεσµατικό στην ελαχιστοποίηση της πλεονάζουσας πληροφορίας αλλά δεν είναι ιδιαίτερα αποδοτικό στον τοµέα της ταχύτητας εκτέλεσης των queries). Επιπλέον,σήµερα, γοργά αναπτύσσεται ο λεγόµενος τοµέας του decision support δηλ η αξιολόγηση προϊόντων και υπηρεσιών µε βάση τις προτιµήσεις των πελατών - καταναλωτών. Για να γίνει όµως µια τέτοια υπηρεσία υλοποιήσιµη θα πρέπει να υπάρχουν και τα αντίστοιχα εργαλεία τα οποία θα µπορούν να προσπελαύνουν µεγάλο όγκο πληροφοριών γρήγορα και αποτελεσµατικά.είναι προφανές ότι τα κλασικά OLTP συστήµατα δεν µπορούν να δώσουν λύση. Τη λύση καλούνται να δώσουν τα λεγόµενα συστήµατα OLAP (On Line Analytical Processing) και οι αποθήκες δεδοµένων (data warehouses). 2.2) Αποθήκες εδοµένων & Συστήµατα OLAP Μια αποθήκη δεδοµένων είναι,θα µπορούσαµε να πούµε,µια τεράστια βάση δεδοµένων η οποία προµηθεύεται πληροφορίες από πολλές µικρότερες DBs ενώ τα συστήµατα ΟLAP αναλαµβάνουν τη διαχείρισή της. Αποτελείται από ένα σύνολο τεχνολογιών και εργαλείων που µας βοηθούν στον τοµέα του decision support, µέσω της αποδοτικής εκµετάλλευσης των δεδοµένων που προκύπτουν κατά τη λειτουργία των βάσεων δεδοµένων που την υποστηρίζουν. Ουσιαστικά µια αποθήκη δεδοµένων συγκεντρώνει σε τακτά χρονικά διαστήµατα όλες τις πληροφορίες από ένα δίκτυο µικρότερων βάσεων δεδοµένων και στη συνέχεια τις χρησιµοποιεί για να µπορέσει να εξάγει χρήσιµα συµπεράσµατα που αφορούν την συµπεριφορά προϊόντων (ενδεχοµένως αυξήσεις στις πωλήσεις ή το αντίθετο) ή υπηρεσιών (ποσοστά χρήσης των υπηρεσιών κτλ) στην ευρύτερη αγορά. Η καταχώριση των πληροφοριών γίνεται σε τακτά χρονικά διαστήµατα και όχι σε οποιαδήποτε στιγµή όπως στα κλασικά OLTP συστήµατα. Αυτή είναι µια ουσιώδης διαφορά µεταξύ τους. Επίσης στις αποθήκες δεδοµένων συνήθως δεν µας χρειάζονται αναλυτικές πληροφορίες για το κάθε προϊόν ή υπηρεσία παρά µόνο όσες είναι απαραίτητες για την περαιτέρω στατιστική επεξεργασία. Επιπλέον διαφέρει συνήθως και το µέγεθος. Μπορούµε να φανταστούµε µια κλασική αποθήκη δεδοµένων µιας αλυσίδας super market, η οποία στο τέλος κάθε µήνα παίρνει τα δεδοµένα από όλα τα υποκαταστήµατα της αλυσίδας. Καταλαβαίνουµε λοιπόν ότι το µέγεθος της βάσης ξεπερνά τα κλασικά δεδοµένα και σε πολλές περιπτώσεις µπορεί να υπερβαίνει τα µερικά Tbytes. Αυτό δηµιουργεί και διάφορα προβλήµατα. 13

14 Ένα από αυτά είναι ότι για την αποτελεσµατική διαχείριση των πληροφοριών κατά την εκτέλεση των queries, δεν µπορούµε να χρησιµοποιήσουµε τα κλασικά µοντέλα (σχεσιακό και οντοτήτων-συσχετίσεων). Στην πραγµατικότητα,δεν µας ενδιαφέρει τόσο η εξοικονόµηση χώρου όσο η αποτελεσµατικότητα στην εκτέλεση των ερωτήσεων στη βάση. Έτσι πολλά νέα µοντέλα έχουν προταθεί, στα οποία τα δεδοµένα κατανέµονται είτε σε πολυδιάστατα σχήµατα (υπερκύβοι), είτε σε σχεσιακά διαφορετικής σχεδίασης (αστέρας,χιονονιφάδα), στα οποία τα δεδοµένα κατανέµονται σε πίνακες µε διαστάσεις. Ένα ακόµα πολύ µεγάλο πρόβληµα που αντιµετωπίζουµε στη σχεδίαση των συστηµάτων OLAP είναι η αποτελεσµατική ανανέωση των δεδοµένων ενός data warehouse. Προφανώς,όπως είπαµε, παρόλο που οι ανανεώσεις αυτές γίνονται συστηµατικά και σε τακτά χρονικά διαστήµατα,θα πρέπει σε ένα πολύ µικρό διάστηµα να βγουν όλα τα παλιά δεδοµένα από την αποθήκη δεδοµένων και να µπουν από την αρχή τα καινούργια,πράγµα φυσικά εξαιρετικά δύσκολο αφού ο όγκος της πληροφορίας είναι πολύ µεγάλος. Εξετάζονται λοιπόν τρόποι για την επιλεκτική εισαγωγή πληροφοριών στην αποθήκη δεδοµένων (συγκεκριµένα µόνο των δεδοµένων που έχουν υποστεί αλλαγή στα συστήµατα OLTP από την προηγούµενη καταχώριση των πληροφοριών). Το πρόβληµα όµως που ανακύπτει σε αυτήν την περίπτωση είναι, το πως θα συλλέγουµε από τα OLTP συστήµατα τις πληροφορίες που έχουν αλλάξει χωρίς όµως να δηµιουργήσουµε σοβαρή επιβάρυνση στο ίδιο το σύστηµα το οποίο είναι ήδη επιφορτισµένο µε την ικανοποίηση των διαφόρων ερωτοαποκρίσεων των χρηστών. Η τεχνική αυτή ονοµάζεται επαυξητική εξαγωγή (incremental extraction) και τρόπους υλοποίησής της θα αναλύσουµε στην συνέχεια. Υπάρχουν δύο διαφορετικές φιλοσοφίες σχεδίασης και χρήσης ενός συστήµατος διαχείρισης βάσεων δεδοµένων. Τα OLTP (on line transaction processing) αντιπροσωπεύουν τα κλασικά συστήµατα που χρησιµοποιούµε στις συνηθισµένες µας δοσοληψίες, ενώ τα OLAP (on line analytical processing) χρησιµοποιούνται για την ανάλυση των δεδοµένων µε σκοπό την ανάλυση της γενικότερης συµπεριφοράς των προϊόντων ή των υπηρεσιών που τα πρώτα αντιπροσωπεύουν. Έτσι τα OLTP συστήµατα σχεδιάζονται µε γνώµονα τη βελτιστοποίηση του transaction throughput, δηλ την ικανοποίηση όσο το δυνατών περισσοτέρων δοσοληψιών µε κάθε είδους πράξεις πάνω στα δεδοµένα (insert,update,select) που επηρεάζουν µικρό αριθµό tuples κάθε φορά. Επιπλέον προσπαθούµε να µειώσουµε τον όγκο των δεδοµένων µε όσο το δυνατόν λιγότερη επαναλαµβανόµενη πληροφορία. Τα OLAP από την άλλη πλευρά σχεδιάζονται µε τρόπο που να βελτιστοποιείται το query throughput και το response time. Μας ενδιαφέρει δηλαδή να µπορούµε να εκτελούµε όσο το δυνατόν πιο αποδοτικά πολύπλοκα queries που ενδεχοµένως να διαβάζουν και όλα τα δεδοµένα της βάσης µας (που το µέγεθος τους είναι πολύ µεγαλύτερο, συνήθως, από αυτό ενός τυπικού OLTP συστήµατος) και µε τη µικρότερη δυνατή καθυστέρηση. Κάθε query (σε συντριπτικό ποσοστό select) συνήθως επηρεάζει µεγάλο αριθµό από tuples, ενώ η είσοδος µπορεί να είναι από πίνακες οργανωµένου συστήµατος βάσης δεδοµένων έως raw αρχεία που περιέχουν δεδοµένα αποθηκευµένα σε άτακτη µορφή. Επιπλέον τις περισσότερες φορές δεν χρειαζόµαστε αναλυτικές πληροφορίες, αλλά κυρίως συγκεντρωτικά αποτελέσµατα. Απόρροια των παραπάνω είναι η διαφορετική αρχιτεκτονική που ακολουθούµε κατά το σχεδιασµό ενός OLAP συστήµατος. ύο είναι οι επικρατέστερες. Είτε κωδικοποιούµε τα δεδοµένα µας µε πολυδιάστατο τρόπο (MOLAP 14

15 multidimensional OLAP) είτε µε σχεσιακό,που να µιµείται όµως τον πολυδιάστατο (ROLAP relational OLAP). Πριν προχωρήσουµε παρακάτω πρέπει να ορίσουµε τις διαστάσεις στα συστήµατα OLAP. Τα δεδοµένα µας µπορούµε να τα θεωρήσουµε µεταβλητές οι οποίες µεταβάλλονται µε βάση κάποιους παράγοντες (όπως ο χρόνος). Οι παράγοντες αυτοί αποτελούν τις διαστάσεις σε ένα OLAP σύστηµα. Μπορούµε να έχουµε ιεραρχία διαστάσεων όπως πχ στο χρόνο: έτος->µήνας->ηµέρα. Στα ROLAP στηρίζουµε τη βάση µας σε σχεσιακό σύστηµα διαχείρισής της. Για τη πρόσβαση σε αυτά χρησιµοποιούµε SQL µε κάποιες επεκτάσεις Οι βασικές αρχιτεκτονικές σχεδίασης που χρησιµοποιούνται είναι τα σχήµατα αστέρα και χιονονιφάδας. Στον αστέρα έχουµε έναν κεντρικό πίνακα (fact table) στον οποίο κρατάµε τις τιµές των δεδοµένων µας και τους πίνακες των διαστάσεων που περιέχουν τις τιµές αυτών. Μεταξύ τους συνδέονται µέσω foreign keys. Μια επέκταση του αστέρα αποτελεί η χιονονιφάδα που προκύπτει από αυτόν µετά από κανονικοποίηση των πινάκων των διαστάσεων. Το πλεονέκτηµα της είναι πως διαχειρίζεται καλύτερα την ιεραρχία των τελευταίων. Μπορούµε να δούµε καλύτερα τις δύο αρχιτεκτονικές στα σχήµατα που ακολουθούν: Αρχιτεκτονική Αστέρα. 15

16 Αρχιτεκτονική Χιονονιφάδας. Στα MOLAP χρησιµοποιούνται ευρέως οι υπερκύβοι.. Τα δεδοµένα αποθηκεύονται σε ν-διάστατους πίνακες, όπου κάθε διάσταση έχει µια ιεραρχία επιπέδων. Οι τιµές που περιέχονται στους υπερκύβους αντιστοιχούν στις στήλες των σχεσιακών πινάκων και είναι οι τιµές των δεδοµένων µας. Συνήθεις πράξεις σε υπερκύβους είναι: Rollup : Ανεβαίνουµε ένα βήµα στην ιεραρχία µιας διάστασης. Ουσιαστικά παίρνουµε συγκεντρωτικά αποτελέσµατα για τα κατώτερα επίπεδα της ιεραρχίας. Drilldown : Είναι το αντίθετο της παραπάνω διαδικασίας. Εδώ παίρνουµε αναλυτικότερα δεδοµένα. Slice & Dice : Επιλέγουµε τα δεδοµένα µέσα σε κάποια όρια τιµών µιας ή περισσοτέρων διαστάσεων. Pivoting : Αποτελεί αλλαγή της διάταξης των διαστάσεων σε ένα υπερκύβο. Μπορούµε να δούµε ένα τυπικό παράδειγµα υπερκύβου στο παρακάτω σχήµα: 16

17 Αρχιτεκτονική υπερκύβου. Στη συνέχεια ακολουθεί ένα γενικό πλάνο της λειτουργίας µιας αποθήκης δεδοµένων: Μετάδοση δεδοµένων στην αποθήκη δεδοµένων. 17

18 Παρατηρούµε πως τα δεδοµένα,µέσα από µια διαδικασία (διαδικασία ETL),µεταφέρονται στο data warehouse. Στη συνέχεια προωθούνται είτε στα data marts (κρατούν υποσύνολα των δεδοµένων της αποθήκης για πιο εξειδικευµένους σκοπούς) είτε µέσω ειδικών εργαλείων χρησιµοποιούνται από τους αναλυτές κτλ. To σηµαντικότερο στάδιο σε αυτήν τη διαδικασία είναι το ETL (extract, transform, load) όπου και πραγµατοποιούνται όλες οι απαραίτητες διαδικασίες, ώστε τα δεδοµένα να είναι έτοιµα να φορτωθούν στην αποθήκη. Χωρίζεται στα παρακάτω µέρη: Εξαγωγή δεδοµένων από τις πηγές. Συνήθως πραγµατοποιείται µέσω πυλών (gateways) όπως το ODBC, Information Builders EDA/SQL, Oracle Open Connect, Sybase Enterprise Connect, Informix Enterprise Gateway. Μετατροπή και ολοκλήρωση των δεδοµένων. Σκοπός είναι η διόρθωση τους από λάθη και η µετατροπή τους (data migration, data scrubbing, data auditing) ώστε να υπακούν σε κάποιο νοητό καθολικό σχήµα ώστε να µπορούν να φορτωθούν στην αποθήκη. Φόρτωση των δεδοµένων στο data warehouse. Τελικό στάδιο αποτελεί η φόρτωση στην αποθήκη. Συνήθως χρησιµοποιούνται batch load utilities (δηλ εργαλεία µαζικής εισαγωγής) αφού πρώτα ελεγχθούν οι απαραίτητοι περιορισµοί ακεραιότητας της αποθήκης πάνω στα δεδοµένα αυτά. Οι µέθοδοι που θα παρουσιάσουµε στη συνέχεια, ουσιαστικά αναφέρονται στο στάδιο ETL και µάλιστα κυρίως κατά το extract,transform. 2.3) Επαυξητική εξαγωγή(incremental Extraction) Ουσιαστικά αυτό που µας ενδιαφέρει να επιτύχουµε είναι να µπορέσουµε µε κάποιο τρόπο να ξεχωρίσουµε τα δεδοµένα (σε κάθε OLTP σύστηµα) που έχουν αλλάξει από τη τελευταία χρονική στιγµή που τα τοποθετήσαµε στο data warehouse. Για να είµαστε σε θέση να κάνουµε κάτι τέτοιο έχουν προταθεί οι παρακάτω τρεις τρόποι: 1. Με χρήση του log που κρατά η ίδια η βάση των δεδοµένων για σκοπούς recovery 2. Με χρήση triggers (timestamps ή χωρίς) 3. Και τέλος µε χρήση snapshots ( δηλ δυναµικών όψεων-materialized views των πινάκων της βάσης), χρησιµοποιώντας είτε CRC codes, είτε window algorithm. Για την ανάλυση και την υλοποίηση των παραπάνω µεθόδων θα χρησιµοποιήσουµε την πλατφόρµα της Qracle (που είναι και η πιο συχνά χρησιµοποιούµενη για την υλοποίηση µεγάλων συστηµάτων βάσεων δεδοµένων).οι παραπάνω µέθοδοι προσπαθούν (µε διαφορετική λογική η κάθε µία) να επιλύσουν το δύσκολο αυτό πρόβληµα. Όλες πάντως µε κάποιο τρόπο διακρίνουν τις αλλαγές στη βάση δεδοµένων σε κάθε OLTP σύστηµα και µε βάση αυτές εκτελούν στη συνέχεια τις µετατροπές στο OLAP σύστηµα. Πρέπει να τονίσουµε πως η ανάλυση µας κυρίως αφορά την πλευρά των OLTP συστηµάτων, αφού εκεί παράγονται τα δεδοµένα και κατά συνέπεια εκεί εκτελούνται οι περισσότερες διαδικασίες. Για την αποθήκη δεδοµένων και την οργάνωσή της δεν υπάρχουν ιδιαίτερες απαιτήσεις. Μόνο στις µεθόδους χρήσης των logs και των triggers, απαιτείται στο data warehouse να αποθηκεύονται και τα rowids των tuples που εισάγονται αφού χρησιµοποιούνται σαν κλειδιά από αυτές για τα δεδοµένα. Ακολουθεί η ανάλυση της µεθόδου χρήσης των logs, στη συνέχεια των triggers και τέλος των snapshots. 18

19 Kεφάλαιο 3 : ΘΕΩΡΗΤΙΚΗ ΠΕΡΙΓΡΑΦΗ ΑΛΓΟΡΙΘΜΩΝ 19

20 3.1) Εισαγωγή Στο κεφάλαιο αυτό αναλύουµε θεωρητικά τους αλγορίθµους, τους οποίους αναφέραµε. Για κάθε έναν, αναφέρουµε, αναλυτικά, τις έννοιες και τα αντικείµενα που σχετίζονται µε αυτόν και περιγράφουµε τα βήµατα (σε θεωρητικό υπόβαθρο) που ακολουθούµε για να επιτύχουµε επαυξητική εξαγωγή από ένα σχεσιακό σύστηµα βάσεων δεδοµένων. Ακολουθούν κάποια θεωρητικά πλεονεκτήµατα και µειονεκτήµατα που περιµένουµε από τη µέθοδο που τον υλοποιεί. Tο κεφάλαιο τελειώνει µε τη θεωρητική σύγκριση όλων των αλγορίθµων, όπου αναφέρονται οι τοµείς, στους οποίους περιµένουµε, ο κάθε ένας, να υπερέχει. 3.2) Θεωρητική περιγραφή της µεθόδου ανάλυσης των logs 3.2.1) Περιγραφή των αρχείων log και χρησιµότητα τους Η πρώτη µέθοδος που θα παρουσιαστεί έχει να κάνει µε την προσπέλαση πληροφοριών κατευθείαν µέσα από τα logs ενός σχεσιακού συστήµατος βάσεων δεδοµένων. Όπως είναι γνωστό, κάθε µεγάλο και πλήρως οργανωµένο σχεσιακό σύστηµα διαχείρισης βάσεων δεδοµένων,παράλληλα µε τις λοιπές λειτουργίες του, κρατά και κάποιο είδος logs δηλ αρχεία τα οποία έχουν σκοπό να βοηθήσουν στη διατήρηση της ιστορίας των δεδοµένων της βάσης και µε αυτό τον τρόπο να διευρύνουν την ασφάλεια που παρέχεται γι αυτά. Συνήθως υπάρχει κάποια ξεχωριστή διεργασία (µία ή και περισσότερες),που εκτελείται παράλληλα µε τις διεργασίες των δοσοληψιών που διαχειρίζεται το σύστηµα, και η οποία αναλαµβάνει σε κάθε αλλαγή στη βάση,να εκτελείται κάποια αντίστοιχη ενέργεια ενηµέρωσης των αντίστοιχων αρχείων logs. Τις περισσότερες φορές χρησιµοποιείται η τεχνική του write ahead log δηλ πρώτα ενηµερώνεται ο µηχανισµός καταγραφής και µετά γίνεται η αλλαγή στη βάση. Όταν λέµε αλλαγή στη βάση δεν εννοούµε µόνο τα συνήθη insert, update, delete αλλά και κάθε άλλου είδους αλλαγές όπως αλλαγές στο σχήµα της βάσης (δηµιουργία πινάκων, όψεων, αλλαγή σε κάποιο ήδη υπάρχον αντικείµενο, ενέργειες administrator πάνω στην ίδια τη βάση κτλ). Η σηµαντικότερη λειτουργία των logs έχει να κάνει µε την ασφάλεια των δεδοµένων µέσω της αναίρεσης-επανάληψης δοσοληψιών σε περίπτωση που δηµιουργηθεί κάποιο πρόβληµα κατά την διεκπεραίωση κάποιας από αυτές. Συγκεκριµένα σε κάποια τέτοια περίπτωση όλες οι αλλαγές τις οποίες έχει προκαλέσει κάποια διεργασία στα δεδοµένα της βάσης αναιρούνται µέχρι ένα προκαθορισµένο σηµείο checkpoint (το σηµείο συνέπειας της βάσης όπου όλα τα δεδοµένα έχουν αποθηκευτεί στα δευτερεύοντα αποθηκευτικά µέσα της βάσης και θεωρούνται πλέον ασφαλή) και εκτελούνται από την αρχή µέχρι το σηµείο που δηµιουργήθηκε το πρόβληµα µε βάση τις αποθηκευµένες τιµές που βρίσκονται στα logs, µε αποτέλεσµα η βάση να επανέρχεται σε κάποιο συνεπές σηµείο. Τα logs όµως δεν είναι προορισµένα µόνο για την ασφάλεια της βάσης αλλά και για τον έλεγχο των δεδοµένων που µπήκαν στη βάση µας και τη χρονική στιγµή που αυτό συνέβη, ενώ µπορούµε να αντλήσουµε επιπλέον πληροφορίες όπως ποιος χρήστης προσπέλασε τη βάση σε κάποια δεδοµένη χρονική στιγµή ή χρονική περίοδο, τι αλλαγές έχουν γίνει στο σχήµα της βάσης, να πάρουµε µια εποπτική εικόνα της βάσης και των στοιχείων µέσα στο χρόνο (πολύ χρήσιµο στο χώρο της ανάλυσης αποφάσεων και της βελτιστοποίησης της απόδοσης του συστήµατος). 20

21 Γενικότερα προµηθεύουν τον administrator µε πολύτιµα εργαλεία που βοηθούν στον έλεγχο και τη διαχείριση της βάσης. Είναι προφανές από τα παραπάνω ότι τα logs κρατούν πολλών ειδών πληροφορίες και προφανώς αυτές είναι διαφορετικές από ένα σύστηµα διαχείρισης βάσεων δεδοµένων σε κάποιο άλλο. Όµως είναι κάποιες πληροφορίες που συνήθως υπάρχουν σε κάθε σύστηµα διαχείρισης βάσεων δεδοµένων : Ο κωδικός της δοσοληψίας που εκτέλεσε την αλλαγή στη βάση Ο κωδικός του αντικειµένου στο οποίο εκτελέστηκε η αλλαγή Ο κωδικός του tuple στο οποίο εκτελέστηκε η αλλαγή (µπορούν να είναι τα primary keys του αντικειµένου στο οποίο ανήκει το tuple ή κάποιο εσωτερικός κωδικός που δίνει το ίδιο το σύστηµα για δική του διευκόλυνση) Η πράξη που επιτελέστηκε Η πράξη που την αναιρεί Η νέα τιµή του tuple Η παλιά τιµή του tuple Η χρονική στιγµή που εκτελέστηκε η αλλαγή. Μπορεί να µην αντιστοιχεί σε πραγµατικό χρόνο αλλά σε κάποια εσωτερικά αναπαράσταση του συστήµατος που οδηγεί σε κάποια χρονική διάκριση των δεδοµένων Όλος ο µηχανισµός συνήθως υλοποιείται σε δύο φάσεις. Καταρχήν όλες οι πληροφορίες που αφορούν το logging καταγράφονται στην κύρια µνήµη του συστήµατος και στη συνέχεια (σε ορισµένα χρονικά σηµεία) καταγράφονται σε ειδικά αρχεία της βάσης στον δευτερεύοντα αποθηκευτικό χώρο της βάσης ) Εκµετάλευση των logs για την απόσπαση πληροφοριών σχετικών µε τις αλλαγές που έχουν γίνει στη βάση-incremental extraction Προφανώς τα δεδοµένα που αποθηκεύονται στα logs είναι αρκετά για να αποσπάσουµε πληροφορίες για τις αλλαγές στη βάση µας. Όλες οι πληροφορίες που χρειαζόµαστε υπάρχουν στα logs δηλαδή οι τιµές των δεδοµένων, η πράξη που επιτελέστηκε καθώς και η χρονική στιγµή της. Άρα για την περίπτωση µας που θέλουµε να επιτύχουµε incremental extraction µπορούµε πολύ εύκολα (µε τη χρήση κατάλληλου εργαλείου το οποίο πρέπει να µπορεί να διαβάζει τα log files της βάσης) να εξάγουµε όλα τα insert, update, delete που έγιναν σε συγκεκριµένα αντικείµενα (συνήθως πίνακες) πέρα από κάποια χρονική στιγµή που θα αντιστοιχεί στην τελευταία χρονικά στιγµή κατά την οποία πραγµατοποιήθηκε ενηµέρωση του data warehouse από το OLTP στο οποίο αναφερόµαστε. Κατά συνέπεια αυτό που χρειαζόµαστε είναι να κρατάµε σε κάποιον πίνακα κάποιο στοιχείο το οποίο θα µας βοηθά να εντοπίζουµε τις αλλαγές χρονικά που έχουν πραγµατοποιηθεί πάνω στη βάση δηλ να κρατάµε την χρονική στιγµή (timestamp) κατά την οποία πραγµατοποιήθηκε η τελευταία ανανέωση του data warehouse. Έτσι σε κάθε incremental extraction θα διαβάζουµε από τον παραπάνω πίνακα την πληροφορία για το τελευταίο incremental extraction και µε βάση αυτή θα αρχίσουµε την επεξεργασία των logs. Για κάθε αντικείµενο που µας ενδιαφέρει (δηλ για τους πίνακες που συµµετέχουν στη διαδικασία-µην ξεχνάµε ότι στα logs περιέχονται πληροφορίες για όλα τα αντικείµενα της βάσης ακόµα και γι αυτά που διαχειρίζεται το ίδιο το σύστηµα) εξάγουµε σε βοηθητικούς πίνακες τα tuples για τα οποία έχει εκτελεστεί κάποιο insert, update ή delete. Συγκεκριµένα στους πίνακες που θα εξάγουµε θα καταγράφονται τόσο η τιµή του tuple, όσο και το timestamp και η ενέργεια που 21

22 εκτελέστηκε για να διευκολυνθεί αργότερα η διαδικασία εισαγωγής τους κατά το ETL του data warehouse. Τα δεδοµένα που θα πάρουµε µε αυτόν τον τρόπο µπορούµε πλέον (µε τη βοήθεια κατάλληλου εργαλείου) να τα εξάγουµε σε αρχεία και να τα στείλουµε στην αποθήκη δεδοµένων. Εκεί θα εκτελεστεί η αντίστροφη διαδικασία,όπου διαβάζοντας τις παραπάνω πληροφορίες θα µπορούµε να δούµε ποιες αλλαγές έχουν πραγµατοποιηθεί. Προφανώς στο τέλος της διαδικασίας θα αλλάζουµε το timestamp ώστε να αντιστοιχεί σε αυτό της καινούργιας ανανέωσης. Η διαδικασία γίνεται ελαφρώς πιο πολύπλοκη αν µέσα στα logs δεν κρατάµε τις τιµές των tuples παρά µόνο τα κλειδιά τους (ή κάποιο κωδικό τους). Σε αυτήν την περίπτωση κατά τη στιγµή που διαβάζουµε τις πληροφορίες από τα logs αντί να εξάγουµε δεδοµένα κατευθείαν στους πίνακες εξαγωγής κάνουµε πρώτα join πάνω στα κλειδιά που διαβάζουµε από τα logs και τους πίνακες της βάσης ώστε να πάρουµε τα δεδοµένα ) Log mining µέσα από την Oracle Χρησιµοποιώντας σαν αναφορά την ORACLE µπορούµε να περιγράψουµε καλύτερα τη µέθοδο. Το εργαλείο που διατίθεται µαζί της (από την έκδοση 8 και πάνω και µόνο µε την Server) είναι ο Logminer. Είναι ένα σχεσιακό εργαλείο το οποίο µπορεί να διαβάζει τα logs της ORACLE και µας επιτρέπει να κάνουµε ερωτήσεις SQL πάνω σε αυτά. Μπορεί να διαβάσει τόσο online redo logs (δηλ logs τα οποία βρίσκονται στην µνήµη του συστήµατος) όσο και archived logs (δηλ logs τα οποία έχουν αποθηκευτεί στη δευτερεύουσα µνήµη του συστήµατος -σκληρός δίσκος- σε binary µορφή). Ο Lοgminer διαβάζει τα logs και αποθηκεύει τα αποτελέσµατα σε ένα view (που έχει δηµιουργηθεί γι αυτό ακριβώς το σκοπό). Στο view αυτό µπορούµε στη συνέχεια να εκτελέσουµε select queries για να αποκτήσουµε τις πληροφορίες που θέλουµε. Άρα γενικά σε κάθε ανανέωση του data warehouse: ιαβάζουµε την παλιά τιµή του timestamp που έχουµε αποθηκεύσει σε κάποιον ειδικό γι αυτόν τον σκοπό πίνακα Εκτελούµε τον logminer στο OLTP ιαβάζουµε από το αντίστοιχο view (V$LOGMNR_CONTENTS) µόνο εκείνες τις πληροφορίες(τα κλειδιά) για τους πίνακες που έχουµε στο repository και που έχουν timestamp µεγαλύτερο από αυτό που διαβάσαµε στο πρώτο βήµα και ενέργειες insert,update ή delete. Κάνουµε join τα κλειδιά που διαβάζουµε από το view µε τους πίνακες για να πάρουµε τα δεδοµένα που µας ενδιαφέρουν. Οι διαδικασίες αυτές λαµβάνουν χώρα στο OLTP. Αποθηκεύουµε τα παραπάνω αποτελέσµατα σε πίνακες (ξεχωριστά για κάθε πίνακα τα insert,update,delete) εξαγωγής. Χρησιµοποιούµε το export utility της ORACLE για να εξάγουµε τα δεδοµένα των παραπάνω πινάκων σε αρχείο το οποίο θα µεταφερθεί στο data warehouse. Εκεί κάνουµε import τα δεδοµένα και τα αναλύουµε. Σταµατάµε τον Logminer και ανανεώνουµε την τιµή του timestamp που υποδηλώνει την τελευταία ανανέωση Σβήνουµε τα δεδοµένα από τους πίνακες εξαγωγής. Τα βήµατα αυτά περιγράφονται πιο αναλυτικά στην υλοποίηση της µεθόδου. 22

23 3.2.4) Θεωρητικά πλεονεκτήµατα της µεθόδου Η µέθοδος εκµετάλλευσης των ήδη υπαρχόντων logs εκ πρώτης όψεως φαίνεται ελκυστική. Προφανώς δεν επιβαρύνει καθόλου το σύστηµα κατά τη διάρκεια της κανονικής του λειτουργίας. Τα logs ούτως ή άλλως δηµιουργούνται. Άρα στα µεσοδιαστήµατα λειτουργίας του OLTP (δηλ µεταξύ δύο ανανεώσεων του data warehouse) έχουµε µηδενική επιβάρυνση. Όλη η επιβάρυνση σε επεξεργαστική ισχύ γίνεται µόνο κατά τη διάρκεια του incremental extraction, δηλ κατά την επεξεργασία των logs και την απόκτηση των αποτελεσµάτων στους πίνακες εξαγωγής. Μπορούµε να µειώσουµε και το κόστος αυτής της διεργασίας µεταφέροντας τα logs στο data warehouse ή κάποιον ενδιάµεσο σταθµό για την επεξεργασία τους (οπότε θα σταλούν πίσω στο OLTP µόνο τα κλειδιά για την αποστολή των δεδοµένων στο DW) αλλά θα πρέπει κατά τη διάρκεια αυτής, οι πίνακες µας στο OLTP να µην επηρεαστούν γιατί αλλιώς µπορεί να γίνει κάποια αλλαγή σε αυτούς χωρίς να την εντοπίσουµε. Επιπλέον δεν χρειαζόµαστε πολύ περισσότερο χώρο από την αρχική µας βάση παρά µόνο αυτόν που καταλαµβάνουν οι πίνακες εξαγωγής. Γενικά περιµένουµε από τη συγκεκριµένη µέθοδο πολύ καλή απόδοση τόσο στον τοµέα της κατανάλωσης επεξεργαστικής ισχύος από το OLTP (περισσότερο) όσο και στον τοµέα της κατανάλωσης επιπλέον χώρου (λιγότερο). Τέλος ο όγκος της πληροφορίας που πρόκειται να µεταφερθεί στην αποθήκη δεδοµένων είναι όσο το δυνατόν λιγότερος (τηρουµένων των αναλογιών φυσικά), αφού στέλνονται µόνο οι αλλαγές, αφού τις έχουµε πρώτα εντοπίσει ) Θεωρητικά µειονεκτήµατα της µεθόδου Ένα από τα µειονεκτήµατα της µεθόδου έγκειται ακριβώς στην χρήση του εργαλείου Logminer και στους εγγενείς περιορισµούς του. Το εργαλείο αυτό λειτουργεί µόνο για βάσεις ORACLE 8i και πάνω και πρέπει να εκτελεστεί σε βάση µε το ίδιο database character set µε αυτή στην οποία δηµιουργήθηκαν τα logs µε το ίδιο hardware. Επιπλέον δεν υποστηρίζονται δοµές όπως: index-organized tables, clustered tables/indexes, non scalar data types, chained rows. Επιπλέον µέσα από τον logminer µπορούµε να διαβάσουµε µόνο τα rowids των αλλαγµένων tuples και όχι τα κλειδιά τους και έτσι εξαρτόµαστε αποκλειστικά από αυτά. Επιπλέον µειονέκτηµα µπορεί να θεωρηθεί και η µειωµένη δυνατότητα να επέµβουµε άµεσα και να διαβάσουµε το log,παρά µόνο στηριζόµαστε σε κάποιο ήδη έτοιµο πακέτο ενώ ακόµα και για την εκτέλεση του εργαλείου απαιτείται ο χρήστης να έχει administrator privileges. 3.3) Θεωρητική προσέγγιση της µεθόδου συνεχούς παρακολούθησης της βάσης-triggers 3.3.1) Γενική περιγραφή της µεθόδου Σε αυτή τη δεύτερη µέθοδο, σκοπός µας είναι η επίβλεψη των ίδιων των λειτουργιών του συστήµατος διαχείρισης της βάσης µας µε απώτερο στόχο να κρατάµε πληροφορίες για το είδος και το χρόνο των ενεργειών που πραγµατοποιούνται κάθε στιγµή στο σύστηµα µας (τουλάχιστον για αυτές που µας ενδιαφέρουν). Έχοντας αυτή τη δυνατότητα µπορούµε να πραγµατοποιήσουµε incremental extraction στο σύστηµά µας. Είναι προφανές ότι η δυνατότητα για τέτοια εποπτεία των δεδοµένων και των ενεργειών που επιβάλλονται σε αυτά, πρέπει να παρέχεται από το ίδιο το σύστηµα διαχείρισης βάσεων δεδοµένων που χρησιµοποιούµε. Έτσι µπορούµε ανά πάσα στιγµή, παρατηρώντας κάποια αλλαγή 23

24 (insert, update, delete) πάνω στα αντικείµενα που χρησιµοποιούµε, να εκτελέσουµε τις κατάλληλες ενέργειες που θα µας βοηθήσουν αργότερα (κατά τη χρονική στιγµή της ανανέωσης του data warehouse) να αναγνωρίσουµε αυτές τις διαφοροποίησεις. Συγκεκριµένα µας ενδιαφέρει να µπορούµε να βρούµε ποια tuples έχουν αλλάξει και πότε άλλαξαν (και συγκεκριµένα αν αυτή η αλλαγή εκτελέστηκε χρονικά ανάµεσα στο προηγούµενο incremental extraction και σε αυτό που θα γίνει στη συνέχεια). Για να αναγνωρίσουµε τα tuples που έχουν αλλάξει µπορούµε είτε να τα αποθηκεύουµε ολόκληρα, είτε να αποθηκεύουµε τα κλειδιά (ή κάποιο κωδικό για αυτά), οπότε στη συνέχεια µπορούµε από αυτά να βρούµε το υπόλοιπο tuple. Σε κάθε περίπτωση χρειαζόµαστε κάποια διεργασία η οποία θα επιβλέπει τα transactions στη βάση µας και θα εκτελεί τις προαναφερθείσες ενέργειες. Υπάρχουν διάφορες στρατηγικές που µπορούµε να ακολουθήσουµε, µε βάση την παραπάνω τεχνική, για να επιτύχουµε το στόχο µας του incremental extraction. Σε κάθε περίπτωση χρησιµοποιούµε πίνακες αντίγραφα οι οποίοι κρατούν τα δεδοµένα που έχουν αλλάξει. Από αυτούς στο τέλος θα εξαχθούν τα δεδοµένα που έχουν αλλάξει. Σύµφωνα µε την πρώτη µέθοδο, σε κάθε αλλαγή των πινάκων µας, τα δεδοµένα (ολόκληρα τα tuples) µεταφέρονται στον πίνακα αντίγραφο. Έτσι τη χρονική στιγµή του incremental extraction µεταφέρουµε τις πληροφορίες των πινάκων-αντίγραφα στην αποθήκη δεδοµένων. Εδώ µπορούµε για την αναγνώριση των αλλαγµένων tuples να χρησιµοποιήσουµε οποιαδήποτε από τις προαναφερόµενες τεχνικές, δηλ είτε να αποθηκεύουµε ολόκληρα τα tuples είτε να αποθηκεύουµε µόνο τα πρωτεύοντα κλειδιά (οπότε και οι πίνακες αντίγραφα πλέον, χρειάζεται να περιέχουν πεδία µόνο για την αποθήκευση αυτών). Σε κάθε περίπτωση η λογική παραµένει η ίδια, αλλάζει µόνο ο όγκος των δεδοµένων και η πολυπλοκότητα της µεθόδου κατά το incremental extraction. Στο τέλος σβήνουµε τα δεδοµένα που έχουµε αποθηκεύσει στους πίνακες αντίγραφα. Στη δεύτερη µέθοδο χρησιµοποιούµε τα λεγόµενα timestamps. Λέγοντας timestamp εννοούµε κάποιο χαρακτηριστικό στα δεδοµένα µας, το οποίο να µας δίνει κάποια πληροφορία για τη χρονική στιγµή που πραγµατοποιήθηκε η συναλλαγή και η αλλαγή στα δεδοµένα µας. Τα timestamps µπορούν να είναι οτιδήποτε, από την ηµεροµήνια του συστήµατος έως κάποιο ενδεικτικό νούµερο που να αυξάνει µε κάθε incremental extraction. Οπότε σε κάθε αλλαγή των δεδοµένων µας, µεταφέρουµε είτε ολόκληρα τα tuples στον πίνακα αντίγραφο µαζί µε το timestamp, είτε µόνο τα πρωτέυοντα κλειδιά των tuples µαζί και πάλι µε το timestamp. Το τελευταίο φυσικά το χρειαζόµαστε για τη χρονική πληροφορία που µας παρέχει. Γενικά η λογική στις µεθόδους µε τα triggers είναι να επιβλέπουµε το σύστηµα µας και σε κάθε αλλαγή των δεδοµένων µας να καταγράφουµε τις αλλαγές σε κάποιους πίνακες αντίγραφα µε τρόπο που να µπορούµε να αναγνωρίσουµε πότε αυτές συνέβησαν. Στη συγκεκριµένη διπλωµατική έχουν υλοποιηθεί και οι δύο µέθοδοι και ακολουθούν ) TRIGGERS στην Oracle Είπαµε και προηγουµένως ότι για να µπορέσουµε να υλοποιήσουµε µεθόδους σαν τις παραπάνω σε ένα σχεσιακό σύστηµα διαχείρισης βάσεων δεδοµένων, πρέπει να έχουµε στη διάθεση µας µηχανισµούς που θα µας επιτρέπουν την εποπτεία των λειτουργιών και των δοσοληψιών που λαµβάνουν χώρα πάνω στα δεδοµένα µας. Στην ORACLE ο µηχανισµός αυτός ονοµάζεται triggers. Tα triggers είναι 24

25 ουσιαστικά stored procedures τα οποία όµως ενεργοποιούνται µε βάση κάποια αλλαγή στη βάση (δεν τα καλεί ο χρήστης). Οπότε για να υλοποιήσουµε τις παραπάνω µεθόδους θα µπορούσαµε να δηµιουργήσουµε triggers τα οποία δουλεύοντας στο παρασκήνιο θα φροντίζουν σε κάθε insert, update, delete να ενηµερώνουν τους πίνακες αντίγραφα µε τα δεδοµένα αλλαγής ή/και τα timestamps ) Θεωρητική περιγραφή πρώτης εκδοχής Χρησιµοποιώντας ορολογία της ORACLE µπορούµε πλέον να εξετάσουµε θεωρητικά την πρώτη µέθοδο. Πρέπει να επισηµάνουµε πως στη συγκεκριµένη θεώρηση θα χρησιµοποιήσουµε βοηθητικούς πίνακες ακριβή αντίγραφα των αρχικών και κατά συνέπεια θα µεταφέρουµε σε αυτούς ολόκληρα τα tuples και όχι µόνο τα κλειδιά. Τα βήµατα που ακολουθουµε για την προετοιµασία της µεθόδου είναι: ηµιουργούµε για κάθε πίνακα που θέλουµε να συµµετάσχει στο incremental extraction τρεις πίνακες. Ο πρώτος κρατά τα tuples που προέκυψαν από κάποιο insert. Ο δεύτερος κρατά αυτά από τα updates ενώ ο τρίτος των delete. Οι δύο πρώτοι ορίζονται όπως ακριβώς ο πίνακας από τον οποίο δέχονται δεδοµένα (χωρίς ίσως τους περιορισµούς ακεραιότητας διότι πχ αν κάνουµε δύο αλλαγές στην ίδιο γραµµή ενός πίνακα, τότε στον πίνακα που εισάγονται τα update θα είχαµε δύο γραµµές µε το ίδιο κλειδί-µία για κάθε update). Ο τρίτος χρειάζεται να περιέχει µόνο τα πρωτεύοντα κλειδιά του πίνακα. ηµιουργούµε τα απαραίτητα triggers. Για κάθε πίνακα χρειαζόµαστε τρία από αυτά. Το πρώτο φροντίζει να µεταφέρει τα tuples που εισάγονται στον πίνακα και στον βοηθητικό πίνακα που κρατάµε τα insert, το δεύτερο κάνει το ίδιο αλλά για τον βοηθητικό που κρατάµε τα update, ενώ το τελευταίο χρησιµοποιείται για τα rows που γίνονται delete και µεταφέρει τα κλειδιά των tuples στον βοηθητικό πίνακα για τα delete. Σε κάθε ανανέωση του data warehouse: ιαβάζουµε τις τιµές του από τους βοηθητικούς πίνακες (εκεί που κρατάµε τα insert, update, delete) και χρησιµοποιώντας το εργαλείο export της ORACLE µεταφέρουµε τα δεδοµένα αυτά σε αρχείο για τη µεταφορά στην αποθήκη δεδοµένων. Μεταφέρουµε τις πληροφορίες στο data warehouse όπου και τις επεξεργαζόµαστε. Σβήνουµε τα δεδοµένα από τους βοηθητικούς πίνακες για να προετοιµαστούµε για την επόµενη ανανέωση. Αυτό είναι απαραίτητο ώστε να µην χρειαστούµε κάποιο timestamp για την επόµενη ανανέωση του data warehouse ) Θεωρητική περιγραφή δεύτερης εκδοχής-timestamps Και η δεύτερη µέθοδος ουσιαστικά στηρίζεται στην ίδια λογική µε αυτή της πρώτη µεθόδου. Και εδώ έχουµε τρεις πίνακες για κάθε έναν της βάσης µας. Στη συγκεκριµένη περίπτωση κρατάµε (µαζί µε το timestamp) µόνο τα πρωτεύοντα κλειδιά(συγκεκριµένα τα rowids) των tuples που έχουν αλλάξει ή διαγραφεί. Οπότε στο τέλος για να πάρουµε τα rows που έχουν αλλάξει θα πρέπει να πραγµατοποιήσουµε join µεταξύ των κλειδιών που έχουµε στους βοηθητικούς πίνακες και των δεδοµένων που υπάρχουν στον κύριο πίνακα. Τα βήµατα που ακολουθούµε για την προετοιµασία της µεθόδου είναι: ηµιουργούµε για κάθε πίνακα της βάσης µας που συµµετέχει στο incremental extraction δύο πίνακες. Ο πρώτος (έστω Χ) κρατά κατά τα 25

26 µεσοδιαστήµατα µεταξύ δύο συνεχόµενων ανανεώσεων του data warehouse τα κλειδιά και τα timestamps των γραµµών του πίνακα που γίνονται insert ή update. Ο δεύτερος (πίνακες εξαγωγής) είναι αυτός από τον οποίο θα πάρουµε τα δεδοµένα προς εξαγωγή κατά την ανανέωση της αποθήκης δεδοµένων και ο οποίος ενηµερώνεται µε τα αλλαγµένα δεδοµένα λίγο πριν τα εξάγουµε. Τα δεδοµένα που δέχεται αυτός προέρχονται από το join του προηγούµενου Χ και του βασικού µας πίνακα για το τελευταίο timestamp. Επιπλέον δηµιουργούµε έναν πίνακα ο οποίος θα είναι υπεύθυνος για τα delete που γίνονται στους πίνακες που παρακολουθούµε. Είναι εννιαίος για όλα τα αντικείµενά µας ( οπότε εκτός από τα πρωτεύοντα κλειδιά και το timestamp κρατάµε και το όνοµα του αντικειµένου). Φυσικά θα µπορούσαµε να δηµιουργήσουµε έναν πίνακα που θα κρατά τα delete για κάθε πίνακα που συµµετέχει στο incremental extraction. Προφανώς τα δεδοµένα που θα εξαχθούν από αυτόν θα είναι αυτά µε το τελευταίο timestamp, όπως και προηγούµενως. Τώρα βέβαια δεν χρειαζόµαστε κάποιο join διότι ούτως ή άλλως για τα delete χρειαζόµαστε µόνο τα κλειδιά. Κατασκευάζουµε βοηθητικούς πίνακες για να κρατάµε το τελευταίο timestamp για να µπορούµε σε κάθε περίπτωση να αναγνωρίζουµε στους παραπάνω πίνακες ποιες είναι οι τελευταίες αλλαγές. Φυσικά δηµιουργούµε τα κατάλληλα triggers. ιαφέρουν από αυτά της προηγούµενης µεθόδου στο ότι εδώ δεν αποθηκεύουν ολόκληρα rows αλλά µόνο τα κλειδιά τους (µαζί µε το timestamp). Επιπλέον εδώ το trigger για το update εισάγει τιµές τόσο στον πίνακα που έχουµε για τα insert/update όσο και στον πίνακα που έχουµε για τα delete (άλλωστε ένα update είναι στην πραγµατικότητα ένα delete ακολουθούµενο από ένα insert). Στην προηγούµενη µέθοδο είχαµε ξεχωριστό πίνακα για τα update. Τα βήµατα που ακολουθούµε κατά το incremental extraction είναι: ιαβάζουµε την τελευταία τιµή του timestamp από το σχετικό πίνακα δηλ την τιµή που είχαµε από την τελευταία ανανέωση του data warehouse. H τιµή αυτή θα χρησιµοποιηθεί για να προσδιορίσουµε τις καινούργιες αλλαγές. Κρατάται σταθερή κατά το διάστηµα µεταξύ δύο συνεχόµενων ανανεώσεων της αποθήκης δεδοµένων και µεταβάλλεται µόνο κατά την ανανέωση της τελευταίας. Εκτελούµε join µεταξύ των κλειδιών που έχουµε κρατήσει στους αντίστοιχους πίνακες και των βασικών πινάκων της βάσης µας. Στη συνέχεια επιλέγουµε τα δεδοµένα εκείνα που έχουν timestamp που συµπίπτει µε αυτό που διαβάσαµε από το σχετικό πίνακα στο προηγούµενο βήµα. Οι πληροφορίες αυτές εισάγονται στη συνέχεια στους πίνακες εξαγωγής. Χρησιµοποιούµε το εργαλείο export της ORACLE για να εξάγουµε τις πληροφορίες που έχουµε στους παραπάνω πίνακες εξαγωγής και µάλιστα τα δεδοµένα µόνο µε το παραπάνω timestamp. Στο τέλος ανανεώνουµε την τιµή του timestamp µε αυτή του τελευταίου incremental extraction ώστε να είµαστε έτοιµοι για το επόµενο. Πρέπει να συµπληρώσουµε ότι σαν timestamp µπορούµε να χρησιµοποιήσουµε: 1. Την ηµεροµηνία του συστήµατος. 2. Μια <<συντµηµένη>> έκδοση της ηµεροµηνίας του συστήµατος (για παράδειγµα να µην κρατάµε τις µέρες, αλλά µόνο βδοµάδες ή µήνες. Άλλωστε η επαυξητική εξαγωγή, ακριβώς εξαιτίας του κόστους, δεν πραγµατοποιείται συχνά. Φυσικά αυτό δεν είναι πανάκεια αλλά εξαρτάται από την περίπτωση. Το κέρδος µας είναι ο λιγότερος χώρος 26

27 και η µειωµένη πολυπλοκότητα στους υπολογισµούς σε σχέση µε την προηγούµενη εκδοχή. 3. Χρησιµοποιούµε κάποιον αριθµό (ακέραιο) ο οποίος θα µας δηλώνει την χρονική διαδοχή των αλλαγών στη βάση µας. Ο αριθµός αυτός προφανώς αλλάζει σε κάθε ανανέωση της αποθήκης δεδοµένων µας. Τα δεδοµένα µεταξύ δύο διαδοχικών τέτοιων ανανεώσεων έχουν το ίδιο τέτοιο νούµερο σαν timestamp. H συγκεκριµένη εκδοχή υιοθετήθηκε στην παραπάνω µέθοδο γιατί προφανώς προσφέρει τη µέγιστη δυνατή απλότητα στις συγκρίσεις και τις πράξεις (όταν ερευνούµε για τις τελευταίες αλλαγές στα δεδοµένα µας) και επιπλέον καταλαµβάνει και το µικρότερο χώρο από τα δύο παραπάνω. Για την υλοποίηση της παραγωγής ακεραίων χρησιµοποιούµε τη δοµή sequence. 4. Και µια παραλλαγή της προηγούµενης εκδοχής είναι αυτή στην οποία αντί το νούµερο να παραµένει σταθερό στα µεσοδιαστήµατα δύο επαυξητικών εξαγωγών, αντίθετα αυξάνει. Έτσι κρατάµε τις δύο τιµές (αυτή της προηγούµενης ανανέωσης της αποθήκης δεδοµένων µας και φυσικά την τελευταία που προκύπτει από το µεγαλύτερο νούµερο που έχουµε σε timestamp στα δεδοµένα µας) και εξάγουµε τα δεδοµένα που το timestamp τους βρίσκεται ανάµεσα στις δύο αυτές τιµές. Στη δεύτερη αυτή µέθοδο αυτή προφανώς δεν σβήνουµε τα δεδοµένα από τους βοηθητικούς πίνακες γιατί µπορούµε να διαχωρίζουµε τα δεδοµένα τους. Μια άλλη παραλαγή της µεθόδου µε τα timestamps είναι να επέµβουµε στους ίδιους τους πίνακες της βάσης µας. Μπορούµε να τους τροποποιήσουµε ώστε να αποκτήσουν µια καινούργια στήλη, η οποία θα περιέχει το timestamp (δεν θα χρησιµοποιούµε ξεχωριστό πίνακα γι αυτό δηλαδή). Σε αυτήν την περίπτωση θα µπορούσαµε να διαλέξουµε κατευθείαν τα δεδοµένα από τους πίνακες προσέχοντας µόνο να έχουν timestamp ίσο µε αυτό που θα διαβάσουµε από το σχετικό πίνακα (όπως περιγράψαµε στο πρώτο βήµα). Το πρόβληµα βέβαια σε αυτή την περίπτωση είναι ότι αλλάζοντας τον ορισµό των πινάκων της βάσης, δυσχεραίνει για τους χρήστες αυτής, η χρησιµοποίησή της. Για παράδειγµα θα πρέπει να αλλάξουν τα insert ώστε να λαµβάνουν υπόψη τους το καινούργιο πεδίο. Κατά συνέπεια σαν µέθοδος προτείνεται µόνο όταν υπάρχει διαφάνεια στον τελικό χρήστη, πχ όταν υπάρχει κάποιο εξωτερικό interface για τη διαχείριση της βάσης ) Θεωρητικά πλεονεκτήµατα των µεθόδων µε τα TRIGGERS Το µεγάλο πλεονέκτηµα το οποίο µας δίνουν τα triggers είναι ο απόλυτος έλεγχος που αυτά µας προσφέρουν στην όλη διαδικασία. Επιπλέον είναι µια µέθοδος πολύ απλή στη σύλληψη και πολύ απλή στην υλοποίηση. Έχει επίσης το πλεονέκτηµα ότι σαν µέθοδος έχει χρησιµοποιηθεί από ένα µεγάλο µέρος σχεδιαστών data warehouses, κάτι που πείθει για την ευχρηστία και την αποτελεσµατικότητά της. Σε πιο τεχνικό τοµέα περιµένουµε τη µέθοδο να έχει πολύ µικρό overhead σε επεξεργαστική ισχύ κατά την περίοδο της επαυξητικής εξαγωγής. Τα δεδοµένα είναι ήδη σε εκµεταλεύσιµη µορφή εκείνη τη χρονική στιγµή. Μένουν µόνο µερικά join για να πάρουµε τις πληροφορίες που θα εξάγουµε. Επιπλέον από άποψη χώρου σαν µέθοδος/µέθοδοι δεν είναι ιδιαίτερα απαιτητική (συγκρινόµενη πάντα µε τις υπόλοιπες). Τα βασικά επιπλέον αντικείµενα που χρειάζεται να δηµιουργηθούν για την υποστήριξή της είναι σχεδόν τα ίδια µε αυτά της µεθόδου ανάλυσης των logs. 27

28 Τέλος η µεταφερόµενη,στην αποθήκη δεδοµένων, πληροφορία είναι και πάλι όσο το δυνατόν λιγότερη, αφού και εδώ στέλνονται µόνο οι αλλαγές. Γενικά σαν µέθοδος/µέθοδοι περιµένουµε να έχει <<µέτρια>> απόδοση, 3.3.6) Θεωρητικά µειονεκτήµατα των µεθόδων µε τα TRIGGERS Το βασικό µειονέκτηµα της µεθόδου έχει να κάνει µε την επιπλέον επιβάρυνση που επιβάλλουν τα triggers κατά τη κανονική λειτουργία του συστήµατος. Προφανώς τα triggers σαν διαδικασίες, όπως και να έχουν υλοποιηθεί, απαιτούν επεξεργαστική ισχύ από το σύστηµα για τη λειτουργία τους. Η επιβάρυνση αυτή µπορεί να γίνει πολύ σηµαντική όσο ο αριθµός των πινάκων που παρακολουθούµε µεγαλώνει και κατά συνέπεια αυξάνεται και ο αριθµός των triggers που χρησιµοποιούµε. Ας µην ξεχνάµε ότι µε προσθήκη ενός επιπλέον πίνακα στην λίστα αυτών που συµµετέχουν στον incremental extraction, προσθέτουµε τρία ακόµα triggers στο σύστηµα για να διαχειρίζεται. Ακόµα από άποψη χώρου, το σύστηµα προφανώς επιβαρύνεται (και στις δύο παραπάνω εκδοχές που παρουσιάσαµε) αφού για να εφαρµοστούν αυτές πρέπει να δηµιουργηθούν επιπλέον πίνακες ) Σύγκριση µεταξύ των δύο διαφορετικών εκδοχών: triggers & timestamps Όπως αναφέραµε και παραπάνω οι δύο αυτές εκδοχές-µέθοδοι δεν διαφέρουν τόσο πολύ ούτε στην φιλοσοφία λειτουργίας ούτε και στην υλοποίηση. Υπάρχουν όµως λεπτοµέρειες που δηµιουργούν διαφορές στη λειτουργία τους και στην απόδοσή τους. Στην πρώτη εκδοχή, όπως είδαµε, σε κάθε αλλαγή, µεταφέρονται ολόκληρα tuples στους βοηθητικούς πίνακες. Στη δεύτερη µεταφέρουµε εκτός από το timestamp, µόνο τα πρωτεύοντα κλειδιά. Αυτό προφανώς είναι πλεονέκτηµα για την δεύτερη εκδοχή αφού ο όγκος των µεταφερόµενων πληροφοριών κατά την φυσιολογική λειτουργία τους συστήµατος είναι σαφώς µικρότερος, κάτι που καταλήγει και σε µικρότερο overhead του συστήµατος OLTP. Φυσικά το γεγονός αυτό δηµιουργεί και τα µειονεκτήµατά του. Συγκεκριµένα επειδή στην πρώτη εκδοχή, τα δεδοµένα είναι ήδη έτοιµα (έτσι µεταφέρονται από τα triggers) στους πίνακες εξαγωγής, κατά το incremental extraction το µόνο που χρειάζεται να κάνουµε είναι να εξάγουµε τις πληροφορίες µας χωρίς καµιά περαιτέρω επεξεργασία. Από την άλλη πλευρά στη δεύτερη εκδοχή τη χρονική στιγµή που πραγµατοποιούµε την επαυξητική εξαγωγή τα µόνο δεδοµένα που έχουµε <<έτοιµα>> είναι τα πρωτεύοντα κλειδιά των tuples στα οποία έχει πραγµατοποιηθεί insert, update, delete. Έτσι αναγκαζόµαστε να εκτελέσουµε join µεταξύ των πινάκων που περιέχουν τα κλειδιά αυτά µαζί µε τα timestamps, µε τους βασικούς πίνακες της βάσης µας, τόσο πάνω στα κλειδιά αυτά, όσο και πάνω στο column που κρατά το timestamp, ώστε να επιλέξουµε, όπως είπαµε, τις τελευταίες αλλαγές για να τις εισάγουµε στους πίνακες εξαγωγής. Αυτά τα join,είναι προφανές, ότι εισάγουν overhead στο σύστηµά µας. Βέβαια στην πρώτη µέθοδο σβήνουµε τους βοηθητικούς πίνακές µας µε το τέλος της ανανέωσης του data warehouse, κάτι που πάλι µε τη σειρά του εισάγει overhead στη διαδικασία, ενώ στη δεύτερη, όπου κρατάµε και τις παλιές αλλαγές, χωρίς να σβήνουµε τίποτα, καταλήγουµε σε σπατάλη χώρου. Συνοψίζοντας θα µπορούσαµε να πούµε πως περιµένουµε από την πρώτη εκδοχή να εισάγει µεγαλύτερη επιβάρυνση στο σύστηµά µας κατά της διάρκεια της κανονικής του λειτουργίας (δηλαδή στο µεσοδιάστηµα δύο συνεχόµενων ανανεώσεων της αποθήκης δεδοµένων µας), ενώ κατά της διάρκεια του incremental extraction, η δεύτερη µέθοδος, κατά πάσα πιθανότητα, θα επιβαρύνει περισσότερο 28

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

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

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

Εισαγωγή στις Βάσεις εδοµένων και την Access

Εισαγωγή στις Βάσεις εδοµένων και την Access Μάθηµα 1 Εισαγωγή στις Βάσεις εδοµένων και την Access Τι είναι οι βάσεις δεδοµένων Μία βάση δεδοµένων (Β..) είναι µία οργανωµένη συλλογή πληροφοριών, οι οποίες είναι αποθηκευµένες σε κάποιο αποθηκευτικό

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

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

Εξαγωγή Μετασχηματισμός Εισαγωγή Δεδομένων στην Αποθήκη Πληροφοριών (ETL) ETL) Αριστομένης Μακρής Εξαγωγή Μετασχηματισμός Εισαγωγή Δεδομένων στην Αποθήκη Πληροφοριών (ETL) ETL) Τεχνολογίες Υποστήριξης Λήψης Διοικητικών Αποφάσεων OLTP (On Line Transaction Processing) Επιχειρηματικές Εφαρμογές (Σχεσιακές

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

Σύγκριση Αλγορίθµων για Λειτουργίες Επαυξητικής Εξαγωγής εδοµένων από RDBMS και Υλοποίηση Αλγορίθµων Μετασχηµατισµών εδοµένων

Σύγκριση Αλγορίθµων για Λειτουργίες Επαυξητικής Εξαγωγής εδοµένων από RDBMS και Υλοποίηση Αλγορίθµων Μετασχηµατισµών εδοµένων ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΖΩΓΡΑΦΟΥ 157 73, ΑΘΗΝΑ ΕΒΓ - ΙΠΛ-2003-1 20 Ιανουαρίου 2003 Σύγκριση Αλγορίθµων

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

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

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

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

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ Τεχνικές κατασκευής δένδρων επιθεµάτων πολύ µεγάλου µεγέθους και χρήσης

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

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

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

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

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

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

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

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

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση, ίαυλος ιαφάνεια 29-1 ιαφάνεια 29-1 Εφαρµογές Βάσεων εδοµένων ΠΜΣ 510 ευτέρα 6-9 Αίθουσα Α Ώρες Γραφείου ευτέρα 5-6 (και οποιαδήποτε άλλη ώρα είµαι στο γραφείο ικτυακός τόπος www.di.uoa.gr/~pms510 Ύλη Αποθήκες δεδοµένων Εξόρυξη

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

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

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

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

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

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

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

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

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

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

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

ΣΤΡΑΤΗΓΙΚΟ MANAGEMENT KAI EΠΙΧΕΙΡHΜΑΤΙΚΗ ΕΥΦΥΙΑ. Παρουσίαση 2 ο μέρος: ΣΤΡΑΤΗΓΙΚΟ MANAGEMENT KAI EΠΙΧΕΙΡHΜΑΤΙΚΗ ΕΥΦΥΙΑ Παρουσίαση 2 ο μέρος: Λήψη αποφάσεων Η λήψη αποφάσεων αποτελεί κεντρική δραστηριότητα σε όλα τα επίπεδα λειτουργίας μιας επιχείρησης, από τον σχεδιασμό δράσεων,

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

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

Εξόρυξη Γνώσης από εδοµένα (Data Mining) ΠΜΣ Πληροφορικής Πανεπιστηµίου Πειραιά Εξόρυξη Γνώσης από εδοµένα (Data Mining) Αποθήκες εδοµένων Γιάννης Θεοδωρίδης Τµήµα Πληροφορικής, Πανεπιστήµιο Πειραιά http://isl.cs.unipi.gr/db/courses/dm "Πυραµίδα"

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

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

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

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

Πανεπιστήµιο Πειραιώς Τµήµα Πληροφορικής Πρόγραµµα Μεταπτυχιακών Σπουδών «Πληροφορική»

Πανεπιστήµιο Πειραιώς Τµήµα Πληροφορικής Πρόγραµµα Μεταπτυχιακών Σπουδών «Πληροφορική» Πανεπιστήµιο Πειραιώς Τµήµα Πληροφορικής Πρόγραµµα Μεταπτυχιακών Σπουδών «Πληροφορική» Μεταπτυχιακή ιατριβή Τίτλος ιατριβής Ονοµατεπώνυµο Φοιτητή Πατρώνυµο Συλλογή, ιασταύρωση, ιαχείριση και Επιχειρησιακή

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

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

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

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

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

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

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

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

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

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

Ο έλεγχος στο επίπεδο συστήµατος επικοινωνιών εξασφαλίζει ότι έχουµε µεταφορά στο δίκτυο χωρίς λάθη.

Ο έλεγχος στο επίπεδο συστήµατος επικοινωνιών εξασφαλίζει ότι έχουµε µεταφορά στο δίκτυο χωρίς λάθη. Overview Το end-to-end argument υποστηρίζει ότι κάποιες από τις λειτουργίες που επιτελούνται κατά την διάρκεια µιας επικοινωνίας µεταξύ συστηµάτων θα πρέπει να µην υλοποιούνται σε χαµηλό επίπεδο (επίπεδο

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

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

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

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

Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας. 2 ο Μάθημα: Βασικά Θέματα Βάσεων Δεδομένων. Δρ. Κωνσταντίνος Χ.

Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας. 2 ο Μάθημα: Βασικά Θέματα Βάσεων Δεδομένων. Δρ. Κωνσταντίνος Χ. Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας 2 ο Μάθημα: Βασικά Θέματα Βάσεων Δεδομένων Δρ. Κωνσταντίνος Χ. Γιωτόπουλος Βασικά θέματα Βάσεων Δεδομένων Ένα Σύστημα Βάσης Δεδομένων

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

Αλγόριθµοι δροµολόγησης µε µέσα µαζικής µεταφοράς στο µεταφορικό δίκτυο των Αθηνών

Αλγόριθµοι δροµολόγησης µε µέσα µαζικής µεταφοράς στο µεταφορικό δίκτυο των Αθηνών 1 Αλγόριθµοι δροµολόγησης µε µέσα µαζικής µεταφοράς στο µεταφορικό δίκτυο των Αθηνών ΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ της Κωτσογιάννη Μαριάννας Περίληψη 1. Αντικείµενο- Σκοπός Αντικείµενο της διπλωµατικής αυτής εργασίας

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

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

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

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

ΟΜΗ ΤΗΣ ΕΦΑΡΜΟΓΗΣ... 3 ΕΡΩΤΗΣΕΙΣ... 5 ΕΡΕΥΝΕΣ... 8

ΟΜΗ ΤΗΣ ΕΦΑΡΜΟΓΗΣ... 3 ΕΡΩΤΗΣΕΙΣ... 5 ΕΡΕΥΝΕΣ... 8 Εγχειρίδιο Χρήσης Συστήµατος Έρευνες Στατιστικών Στοιχείων ΠΕΡΙΕΧΟΜΕΝΑ ΟΜΗ ΤΗΣ ΕΦΑΡΜΟΓΗΣ... 3 Λογική Ανάλυση Χρήσης Εφαρµογής... 3 ΕΡΩΤΗΣΕΙΣ... 5 ΠΡΟΣΘΗΚΗ ΕΡΩΤΗΣΗΣ... 6 Επεξεργασία Ερώτησης... 7 ιαγραφή

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

Ο ΗΓΙΕΣ ΓΙΑ ΤΟ ΚΛΕΙΣΙΜΟ ΧΡΗΣΗΣ ΣΤΟ DYNAMICS NAV INNOVERA ERP

Ο ΗΓΙΕΣ ΓΙΑ ΤΟ ΚΛΕΙΣΙΜΟ ΧΡΗΣΗΣ ΣΤΟ DYNAMICS NAV INNOVERA ERP Ο ΗΓΙΕΣ ΓΙΑ ΤΟ ΚΛΕΙΣΙΜΟ ΧΡΗΣΗΣ ΣΤΟ DYNAMICS NAV INNOVERA ERP Για να κλείσουµε µία χρήση στο InnovEra ακολουθούµε τα παρακάτω βήµατα: Από το κεντρικό µενού επιλέγουµε διαδοχικά «Οικονοµική ιαχείριση», «Γενική

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

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

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

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

µπιτ Λύση: Κάθε οµάδα των τεσσάρων µπιτ µεταφράζεται σε ένα δεκαεξαδικό ψηφίο 1100 C 1110 E Άρα το δεκαεξαδικό ισοδύναµο είναι CE2

µπιτ Λύση: Κάθε οµάδα των τεσσάρων µπιτ µεταφράζεται σε ένα δεκαεξαδικό ψηφίο 1100 C 1110 E Άρα το δεκαεξαδικό ισοδύναµο είναι CE2 ! Βρείτε το δεκαεξαδικό ισοδύναµο του σχήµατος µπιτ 110011100010 Λύση: Κάθε οµάδα των τεσσάρων µπιτ µεταφράζεται σε ένα δεκαεξαδικό ψηφίο 1100 C 1110 E 0010 2 Άρα το δεκαεξαδικό ισοδύναµο είναι CE2 2 !

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

Εισαγωγή στην επιστήµη των υπολογιστών ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ

Εισαγωγή στην επιστήµη των υπολογιστών ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ Εισαγωγή στην επιστήµη των υπολογιστών ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ 1 Αριθµητικό Σύστηµα! Ορίζει τον τρόπο αναπαράστασης ενός αριθµού µε διακεκριµένα σύµβολα! Ένας αριθµός αναπαρίσταται διαφορετικά σε κάθε σύστηµα,

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

Εισαγωγή στην επιστήµη των υπολογιστών. Υπολογιστές και Δεδοµένα Κεφάλαιο 3ο Αναπαράσταση Αριθµών

Εισαγωγή στην επιστήµη των υπολογιστών. Υπολογιστές και Δεδοµένα Κεφάλαιο 3ο Αναπαράσταση Αριθµών Εισαγωγή στην επιστήµη των υπολογιστών Υπολογιστές και Δεδοµένα Κεφάλαιο 3ο Αναπαράσταση Αριθµών 1 Δεκαδικό και Δυαδικό Σύστηµα Δύο κυρίαρχα συστήµατα στο χώρο των υπολογιστών Δεκαδικό: Η βάση του συστήµατος

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

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

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

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

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

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

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

* τη µήτρα. Κεφάλαιο 1o

* τη µήτρα. Κεφάλαιο 1o Κεφάλαιο 1o Θεωρία Παιγνίων Η θεωρία παιγνίων εξετάζει καταστάσεις στις οποίες υπάρχει αλληλεπίδραση µεταξύ ενός µικρού αριθµού ατόµων. Άρα σε οποιαδήποτε περίπτωση, αν ο αριθµός των ατόµων που συµµετέχουν

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

3.1 εκαδικό και υαδικό

3.1 εκαδικό και υαδικό Εισαγωγή στην επιστήµη των υπολογιστών Υπολογιστές και εδοµένα Κεφάλαιο 3ο Αναπαράσταση Αριθµών 1 3.1 εκαδικό και υαδικό εκαδικό σύστηµα 2 1 εκαδικό και υαδικό υαδικό Σύστηµα 3 3.2 Μετατροπή Για τη µετατροπή

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

Εισαγωγή στην επιστήµη των υπολογιστών. Αναπαράσταση Αριθµών

Εισαγωγή στην επιστήµη των υπολογιστών. Αναπαράσταση Αριθµών Εισαγωγή στην επιστήµη των υπολογιστών Αναπαράσταση Αριθµών 1 Δεκαδικό και Δυαδικό Σύστηµα Δύο κυρίαρχα συστήµατα στο χώρο των υπολογιστών Δεκαδικό: Η βάση του συστήµατος είναι το 10 αναπτύχθηκε τον 8

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

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

Νέες τεχνολογίες εισάγονται ή χρησιµοποιούνται special report τoυ Γιώργου Φετοκάκη / gfetokakis@boussias.com Jobs scheduling Η χρυσή τοµή της αυτοµατοποίησης Μια λύση job scheduling πρέπει να είναι αρκετά περιεκτική. Πρέπει να υποστηρίζει την ενσωµάτωση

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

ΕΙΣΑΓΩΓΗ ΣΤΙΣ Β ΣΕ Ε Σ Ι ΟΜΕΝ

ΕΙΣΑΓΩΓΗ ΣΤΙΣ Β ΣΕ Ε Σ Ι ΟΜΕΝ ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ Βασικές Έννοιες - εδοµένα { Νίκος, Μιχάλης, Μαρία, Θάλασσα, Αυτοκίνητο }, αριθµοί, π.χ. {1, 2, 3, 5, 78}, συµβολοσειρές (strings) π.χ. { Κώστας, 5621, ΤΡ 882, 6&5 #1, +

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

Επαναληπτικές δοµές. µτ α.τ. Όχι. ! απαγορεύεται µέσα σε µία ΓΙΑ να µεταβάλλουµε τον µετρητή! διότι δεν θα ξέρουµε µετά πόσες επαναλήψεις θα γίνουν

Επαναληπτικές δοµές. µτ α.τ. Όχι. ! απαγορεύεται µέσα σε µία ΓΙΑ να µεταβάλλουµε τον µετρητή! διότι δεν θα ξέρουµε µετά πόσες επαναλήψεις θα γίνουν Επαναληπτικές δοµές Η λογική των επαναληπτικών διαδικασιών εφαρµόζεται όπου µία ακολουθία εντολών εφαρµόζεται σε ένα σύνολο περιπτώσεων που έχουν κάτι κοινό. Όταν ψάχνουµε θέση για να παρκάρουµε κοντά

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

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

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

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

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

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

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

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

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

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

Πληροφοριακά Συστήµατα ιοίκησης Τµήµα Χρηµατοοικονοµικής και Ελεγκτικής Management Information Systems Εργαστήριο 5 ΤΕΙ Ηπείρου (Παράρτηµα Πρέβεζας)

Πληροφοριακά Συστήµατα ιοίκησης Τµήµα Χρηµατοοικονοµικής και Ελεγκτικής Management Information Systems Εργαστήριο 5 ΤΕΙ Ηπείρου (Παράρτηµα Πρέβεζας) Πληροφοριακά Συστήµατα ιοίκησης Τµήµα Χρηµατοοικονοµικής και Ελεγκτικής Management Information Systems Εργαστήριο 5 ΤΕΙ Ηπείρου (Παράρτηµα Πρέβεζας) ΑΝΤΙΚΕΙΜΕΝΟ: Βελτιστοποίηση ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ σε διάφορα

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

Οργάνωση αρχείων: πως είναι τοποθετηµένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο

Οργάνωση αρχείων: πως είναι τοποθετηµένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο Κατακερµατισµός 1 Οργάνωση Αρχείων (σύνοψη) Οργάνωση αρχείων: πως είναι τοποθετηµένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο 1. Αρχεία Σωρού 2. Ταξινοµηµένα Αρχεία Φυσική διάταξη των εγγραφών

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

Δημιουργώντας τον πίνακα διάστασης

Δημιουργώντας τον πίνακα διάστασης KETTLE KETTLE διάστασης Με το χειριστήριο αυτό μπορούμε να διαβάσουμε ένα csv αρχείο που είναι αποθηκευμένο στον υπολογιστή μας. Ας το ονομάσουμε αρχείο εισόδου. Αφού βρούμε και κλικάρουμε το αρχείο (Filename),

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

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

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

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

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

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

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

Μια ολοκληρωμένη, διαχρονική και μόνιμη συλλογή δεδομένων οργανωμένη κατά αντικείμενο ανάλυσης με στόχο τη διαδικασία υποστήριξης λήψης αποφάσεων -

Μια ολοκληρωμένη, διαχρονική και μόνιμη συλλογή δεδομένων οργανωμένη κατά αντικείμενο ανάλυσης με στόχο τη διαδικασία υποστήριξης λήψης αποφάσεων - Εξαγωγή Μετασχηματισμός Εισαγωγή Δεδομένων στην Αποθήκη Πληροφοριών (ETL) Ορισμοί Data Warehouse 1. 2. Μια ολοκληρωμένη, διαχρονική και μόνιμη συλλογή δεδομένων οργανωμένη κατά αντικείμενο ανάλυσης με

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

Σχήµα 6.1: Εισαγωγή της εντολής Read From Spreadsheet File στο Block Diagram.

Σχήµα 6.1: Εισαγωγή της εντολής Read From Spreadsheet File στο Block Diagram. Εισαγωγή αρχείων δεδοµένων 1. Η εισαγωγή αρχείων δεδοµένων στο LaVIEW γίνεται στο Block Diagram µε την εντολή Read From Spreadsheet File. 2. Εισάγουµε την εντολή Read From Spreadsheet File στο Block Diagram

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

Λογικός Σχεδιασµός Σχεσιακών Σχηµάτων: Αποσύνθεση. Βάσεις εδοµένων Ευαγγελία Πιτουρά 1

Λογικός Σχεδιασµός Σχεσιακών Σχηµάτων: Αποσύνθεση. Βάσεις εδοµένων Ευαγγελία Πιτουρά 1 Λογικός Σχεδιασµός Σχεσιακών Σχηµάτων: Αποσύνθεση Βάσεις εδοµένων 2011-2012 Ευαγγελία Πιτουρά 1 Εισαγωγή Θα εξετάσουµε πότε ένα σχεσιακό σχήµα για µια βάση δεδοµένων είναι «καλό» Γενικές Οδηγίες Η Μέθοδος

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

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

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

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

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

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

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

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

Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον Λύσεις µε κατάλληλο σχολιασµό και παρατηρήσεις σε θέµατα από παλαιότερες πανελλαδικές εξετάσεις. Γενικές οδηγίες και παρατηρήσεις κατά την αντιµετώπιση

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

Πληροφορική 2. Βάσεις Δεδομένων (Databases)

Πληροφορική 2. Βάσεις Δεδομένων (Databases) Πληροφορική 2 Βάσεις Δεδομένων (Databases) 1 2 Επίπεδα αρχεία (flat files) Επίπεδο αρχείο είναι ένα αρχείο που αποτελείται από ένα σταθερό, μικρό αριθμό πεδίων. Οι εγγραφές του αρχείου μπορεί να μην ακολουθούν

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

Η Βίβλος σχετικά με το JDBC. Περιέχει τρία βασικά tutorials στα οποία θα βασιστεί το μάθημα και περιγράφει όλες τις τάξεις και τις μεθόδους που

Η Βίβλος σχετικά με το JDBC. Περιέχει τρία βασικά tutorials στα οποία θα βασιστεί το μάθημα και περιγράφει όλες τις τάξεις και τις μεθόδους που 1 Η Βίβλος σχετικά με το JDBC. Περιέχει τρία βασικά tutorials στα οποία θα βασιστεί το μάθημα και περιγράφει όλες τις τάξεις και τις μεθόδους που μπορούμε να χρησιμοποιήσουμε σε μία JDBC εφαρμογή. Υπάρχει

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τ Μ Η Μ Α Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τ Μ Η Μ Α Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ ΕΠΛ 035 - ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΓΙΑ ΗΛΕΚΤΡΟΛΟΓΟΥΣ ΜΗΧΑΝΙΚΟΥΣ ΚΑΙ ΜΗΧΑΝΙΚΟΥΣ ΥΠΟΛΟΓΙΣΤΩΝ Ακαδηµαϊκό έτος 2017-2018 Υπεύθυνος εργαστηρίου: Γεώργιος

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

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

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

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

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

Η ΕΝΝΟΙΑ ΤΟΥ Ε ΟΜΕΝΟΥ ΚΑΙ ΤΟΥ ΤΥΠΟΥ Ε ΟΜΕΝΩΝ Κεφάλαιο 1 Εισαγωγή Στο κεφάλαιο αυτό παρουσιάζεται µια συνοπτική εισαγωγή στη θεωρία των βάσεων δεδοµένων και των συστηµάτων διαχείρισης βάσεων δεδοµένων, προκειµένου ο αναγνώστης να κατανοήσει τις βασικές

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

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

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

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ. ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ, 5 ο εξάµηνο

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ. ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ, 5 ο εξάµηνο ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ και ΥΠΟΛΟΓΙΣΤΩΝ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ, 5 ο εξάµηνο ΦΕΒΡΟΥΑΡΙΟΣ 2006 ΘΕΜΑΤΑ ΚΑΙ ΛΥΣΕΙΣ

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

Linear Hashing. Linear vs other Hashing

Linear Hashing. Linear vs other Hashing Linear Hashing Τµήµα Πληροφορικής & Τηλ/νών, ΕΚΠΑ Υλοποίηση Συστηµάτων Βάσεων εδοµένων http://www.di.uoa.gr/~k18 Linear vs other Hashing Σεαντίθεσηµετοστατικόκατακερµατισµό, τα buckets αυξάνονται καθώς

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

Αυτοματισμοί και Συστήματα Αυτομάτου Ελέγχου. Ενότητα 5 Ανάπτυξη Προγράμματος σε Γλώσσα Λίστας Εντολών

Αυτοματισμοί και Συστήματα Αυτομάτου Ελέγχου. Ενότητα 5 Ανάπτυξη Προγράμματος σε Γλώσσα Λίστας Εντολών Αυτοματισμοί και Συστήματα Αυτομάτου Ελέγχου Ενότητα 5 Ανάπτυξη Προγράμματος σε Γλώσσα Λίστας Εντολών ΠΕΡΙΕΧΟΜΕΝΑ 5.1 Βασικές εντολές προγραμματισμού στη γλώσσα λίστας εντολών. 5.2 Αναπτύσσοντας τα πρώτα

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

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

Επιλογή και επανάληψη. Λογική έκφραση ή συνθήκη Επιλογή και επανάληψη Η ύλη που αναπτύσσεται σε αυτό το κεφάλαιο είναι συναφής µε την ύλη που αναπτύσσεται στο 2 ο κεφάλαιο. Όπου υπάρχουν διαφορές αναφέρονται ρητά. Προσέξτε ιδιαίτερα, πάντως, ότι στο

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

Τη φυσική (MAC) διεύθυνση που δίνει ο κατασκευαστής του δικτυακού υλικού στις συσκευές του (π.χ. στις κάρτες δικτύου). Η περιοχή διευθύνσεων που

Τη φυσική (MAC) διεύθυνση που δίνει ο κατασκευαστής του δικτυακού υλικού στις συσκευές του (π.χ. στις κάρτες δικτύου). Η περιοχή διευθύνσεων που 7.7 Πρωτόκολλο ARP 1 ύο είδη διευθύνσεων: MAC - IP Τη φυσική (MAC) διεύθυνση που δίνει ο κατασκευαστής του δικτυακού υλικού στις συσκευές του (π.χ. στις κάρτες δικτύου). Η περιοχή διευθύνσεων που µπορεί

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

Επιµέλεια Θοδωρής Πιερράτος

Επιµέλεια Θοδωρής Πιερράτος εδοµένα οµές δεδοµένων και αλγόριθµοι Τα δεδοµένα είναι ακατέργαστα γεγονότα. Η συλλογή των ακατέργαστων δεδοµένων και ο συσχετισµός τους δίνει ως αποτέλεσµα την πληροφορία. Η µέτρηση, η κωδικοποίηση,

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

ζωγραφίζοντας µε τον υπολογιστή

ζωγραφίζοντας µε τον υπολογιστή ζωγραφίζοντας µε τον υπολογιστή Μια από τις εργασίες που µπορούµε να κάνουµε µε τον υπολογιστή είναι και η ζωγραφική. Για να γίνει όµως αυτό πρέπει ο υπολογιστής να είναι εφοδιασµένος µε το κατάλληλο πρόγραµµα.

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

Κεφάλαιο 7 Εισαγωγή στη Microsoft Access

Κεφάλαιο 7 Εισαγωγή στη Microsoft Access Κεφάλαιο 7 Εισαγωγή στη Microsoft Access Το κεφάλαιο αυτό περιλαµβάνει µια συνοπτική εισαγωγή στην Microsoft Access 2000, που είναι και το σχεσιακό σύστηµα διαχείρισης βάσεων δεδοµένων µε το οποίο θα ασχοληθούµε.

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

o AND o IF o SUMPRODUCT

o AND o IF o SUMPRODUCT Πληροφοριακά Εργαστήριο Management 1 Information Συστήματα Systems Διοίκησης ΤΕΙ Τμήμα Ελεγκτικής Ηπείρου Χρηματοοικονομικής (Παράρτημα Πρέβεζας) και Αντικείµενο: Μοντελοποίηση προβλήµατος Θέµατα που καλύπτονται:

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

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

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

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

1. ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΣ ΔΕΔΟΜΕΝΩΝ

1. ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΣ ΔΕΔΟΜΕΝΩΝ 1. ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΣ ΔΕΔΟΜΕΝΩΝ Τα δεδομένα που θα επεξεργασθούμε στη διάρκεια του εργαστηρίου παραχωρήθηκαν από την εταιρεία ICAP ειδικά για τις ανάγκες του μαθήματος. Τα δεδομένα αυτά αντλήθηκαν από την

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 121 ΕΡΓΑΣΤΗΡΙΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΜΝΗΜΗ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΖΟΜΕΝΗ ΛΟΓΙΚΗ ΥΠΕΥΘΥΝΟΣ ΕΡΓΑΣΤΗΡΙΩΝ: ΧΡΥΣΟΣΤΟΜΟΣ ΧΡΥΣΟΣΤΟΜΟΥ ΕΑΡΙΝΟ ΕΞΑΜΗΝΟ 2001 ΕΠΛ 121 ΕΡΓΑΣΤΗΡΙΑ ΨΗΦΙΑΚΩΝ

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

2. Missing Data mechanisms

2. Missing Data mechanisms Κεφάλαιο 2 ο 2. Missing Data mechanisms 2.1 Εισαγωγή Στην προηγούµενη ενότητα περιγράψαµε κάποια από τα βασικά µοτίβα εµφάνισης των χαµένων τιµών σε σύνολα δεδοµένων. Ένα άλλο ζήτηµα που µας απασχολεί

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

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

Πανεπιστήµιο Θεσσαλίας Πανεπιστήµιο Θεσσαλίας Τµήµα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Αρχιτεκτονική Υπολογιστών Άσκηση 1: Λυµένες Ασκήσεις Έστω ένας επεξεργαστής, στον οποίο ένα πρόγραµµα ολοκληρώνει την εκτέλεσή

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

Απαντήσεις. Απάντηση. Απάντηση

Απαντήσεις. Απάντηση. Απάντηση 6 η σειρά ασκήσεων Άλκης Γεωργόπουλος Α.Μ. 39 Αναστάσιος Κοντογιώργης Α.Μ. 43 Άσκηση 1. Απαντήσεις Η αλλαγή ενός ρολογιού προς τα πίσω µπορεί να προκαλέσει ανεπιθύµητη συµπεριφορά σε κάποια προγράµµατα.

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

Certified Data Base Designer (CDBD)

Certified Data Base Designer (CDBD) Certified Data Base Designer (CDBD) Εξεταστέα Ύλη (Syllabus) Πνευµατικά ικαιώµατα Το παρόν είναι πνευµατική ιδιοκτησία της ACTA Α.Ε. και προστατεύεται από την Ελληνική και Ευρωπαϊκή νοµοθεσία που αφορά

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

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων ΟΝΟΜΑΤΕΠΩΝΥΜΟ: ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ AM: Δοµές Δεδοµένων Πτυχιακή Εξεταστική Ιούλιος 2014 Διδάσκων : Ευάγγελος Μαρκάκης 09.07.2014 ΥΠΟΓΡΑΦΗ ΕΠΟΠΤΗ: Διάρκεια εξέτασης : 2 ώρες

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

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

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

ιεργασίες και Επεξεργαστές στα Κατανεµηµένων Συστηµάτων

ιεργασίες και Επεξεργαστές στα Κατανεµηµένων Συστηµάτων ιεργασίες και Επεξεργαστές στα Κατανεµηµένων Συστηµάτων Μαρία Ι. Ανδρέου ΗΜΥ417, ΗΜΥ 663 Κατανεµηµένα Συστήµατα Χειµερινό Εξάµηνο 2006-2007 Τµήµα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Πανεπιστήµιο

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

ΑΣΚΗΣΗ 5 η Η σειριακή επικοινωνία ΙΙ 1.1 ΣΚΟΠΟΣ Σκοπός της άσκησης αυτής είναι η κατανόηση σε βάθος των λειτουργιών που παρέχονται από το περιβάλλον LabView για τον χειρισµό της σειριακής επικοινωνίας

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

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

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

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

Σελίδα 1 από 11. Απαντήσεις στο φυλλάδιο 57 Ερώτηση: 1 η : Οι ακροδέκτες αυτοί χρησιµοποιούνται για:

Σελίδα 1 από 11. Απαντήσεις στο φυλλάδιο 57 Ερώτηση: 1 η : Οι ακροδέκτες αυτοί χρησιµοποιούνται για: Σελίδα 1 από 11 Απαντήσεις στο φυλλάδιο 57 Ερώτηση: 1 η : Οι ακροδέκτες αυτοί χρησιµοποιούνται για: την επικοινωνία, µε τα υπόλοιπα ολοκληρωµένα κυκλώµατα του υπολογιστικού συστήµατος. την παροχή τροφοδοσίας

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

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

ΑΠΟΘΗΚΕΣ Ε ΟΜΕΝΩΝ Σ. ΛΙΓΟΥ ΙΣΤΙΑΝΟΣ ΑΠΟΘΗΚΕΣ Ε ΟΜΕΝΩΝ 195 ΑΠΟΘΗΚΕΣ Ε ΟΜΕΝΩΝ Σ. ΛΙΓΟΥ ΙΣΤΙΑΝΟΣ 8.1 ΓΕΝΙΚΑ Από τα µέσα της δεκαετίας του '70, η αλµατώδης παραγωγή πολύ ισχυρών συστηµάτων διαχείρισης βάσεων δεδοµένων βοήθησε στην ανάπτυξη πληροφοριακών

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

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

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

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

ΤΜΗΜΑ ΕΠΙΧΕΙΡΗΜΑΤΙΚΟΥ ΣΧΕΔΙΑΣΜΟΥ & ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΤΕΙ ΠΑΤΡΑΣ ΤΕΙ ΠΑΤΡΑΣ ΣΗΜΕΙΩΣΕΙΣ ΜΑΘΗΜΑΤΟΣ ΕΠΙΧΕΙΡΗΣΙΑΚΏΝ ΠΑΙΓΝΙΩΝ- ΠΡΟΓΡΑΜΜΑ GAMBIT

ΤΜΗΜΑ ΕΠΙΧΕΙΡΗΜΑΤΙΚΟΥ ΣΧΕΔΙΑΣΜΟΥ & ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΤΕΙ ΠΑΤΡΑΣ ΤΕΙ ΠΑΤΡΑΣ ΣΗΜΕΙΩΣΕΙΣ ΜΑΘΗΜΑΤΟΣ ΕΠΙΧΕΙΡΗΣΙΑΚΏΝ ΠΑΙΓΝΙΩΝ- ΠΡΟΓΡΑΜΜΑ GAMBIT ΤΜΗΜΑ ΕΠΙΧΕΙΡΗΜΑΤΙΚΟΥ ΣΧΕΔΙΑΣΜΟΥ & ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Α Κ Α Η Μ Α Ι Κ Ο Ε Τ Ο Σ 2 0 1 1-2 0 1 2 ΣΗΜΕΙΩΣΕΙΣ ΜΑΘΗΜΑΤΟΣ ΕΠΙΧΕΙΡΗΣΙΑΚΏΝ ΠΑΙΓΝΙΩΝ- ΠΡΟΓΡΑΜΜΑ GAMBIT Ο συγκεκριµένος οδηγός για το πρόγραµµα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΙΑΤΜΗΜΑΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥ ΩΝ ΣΤΑ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ. έσποινα Τσοµπανούδη, Α.Μ.

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΙΑΤΜΗΜΑΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥ ΩΝ ΣΤΑ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ. έσποινα Τσοµπανούδη, Α.Μ. ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΙΑΤΜΗΜΑΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥ ΩΝ ΣΤΑ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Ανάπτυξη web-based εφαρµογής για διαχείριση ερωτηµατολογίων αξιολόγησης καθηγητών ΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ έσποινα

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

Επισκόπηση Μαθήµατος

Επισκόπηση Μαθήµατος Βάσεις εδοµένων 5 ο Εξάµηνο ηµήτρης Λέκκας Επίκουρος Καθηγητής dlekkas@env.aegean.gr Τµήµα Στατιστικής & Αναλογιστικών-Χρηµατοοικονοµικών Μαθηµατικών Επισκόπηση Μαθήµατος Εισαγωγή (Σ Β ) Το µοντέλο σχέσεων

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

2. Δυναμικό και χωρητικότητα αγωγού.

2. Δυναμικό και χωρητικότητα αγωγού. . Δυναμικό και χωρητικότητα αγωγού. Σε όλα τα σηµεία ενός αγωγού, σε ηλεκτροστατική ισορροπία, το δυναµικό είναι σταθερό. Για παράδειγµα, στην φορτισµένη σφαίρα του διπλανού σχήµατος τα σηµεία Α και Β

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

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

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

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

ηµιουργία Β.. ανειστική Βιβλιοθήκη Μάθηµα 5 Ορισµός σχέσεων - Σύνδεση πινάκων

ηµιουργία Β.. ανειστική Βιβλιοθήκη Μάθηµα 5 Ορισµός σχέσεων - Σύνδεση πινάκων Μάθηµα 5 ηµιουργία Β.. ανειστική Βιβλιοθήκη - Ορισµός σχέσεων - Σύνδεση πινάκων ηµιουργία Β.. ανειστική Βιβλιοθήκη Η ανειστική Βιβλιοθήκη θα αποτελέσει ένα απλό, αλλά ολοκληρωµένο παράδειγµα δηµιουργίας

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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΕΡΓΑΣΤΗΡΙΟ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ ΜΕΡΟΣ ΠΕΜΠΤΟ Views, Triggers Γιώργος Μαρκοµανώλης Περιεχόµενα Όψη... 1 ηµιουργία όψης... 2 Επιλογή CHECK... 3 Όψεις µόνο για εµφάνιση

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

ΗΥ240: οµές εδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος Παναγιώτα Φατούρου. Προγραµµατιστική Εργασία 3 ο Μέρος

ΗΥ240: οµές εδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος Παναγιώτα Φατούρου. Προγραµµατιστική Εργασία 3 ο Μέρος Πανεπιστήµιο Κρήτης, Τµήµα Επιστήµης Υπολογιστών 6 εκεµβρίου 2008 ΗΥ240: οµές εδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος 2008-09 Παναγιώτα Φατούρου Προγραµµατιστική Εργασία 3 ο Μέρος Ηµεροµηνία Παράδοσης:

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

Ανάλυση Απαιτήσεων Απαιτήσεις Λογισµικού

Ανάλυση Απαιτήσεων Απαιτήσεις Λογισµικού ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΜΑΤΙΚΗΣ Ανάλυση Απαιτήσεων Απαιτήσεις Λογισµικού Μάρα Νικολαϊδου Δραστηριότητες Διαδικασιών Παραγωγής Λογισµικού Καθορισµός απαιτήσεων και εξαγωγή προδιαγραφών

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

Στην συνέχεια και στο επόµενο παράθυρο η εφαρµογή µας ζητάει να εισάγουµε το Username και το Password το οποίο σας έχει δοθεί από τον ΕΛΚΕ.

Στην συνέχεια και στο επόµενο παράθυρο η εφαρµογή µας ζητάει να εισάγουµε το Username και το Password το οποίο σας έχει δοθεί από τον ΕΛΚΕ. 1. Πρόσβαση Οδηγίες προγράµµατος διαχείρισης ανάλυσης χρόνου εργασίας (Time Sheet) Για να ξεκινήσετε την εφαρµογή, από την κεντρική σελίδα του ΕΛΚΕ (www.elke.aua.gr) και το µενού «ιαχείριση», Time Sheet

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

Α. Ερωτήσεις Ανάπτυξης

Α. Ερωτήσεις Ανάπτυξης οµηµένος Προγραµµατισµός-Κεφάλαιο 7 Σελίδα 1 α ό 10 ΕΝΟΤΗΤΑ ΙΙΙ (ΠΡΟΓΡΑΜΜΑΤΑ) ΚΕΦΑΛΑΙΟ 7: Είδη, Τεχνικές και Περιβάλλοντα Προγραµµατισµού Α. Ερωτήσεις Ανάπτυξης 1. Τι ονοµάζουµε γλώσσα προγραµµατισµού;

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

Διαδικτυακές Εφαρμογές Ενότητα 1: JPA

Διαδικτυακές Εφαρμογές Ενότητα 1: JPA Διαδικτυακές Εφαρμογές Ενότητα 1: JPA Μιχάλας Άγγελος Βούρκας Δημήτριος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΕΡΓΑΣΤΗΡΙΟ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ ΜΕΡΟΣ ΤΕΤΑΡΤΟ Insert, Update, Delete, Ένωση πινάκων Γιώργος Μαρκοµανώλης Περιεχόµενα Group By... 1 Having...1 Οrder By... 2 Εντολή Insert...

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

Kεφάλαιο 10. Πόσα υποπαίγνια υπάρχουν εδώ πέρα; 2 υποπαίγνια.

Kεφάλαιο 10. Πόσα υποπαίγνια υπάρχουν εδώ πέρα; 2 υποπαίγνια. Kεφάλαιο 10 Θα δούµε ένα δύο παραδείγµατα να ορίσουµε/ µετρήσουµε τα υποπαίγνια και µετά θα λύσουµε και να βρούµε αυτό που λέγεται τέλεια κατά Nash ισορροπία. Εδώ θα δούµε ένα παίγνιο όπου έχουµε µια επιχείρηση

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

Προηγμένα Πληροφοριακά Συστήματα. Ακαδημαϊκό Έτος

Προηγμένα Πληροφοριακά Συστήματα. Ακαδημαϊκό Έτος Προηγμένα Πληροφοριακά Συστήματα Ακαδημαϊκό Έτος 2016-2017 Ομάδα: 1. Κανούτος Κωνσταντίνος ΑΜ: 5775 2. Καραχάλιος Αθανάσιος ΑΜ: 5784 3. Κυριακού Ανδρόνικος ΑΜ: 5806 4. Ντενέζος Παναγιώτης ΑΜ: 5853 5. Παρασκευόπουλος

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

Version X. Οδηγίες χρήσης

Version X. Οδηγίες χρήσης Version 1.0.1.X Οδηγίες χρήσης Πρόλογος Η εφαρµογή CallReceiver σχεδιάστηκε για την υποστήριξη ξενοδοχείων ή επιχειρήσεων, όσον αφορά στις τηλεφωνικές κλήσεις που διαχειρίζεται το τηλεφωνικό κέντρο (Τ/Κ).

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

ΗΜΙΟΥΡΓΙΑ ΙΣΤΟΣΕΛΙ ΑΣ ΣΤΟ MICROSOFT WORD

ΗΜΙΟΥΡΓΙΑ ΙΣΤΟΣΕΛΙ ΑΣ ΣΤΟ MICROSOFT WORD ΗΜΙΟΥΡΓΙΑ ΙΣΤΟΣΕΛΙ ΑΣ ΣΤΟ MICROSOFT WORD Σε ορισµένες περιπτώσεις είναι ιδιαίτερα χρήσιµη η δηµιουργία ιστοσελίδων ενηµερωτικού περιεχοµένου οι οποίες στη συνέχεια µπορούν να δηµοσιευθούν σε κάποιο τόπο

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