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

Σχετικά έγγραφα
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ

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

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

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

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

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

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

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

Κεφάλαιο 5ο: Εντολές Επανάληψης

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

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

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

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

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

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

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

Δοµές Δεδοµένων και Αλγόριθµοι - Εισαγωγή

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

Α ΤΑΞΗ. 1 η ΕΝΟΤΗΤΑ: Γνωρίζω τον υπολογιστή. Θα παρουσιαστεί µε τρόπο απλό και κατανοητό,

ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ. Κατηγορίες Πληροφοριακών Συστημάτων Διοικητικής Υποστήριξης

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

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

Βάσεις εδοµένων. Βασίλειος Βεσκούκης, Εµµ. Στεφανάκης ΣΥΣΤΗΜΑΤΑ ΙΑΧΕΙΡΙΣΗΣ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ

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

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

Εισαγωγή και επεξεργασία δεδοµένων

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

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

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

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

Κωστόπουλος ηµήτριος Μ.Π.Λ.Α. TAPE COMPRESSION (θεώρηµα 2.3 Παπαδηµητρίου)

Εργαστήριο ΨΗΦΙΑΚΗ ΛΟΓΙΚΗ. Εισαγωγή

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

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

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

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

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

Οδηγίες Ηλεκτρονικής Υποβολής Προτάσεων

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

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

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

Σύστημα. Αντώνης Μαϊργιώτης

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

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

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

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

ΑΣΚΗΣΕΙΣ ΘΕΩΡΙΑΣ. ΘΕΜΑ 1 Δίνεται το παρακάτω τμήμα δηλώσεων ενός προγράμματος σε «ΓΛΩΣΣΑ»: ΜΕΤΑΒΛΗΤΕΣ ΠΡΑΓΜΑΤΙΚΕΣ: Π[10] ΛΟΓΙΚΕΣ: ΒΡΕΘΗΚΕ ΑΚΕΡΑΙΕΣ: i

Συστήματα Πληροφοριών Διοίκησης

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

Orchid: Integrating Schema Mapping and ETL ICDE 2008

5. Γεννήτριες Τυχαίων Αριθµών.

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

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

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

Linear Hashing. Linear vs other Hashing

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

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

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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ, ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 001: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ

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

7.5 Πρωτόκολλο IP. Τεχνολογία ικτύων Επικοινωνιών ΙΙ

Κεφάλαιο 9 ο Κ 5, 4 4, 5 0, 0 0,0 5, 4 4, 5. Όπως βλέπουµε το παίγνιο δεν έχει καµιά ισορροπία κατά Nash σε αµιγείς στρατηγικές διότι: (ΙΙ) Α Κ

Αρχική σελίδα. Κατάσταση. Άµεση πρόσβαση

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

Certified Data Base Designer (CDBD)

Επιχειρηµατικές ιαδικασίες: Εισαγωγικές Έννοιες & Αρχικά στάδια µοντελοποίησης

2. Missing Data mechanisms

Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή

Κεφάλαιο 10 ο Υποπρογράµµατα

Η στοίβα (stack) H στοίβα είναι ένας αποθηκευτικός χώρος οργανωµένος κατά τέτοιο τρόπο ώστε να υποστηρίζει δύο βασικές λειτουργίες:

ιδάσκων: ηµήτρης Ζεϊναλιπούρ

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


Το Ηλεκτρονικό Ταχυδροµείο ( ) είναι ένα σύστηµα που δίνει την δυνατότητα στον χρήστη να ανταλλάξει µηνύµατα αλλά και αρχεία µε κάποιον άλλο

ΠΑΡΑΛΛΗΛΗ ΕΠΕΞΕΡΓΑΣΙΑ

ιεύθυνση Λέξης Ερµηνεία Περιεχοµένου Λέξης ιεύθυνση Λέξης b7 b6 b5 b4 b3 b2 b1 b0

3 Αναδροµή και Επαγωγή

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

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

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

ΠΕΡΙΛΗΨΗ Vcommunity V Community

Εφαρµογή EXTRA. ιαδικασία εξαγωγής της Μηχανογραφικής. έκδοσης ισοζυγίου στην εφαρµογή Extra Λογιστική ιαχείριση.

ΠροσδιορισµόςΒέλτιστης Λύσης στα Προβλήµατα Μεταφοράς Η µέθοδος Stepping Stone

Συνοπτική Μεθοδολογία Ασκήσεων Κεφαλαίου 7. Ασκήσεις στο IP Fragmentation

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

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

Σχεσιακό Μοντέλο. Εισαγωγή. Βάσεις εδοµένων : Σχεσιακό Μοντέλο 1

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

Λύσεις Παλιών Θεµάτων. Συστήµατα Παράλληλης Επεξεργασίας, 9ο εξάµηνο Υπεύθ. Καθ. Νεκτάριος Κοζύρης

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

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

ΦΥΛΛΟ ΠΛΗΡΟΦΟΡΙΩΝ. Μονάδες μέτρησης χωρητικότητας μνήμης - Η περιφερειακή μνήμη

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

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

o AND o IF o SUMPRODUCT

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

Transcript:

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

Πρόλογος Η παρούσα διπλωµατική εργασία εκπονήθηκε στο Εργαστήριο Συστηµάτων Βάσεων και Γνώσεων εδοµένων (ΕΒΓ ) του τµήµατος Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών του Εθνικού Μετσόβιου Πολυτεχνείου. Ευχαριστώ τον καθηγητή κ. Τ. Σελλή, τον υποψήφιο διδάκτορα και επιβλέποντα της διπλωµατικής κ. Α. Σιµιτσή και τον διδάκτορα Π. Βασιλειάδη για την πολύτιµη βοήθεια που µου παρείχαν κατά την εκπόνηση της διπλωµατικής αυτής εργασίας, καθώς και όλα τα µέλη του εργαστηρίου για τις πολύτιµες συµβουλές πάνω σε τεχνικά θέµατα που µου προσέφεραν. Ιανουάριος 2003 ΖΗΣΙΜΟΣ ΑΝΤΩΝΗΣ i

ii

Περίληψη στα ελληνικά Ένα από τα σηµαντικότερα θέµατα σε ένα σύστηµα αποθηκών δεδοµένων είναι το στάδιο ενηµέρωσης µε νέα δεδοµένα, ή όπως έχει επικρατήσει ο αγγλικός όρος ETL ( εξαγωγή, µετασχηµατισµός, ενηµέρωση ). Με αυτό το στάδιο ασχολείται η διπλωµατική αυτή. Πιο συγκεκριµένα, ξεκινώντας µε µια εισαγωγή για τις αποθήκες δεδοµένων και τις διάφορες αρχιτεκτονικές τους, προχωράµε µε την ανάλυση της περιοχής που ονοµάζεται data staging και αποτελεί την καρδιά ενός ETL µηχανισµού. Αναλύουµε την αναγκαιότητα ενός επαυξητικού µηχανισµού και δικαιολογούµε την σπουδαιότητα των µετασχηµατισµών σε δεδοµένα πριν αυτά φορτωθούν στην αποθήκη δεδοµένων. Στη συνέχεια προχωρούµε µε το σχεδιασµό, ανάπτυξη και υλοποίηση µιας βιβλιοθήκης αλγορίθµων εξαγωγής και µετασχηµατισµού δεδοµένων που µπορεί να χρησιµοποιηθεί στην πλειονότητα των σύγχρονων λειτουργικών συστηµάτων. Τέλος, µε βάση την βιβλιοθήκη αυτή, κατασκευάζουµε και τις αναγκαίες διεπαφές για τον χρήστη, και πραγµατοποιούµε µετρήσεις για την ορθότητα, την αξιοπιστία και την απόδοση των µεθόδων αυτών. Λέξεις Κλειδιά: αποθήκες δεδοµένων, ETL, επαυξητική εξαγωγή, µετασχηµατισµοί iii

iv

Summary A data warehouse system must be up to date with the latest data available from the information sources. The full process includes detection and extraction from the sources, translation to the data model of the warehouse and bulk loading to the warehouse. This diploma thesis focuses on this process, also known as ETL. We start by introducing the various architectures of a data warehouse, and continue with the analysis of the data staging area, which is the heart of the ETL mechanism. We discuss the need for an incremental mechanism and the necessity of data transformations, prior to loading to the warehouse. Our goal is to design, develop and implement a library that will contain ETL algorithms and can be executed without any difficulty in all major operating systems. Furthermore, we implement the appropriate user interfaces to use the library for a number of experiments. The feedback can help us in comparing the algorithms and getting detailed results about their performance. Keywords: data warehouses, ETL, incremental extraction, transformations v

vi

Πίνακας περιεχοµένων 1 Εισαγωγή... 1 1.1 Αντικείµενο της διπλωµατικής... 1 1.2 Οργάνωση του τόµου... 2 2 Περιγραφή Θέµατος... 5 2.1 Αρχιτεκτονική Αποθηκών εδοµένων... 6 2.2 Αρχιτεκτονική MOLAP... 7 2.3 Αρχιτεκτονική ROLAP... 9 2.4 Υβριδική Αρχιτεκτονική και Αγορές εδοµένων... 11 2.5 Μέθοδοι Ενηµέρωσης Data Staging... 13 2.6 Αλγόριθµοι Επαυξητικής Εξαγωγής... 14 2.6.1 Εξαγωγή µέσω των logs... 15 2.6.2 Εξαγωγή µε triggers... 17 2.6.3 Εξαγωγή µε στιγµιότυπα... 18 2.6.4 Σύγκριση των µεθόδων... 22 2.7 Μετασχηµατισµός Ολοκλήρωση... 23 2.8 Ποιότητα εδοµένων... 24 2.9 Βελτίωση εδοµένων... 25 2.10 Εισαγωγή στην Αποθήκη εδοµένων... 27 vii

2.11 Στόχος της διπλωµατικής... 28 3 Ανάλυση και σχεδίαση... 29 3.1 Περιγραφή Αρχιτεκτονικής... 29 3.2 Περιγραφή Λειτουργιών... 33 3.2.1 Στιγµιότυπα Βάσης... 33 3.2.2 ηµιουργία Στιγµιότυπων... 34 3.2.3 Εξαγωγή αλλαγών... 34 3.2.4 Έλεγχος Αποτελεσµάτων... 35 3.2.5 Μετασχηµατισµός εδοµένων... 36 4 Υλοποίηση... 37 4.1 Πλατφόρµες και προγραµµατιστικά εργαλεία... 37 4.2 Λεπτοµέρειες υλοποίησης... 38 4.2.1 Περιγραφή Στιγµιότυπων... 38 4.2.2 ιαγράµµατα Ροής... 39 4.2.3 Περιγραφή κώδικα... 53 5 Έλεγχος... 77 viii

5.1 Μεθοδολογία Ελέγχου... 77 5.1.1 Πλατφόρµα Μετρήσεων... 77 5.2 Αλγόριθµοι µε συµπίεση... 78 5.3 Αλγόριθµος µε παράθυρο... 83 5.4 Συγκριτικό πείραµα των δύο παραπάνω αλγορίθµων... 89 6 Επίλογος... 95 6.1 Σύνοψη και συµπεράσµατα... 95 6.2 Μελλοντικές επεκτάσεις... 96 7 Βιβλιογραφία... 99 ix

x

1 Εισαγωγή Στο παρόν κεφάλαιο, στην παράγραφο 1.1 αναλύεται το αντικείµενο της παρούσας διπλωµατικής εργασίας και στην παράγραφο 1.2 γίνεται µια επισκόπηση της οργάνωσης του τόµου που κρατάτε στα χέρια σας. 1.1 Αντικείµενο της διπλωµατικής Η παρούσα διπλωµατική εργασία εντάσσεται στο γενικότερο γνωστικό αντικείµενο των αποθηκών δεδοµένων. Η ολοένα και µεγαλύτερη αυτοµατοποίηση των υπηρεσιών των µεγάλων οργανισµών, έχει φέρει τα συστήµατα διαχείρισης δοσοληψιών ολοένα και πιο κοντά σε κάθε πτυχή της καθηµερινής ζωής των ανθρώπων στις αναπτυγµένες χώρες. Συνέπεια του φαινοµένου είναι η διατήρηση ενός τεράστιου όγκου δεδοµένων, από τον οποίο µπορεί κανείς να αντλήσει πολύτιµες πληροφορίες κάνοντας την ανάλογη επεξεργασία. Η επεξεργασία αυτού του όγκου αποτελεί και τον σκοπό των αποθηκών δεδοµένων. Βασικός όµως κανόνας, ώστε να έχουµε αξιόπιστα και σωστά συµπεράσµατα, είναι να έχουµε και ενηµερωµένα και ορθά στοιχεία στην αποθήκη µας. Η ενηµέρωση των δεδοµένων στην αποθήκη ονοµάζεται γενικά ETL. Το αγγλικό ακρωνύµιο ETL, που έχει επικρατήσει, αναλύεται στις λέξεις εξαγωγή, µετασχηµατισµός και ενηµέρωση, τις πράξεις δηλαδή που πρέπει να υποστούν τα δεδοµένα, ώστε να έχουµε ποιοτικά και σωστά στοιχεία σε µια αποθήκη δεδοµένων. Στο σηµείο αυτό εντοπίζεται και το αντικείµενο της διπλωµατικής αυτής. Μετά την απαραίτητη έρευνα και σύµφωνα µε τα στοιχεία που υπάρχουν στην διεθνή 1

βιβλιογραφία, παρουσιάζει αναλυτικά τους πιθανούς ETL αλγορίθµους. ηλαδή, τις µεθόδους εξαγωγής των κατάλληλων στοιχείων από ετερογενείς πηγές πληροφοριών, τους µετασχηµατισµούς που πρέπει να υποστούν τα δεδοµένα, ώστε να ταιριάξουν µε το διαφορετικό µοντέλο δεδοµένων της αποθήκης και να καθαριστούν, ώστε να έχουµε πιο αξιόπιστα αποτελέσµατα, αλλά και κάποιες βασικές αρχές, ώστε να γίνει µια µαζική και γρήγορη µεταφορά των επεξεργασµένων δεδοµένων στην αποθήκη. Προσπαθεί να παρουσιάσει ένα σύνολο συναρτήσεων, ενοποιηµένο σε µια βιβλιοθήκη, που θα µπορεί να χρησιµοποιηθεί σαν ένας πυρήνας αλγορίθµων ETL. Σαν αποτέλεσµα, λοιπόν, έχουµε µια υλοποίηση της βιβλιοθήκης σε γλώσσα προγραµµατισµού C, χρησιµοποιώντας την πρότυπη βιβλιοθήκη της C (Standard C Library), οπότε και είναι συµβατή µε κάθε λειτουργικό σύστηµα που έχει τους ανάλογους µεταγλωττιστές και βιβλιοθήκες. Στην βιβλιοθήκη περιλαµβάνονται µέθοδοι επαυξητικής εξαγωγής δεδοµένων από συστήµατα διαχείρισης δοσοληψιών, κάνοντας χρήση µόνο ενός υποσυνόλου των γνωστών τεχνικών, ώστε να µπορέσουµε να τις συγκρίνουµε και να βγάλουµε συµπεράσµατα για την καθεµιά. Επίσης, περιλαµβάνονται και µέθοδοι µετασχηµατισµού των δεδοµένων, οι οποίοι είναι απαραίτητοι, εάν θέλουµε να έχουµε ποιοτικά και σωστά δεδοµένα στην αποθήκη µας. Τέλος, γίνεται η προσπάθεια µετά από σειρά µετρήσεων και πειραµάτων να βγάλουµε συµπεράσµατα για την αποδοτικότητα των διάφορων µεθόδων, για τα πλεονεκτήµατα και τα µειονεκτήµατά τους, αλλά και την συµπεριφορά τους σε ένα πλήθος διαφορετικών καταστάσεων. 1.2 Οργάνωση του τόµου Στο 1 ο κεφάλαιο αναφέρεται µε λίγα λόγια το αντικείµενο της διπλωµατικής και η οργάνωση του τόµου. Στο 2 ο κεφάλαιο της διπλωµατικής επιχειρείται µια εισαγωγή στην τεχνολογία των data warehouses, τα προβλήµατα που ανακύπτουν κατά τη λειτουργία τους, το incremental extraction και σε κάποιους αλγόριθµους που προσφέρουν λύσεις στο τελευταίο. Στο 3 ο κεφάλαιο γίνεται η ανάλυση και η σχεδίαση της εφαρµογής. Παρουσιάζεται η αρχιτεκτονική της βιβλιοθήκης και οι λειτουργίες που αυτή προσφέρει. Στο 4 ο κεφάλαιο περιγράφονται οι πλατφόρµες και τα προγραµµατιστικά εργαλεία που χρησιµοποιήθηκαν. Προχωράµε βαθύτερα στην βιβλιοθήκη και αναφερόµαστε σε λεπτοµέρειες που προέκυψαν κατά την υλοποίηση του κάθε αλγόριθµου. Στο 5 ο κεφάλαιο περιγράφεται η µεθοδολογία που ακολουθήθηκε για τα πειράµατα και τον έλεγχο των αλγορίθµων. Γίνονται αναλύσεις των µετρήσεων και παρουσιάζονται γραφήµατα, από τα οποία βγαίνουν συµπεράσµατα για την συµπεριφορά των αλγορίθµων σε διάφορες συνθήκες. 2

Στο 6 ο κεφάλαιο κλείνει η διπλωµατική αυτή παρουσιάζοντας το έργο που έγινε και τα συµπεράσµατα που αποκοµίστηκαν. Στο 7 ο κεφάλαιο δίνεται η βιβλιογραφία και γενικότερα οι πηγές, οι οποίες προµήθευσαν τις απαραίτητες πληροφορίες για τη συγγραφή της διπλωµατικής. 3

4

2 Περιγραφή Θέµατος Στην σύγχρονη παγκόσµια αγορά της πληροφορικής ένας πολύ δηµοφιλής όρος είναι οι αποθήκες δεδοµένων. Σε πολλούς οργανισµούς έχουν προταθεί τέτοια συστήµατα, που θα ικανοποιήσουν τις σύγχρονες ανάγκες των µεγάλων οργανισµών, εκτός των απλών αυτοµατισµών που διεκπεραιώνουν οι συνηθισµένες βάσεις δεδοµένων ως συστήµατα διαχείρισης δοσοληψιών ( OLTP - On Line Transaction Process ). Πέρα από τις καθηµερινές δοσοληψίες σε έναν οργανισµό, υπάρχει ανάγκη να γίνεται και µια µελέτη για την κατάσταση του, που θα βοηθήσει τους υπεύθυνους να πάρουν τις σωστές αποφάσεις. Αυτά τα συστήµατα είναι γνωστά και σαν συστήµατα υποστήριξης αποφάσεων ( DSS - Decision Support Systems ) ή πληροφόρησης στελεχών ( EIS - Executive Information Systems ). Αυτά τα συστήµατα έχουν διαφορετικό προσανατολισµό από τα OLTP και έχουν διαφορετικές απαιτήσεις, οπότε παρουσιάζουν και διαφορετική αρχιτεκτονική. Οι εφαρµογές που υποστηρίζουν κυρίως οι αποθήκες δεδοµένων είναι άµεσης αναλυτικής επεξεργασίας ( OLAP - On Line Analytical Processing ). Πολλοί έχουν προσπαθήσει να δώσουν έναν ορισµό για την αποθήκη δεδοµένων. Σύµφωνα, µε τον W.H.Inmon είναι "µια συλλογή θεµατικών, ενοποιηµένων, µη ασταθών, µεταβαλλόµενων µε τον χρόνο δεδοµένων για υποστήριξη διοικητικών αποφάσεων". Η αποθήκη δεδοµένων οφείλει να τροφοδοτήσει µε πληροφορίες τις αναλυτικές εφαρµογές στο σωστό επίπεδο λεπτοµέρειας, ώστε να βγουν τα κατάλληλα συµπεράσµατα και να εκτιµηθούν από τα ανώτατα στελέχη. Σε αντίθεση µε τις παραδοσιακές βάσεις δεδοµένων έχουν να αντιµετωπίσουν πρόσβαση σε δεδοµένα από διαφορετικές πηγές και τεράστιου όγκου µε 5

πρόσβαση µόνο ανάγνωσης και για λειτουργίες που είναι συχνά επαναλαµβανόµενες. εν ενδιαφέρει τόσο πολύ η λεπτοµέρεια και η ακρίβεια στα στοιχεία, όσο η συνολική εικόνα που παρουσιάζουν. Ο στόχος τους είναι η αποτελεσµατική εξαγωγή, επεξεργασία και παρουσίαση για λόγους αναλυτικούς και λήψης αποφάσεων. Τα παραδοσιακά συστήµατα βάσεων δεδοµένων από την άλλη, έχουν προσανατολιστεί στο να διαχειρίζονται αποτελεσµατικά χιλιάδες δοσοληψίες, οι οποίες περιέχουν πράξεις εισαγωγής, τροποποίησης και διαγραφής εκτός από απλές επερωτήσεις στα δεδοµένα. Έχουν βελτιστοποιηθεί στην επεξεργασία επερωτήσεων και δοσοληψιών πάνω σε ένα µικρό µέρος λίγων πλειάδων (tuples) από τις σχέσεις που επεξεργάζονται. Στο OLAP χρειαζόµαστε µια βελτιστοποίηση όσον αφορά τον χρόνο εκτέλεσης πολύπλοκων ερωτήσεων που ίσως αφορούν και ολόκληρη την αποθήκη, που το µέγεθός της µπορεί να φτάνει έως και µερικά TerraByte. Εάν φανταστούµε το πληροφοριακό σύστηµα µιας µεγάλης τράπεζας θα έχει ένα παραδοσιακό σύστηµα βάσεων δεδοµένων για να διαχειριστεί τις δοσοληψίες των πελατών και τις υπηρεσίες της και µια αποθήκη δεδοµένων για να βοηθήσει τα ανώτατα στελέχη στην σχεδίαση της στρατηγικής του οργανισµού, παρέχοντας συγκεντρωτικές πληροφορίες για όλα τα τµήµατα του. 2.1 Αρχιτεκτονική Αποθηκών εδοµένων Είδαµε ότι τα OLAP συστήµατα έχουν διαφορετικές απαιτήσεις, οπότε και η αρχιτεκτονική τους θα διαφέρει. Στα OLTP συστήµατα έχουν το µοντέλο οντοτήτων συσχετίσεων, που στηρίζεται σε σχεσιακές βάσεις δεδοµένων. Στα OLAP συστήµατα από την άλλη έχουµε δύο δυνατές αρχιτεκτονικές, η µια είναι ο υπερκύβος ( MOLAP Multidimensional OLAP ) και η άλλη το αστεροειδές ( ROLAP Relational OLAP ) σχήµα. Στην πράξη µπορεί να συναντήσει κανείς και ένα υβριδικό µοντέλο που χρησιµοποιεί και τις δύο παραπάνω προσεγγίσεις. Βασικά στοιχεία και στα δύο µοντέλα αποτελεί η διάσταση και το γεγονός. Για να καταλάβουµε την σηµασία τους, µπορούµε να πάρουµε ένα παράδειγµα από την φυσική. Στην σύγχρονη φυσική ένα σηµείο στο χώρο έχει (4) τέσσερις διαστάσεις, τρεις (x,y,z) που καθορίζουν την θέση στο χώρο, αλλά και µια (t) που καθορίζει την χρονική στιγµή. Εάν πάρουµε το αντίστοιχο της τραπεζικής συναλλαγής, µπορούµε να θεωρήσουµε την συναλλαγή, σαν το γεγονός που έλαβε χώρα και µερικές διαστάσεις της θα ήταν ο χρόνος που έγινε, η τοποθεσία, ο λογαριασµός ο οποίος τροποποιήθηκε, και το φυσικό πρόσωπο το οποίο έκανε την δοσοληψία. Οι διαστάσεις µπορούν κάλλιστα να είναι ιεραρχικά δοµηµένες, δηλαδή έτος->µήνας->ηµέρα->ώρα για τον χρόνο ή χώρα->περιφέρεια->νοµός->πόλη- >κατάστηµα για την τοποθεσία. Οι διαστάσεις όµως δεν είναι πάντοτε σταθερές, αλλά µπορεί να αλλάζουν µε το χρόνο ( Slowly Changing Dimensions ). Σε ένα µεγάλο τραπεζικό οργανισµό για παράδειγµα µπορεί 6

να κλείσει κάποιο κατάστηµά του, που ίσως είναι το µικρότερο κοµµάτι της γεωγραφικής διάστασης. Εάν η αλλαγή αυτή επενεργούσε άκριτα στην αποθήκη δεδοµένων θα διαγραφόταν η συγκεκριµένη εγγραφή και το σύστηµα στο µέλλον δεν θα γνώριζε ποτέ για την ύπαρξη αυτού του καταστήµατος. Αυτό ίσως να γινόταν στις παραδοσιακές βάσεις δεδοµένων, αλλά στις αποθήκες δεδοµένων θέλουµε να έχουµε και ιστορικά στοιχεία, που θα µας δείχνουν την εξέλιξη και την συµπεριφορά µε τον χρόνο κάποιων στοιχείων του οργανισµού. Έτσι, θα µπορέσουµε να προχωρήσουµε και σε ιστορική ανάλυση, που ίσως να βοηθήσει µελλοντικές στρατηγικές. Εάν π.χ. κάποιο διοικητικό στέλεχος θέλει να µάθει πόσα καταστήµατα έκλεισαν πριν 2 χρόνια, δεν θα µπορέσει εάν τα έχουµε ήδη διαγράψει από την αποθήκη µας. Γενικά µπορούµε να πούµε ότι έχουµε ενηµερώσεις τριών (3) τύπων: Στον πρώτο τύπο απλά γράφουµε την καινούργια τιµή του πεδίου της διάστασης διαγράφοντας την παλαιά. Για παράδειγµα κάτι τέτοιο θα έπρεπε να γίνει, εάν είχαµε λάβει κάποια διορθωµένη διεύθυνση πελάτη. Στον δεύτερο τύπο, δηµιουργούµε µια νέα εγγραφή στην διάσταση µε ένα νέο κλειδί και αντιγράφουµε κάπου αλλού την παλαιά. Έπειτα την ανανεώνουµε µε τα αλλαγµένα πεδία και προσθέτουµε όσες παραπάνω πληροφορίες θέλουµε. Αυτή την τεχνική θα πρέπει να ακολουθήσουµε εάν για παράδειγµα κάποιος πελάτης αλλάξει την συζυγική του κατάσταση σε έγγαµος και αυτό είναι πραγµατική αλλαγή και όχι διόρθωση. Τέλος, στον τρίτο τύπο δηµιουργούµε ένα επιπλέον πεδίο στην εγγραφή και τοποθετούµε την παλαιά τιµή σε αυτό. Έτσι, θα µπορούσαµε να ενεργήσουµε σε περιπτώσεις που θα θέλουµε να αναφερθούµε και στις δύο τιµές του πεδίου που άλλαξε, όπως για παράδειγµα όταν µια οµάδα πωλήσεων αναλαµβάνει µια νέα περιοχή να δραστηριοποιηθεί. 2.2 Αρχιτεκτονική MOLAP Στην αναλυτική επεξεργασία ένα σηµαντικό θέµα είναι η παρουσίαση των αποτελεσµάτων να γίνει σε κατανοητή µορφή. Μια προσέγγιση είναι το λογιστικό φύλλο, στο οποίο µπορούµε να παρουσιάσουµε την εξέλιξη κάποιου γεγονότος σε δύο διαστάσεις. Συνεχίζοντας το παράδειγµα της τραπέζης, τα προγράµµατα δανειοδότησης θα µπορούσαν να εµφανιστούν σαν γραµµές και τα έσοδα από τόκους για κάθε γεωγραφική περιοχή να αποτελούν τις στήλες.. Προσθέτοντας και την διάσταση του χρόνου θα είχαµε έναν πίνακα τριών διαστάσεων, έναν κύβο δεδοµένων. Έτσι κάθε κελί θα αντιπροσώπευε το σύνολο των εσόδων από τόκους ανά πρόγραµµα δανειοδότησης, ανά γεωγραφική περιοχή, ανά χρονική περίοδο. 7

Σχήµα 1 Αρχιτεκτονική υπερκύβου Αυξάνοντας ακόµα τις διαστάσεις θα καταλήξουµε σε ένα σχήµα υπερκύβου, το οποίο είναι δύσκολο να παρασταθεί οπτικά. Στα MOLAP χρησιµοποιούνται οι υπερκύβοι όχι µόνο στην παρουσίαση των αποτελεσµάτων αλλά και στην φυσική αποθήκευση των δεδοµένων. Τα δεδοµένα αποθηκεύονται σε πίνακες ν-διάστατους, όπου κάθε διάσταση έχει µια ιεραρχία επιπέδων. Οι τιµές που περιέχονται στους υπερκύβους αντιστοιχούν στις στήλες των σχεσιακών πινάκων και είναι οι τιµές των δεδοµένων µας. Στους υπερκύβους έχουµε ένα σύνολο πράξεων που µας παρέχουν την δυνατότητα της πλοήγησης στις ιεραρχίες των διαστάσεών τους: Roll-Up: Ανεβαίνουµε κατά ένα βήµα στην ιεραρχία µιας διάστασης, παίρνοντας κατά αυτόν τον τρόπο συγκεντρωτικά αποτελέσµατα για τα κατώτερα επίπεδα. ηλαδή στο παράδειγµά µας της τραπέζης, βλέποντας τα τραπεζικά προγράµµατα από ανά µήνα σε ανά έτος. Drill-Down: Είναι η αντίστροφη πράξη του Roll-Up, όπου κατεβαίνουµε κατά ένα βήµα στην ιεραρχία µιας κλάσης, παίρνοντας πιο λεπτοµερή στοιχεία από τα συγκεντρωτικά που είχαµε. Slicing: Στην πράξη αυτή επιλέγουµε κάποια δεδοµένα σε µια συγκεκριµένη διάσταση. Το τελικό αποτέλεσµα φαίνεται σαν κοπή του υπερκύβου και τελικά παίρνουµε ένα υποσύνολό του. Στο παράδειγµά µας κάτι αντίστοιχο θα ήταν στην 8

διάσταση της γεωγραφικής περιοχής να επιλέγαµε µόνο τα καταστήµατα της Αττικής και όχι ολόκληρης της Ελλάδας. Pivoting: Εδώ απλώς αλλάζουµε τον τρόπο παρουσίασης των δεδοµένων χωρίς να τροποποιήσουµε τον κύβο. Τα δεδοµένα παραµένουν αµετάβλητα και απλώς αλλάζει η διάταξη των διαστάσεών του. Π.χ. στο παράδειγµα µας αν αλλάξουµε τα τραπεζικά προγράµµατα µε τις γεωγραφικές περιοχές. Το µεγάλο πλεονέκτηµα των MOLAP συστηµάτων είναι η ακριβής αντιστοιχία τρόπων αποθήκευσης και παρουσίασης δεδοµένων, και η σχεδίασή τους που έγινε βάση των απαιτήσεων των OLAP εφαρµογών. 2.3 Αρχιτεκτονική ROLAP Η αρχιτεκτονική ROLAP βασίζεται πάνω στο σχεσιακό µοντέλο, αλλά δεν ακολουθεί τα διαγράµµατα οντοτήτων-συσχετίσεων. Με τον παραδοσιακό σχεδιασµό θα καταλήγαµε σε ερωτήµατα µε πολύ µεγάλο κόστος εκτέλεσης, αφού θα αναγκαζόµασταν να εκτελούµε πολλές πράξεις ένωσης µεταξύ πινάκων τεραστίων µεγεθών. Εξάλλου οι εφαρµογές OLAP ζητούσαν ένα σχήµα που να προσοµοιάζει το πολυδιάστατο µοντέλο, το οποίο ανταποκρινόταν και στις απαιτήσεις τους. Έτσι, µε την εισαγωγή των εννοιών διαστάσεων και γεγονότων προέκυψε το αστεροειδές σχήµα. Τώρα έχουµε δύο τύπους πινάκων: τους πίνακες διάστασης και τους πίνακες γεγονότων ( fact table ). Κάθε πίνακας διάστασης αποτελείται από πλειάδες γνωρισµάτων της διάστασης. Κάθε πίνακας γεγονότων µπορεί να θεωρηθεί ότι αποτελείται από πλειάδες, µια για κάθε καταγεγραµµένο γεγονός. Για κάθε γεγονός έχουµε κάποια µέτρηση, κάποια µεταβλητή παρατήρησης, και µια σειρά από ξένα κλειδιά που προσδιορίζουν το γεγονός, αφού το συνδέουν µε τους πίνακες διάστασής του. Μια παραλλαγή του αστεροειδούς σχήµατος είναι το σχήµα χιονονιφάδας. Σε αυτό οι πίνακες διάστασης έχουν κανονικοποιηθεί και ακολουθούν µια πιο σαφή ιεραρχία. Στην ουσία πρόκειται για µια βελτίωση του σχήµατος αστέρα, η οποία µπορεί να συνεχιστεί µε κανονικοποίηση µέχρι την τρίτη µορφή, ώστε η προσπέλαση στην αποθήκη να γίνεται στο λεπτότερο επίπεδο λεπτοµέρειας. Για λόγους βελτιστοποίησης εκτός από πίνακες γεγονότων και διαστάσεων, είναι πιθανόν να έχουµε και συγκεντρωτικούς πίνακες, που παρέχουν προϋπολογισµένα συνολικά αποτελέσµατα για µερικές από τις διαστάσεις. Τέτοιοι πίνακες είναι ιδιαίτερα χρήσιµοι, ειδικά σε περιπτώσεις που από µελέτη έχει προκύψει συχνή ζήτηση κάποιων αποτελεσµάτων. Αυτά τα δεδοµένα δεν είναι κάτι καινούργιο για την αποθήκη, αλλά προκύπτουν από τον πίνακα γεγονότων. Πολλές φορές µάλιστα είναι αποθηκευµένα σε αυτόν θέτοντας τα αντίστοιχα ξένα κλειδιά, για τα οποία αποτελούν συγκεντρωτικά αποτελέσµατα, σε τιµή null. Τα συστήµατα ROLAP έχουν το πλεονέκτηµα ότι αξιοποιούν µια τεχνολογία, η 9

Σχήµα 2 Αρχιτεκτονική Αστέρα οποία είναι αρκετά αναπτυγµένη τις τελευταίες δεκαετίες, οπότε προκύπτει ένα αποτέλεσµα αρκετά αξιόπιστο και αποδοτικό. Σχήµα 3 Αρχιτεκτονική Χιονονιφάδας 10

2.4 Υβριδική Αρχιτεκτονική και Αγορές εδοµένων Ένας συνδυασµός των δύο παραπάνω αρχιτεκτονικών αποτελεί την υβριδική αρχιτεκτονική. Συνήθως, ένας µεγάλος οργανισµός έχει µια αποθήκη δεδοµένων, αλλά δεν έχουν όλοι την ίδια πρόσβαση σε αυτήν. Το πιθανότερο είναι να µην χρειάζεται κάθε αναλυτής / στέλεχος να επεξεργαστεί όλη την πληροφορία, οπότε είναι και πιο αποδοτικό να δηµιουργηθεί και µια µικρογραφία της αποθήκης για να κάνει τις ερωτήσεις του πιο γρήγορα. Έτσι έχουµε µια µεγάλη αποθήκη που κρατάει όλη την πληροφορία του οργανισµού σε µια αρχιτεκτονική (ROLAP) αντλώντας όλα τα περιεχόµενα του σχεσιακού συστήµατος διαχείρισης, και για κάθε τµήµα ξεχωριστά, που χρειάζεται να κάνει την ανάλυσή του φτιάχνει µια µικρογραφία ή αλλιώς µια αγορά δεδοµένων που στηρίζεται σε αρχιτεκτονική (MOLAP). Έτσι, ο αναλυτής έχει όλα τα πλεονεκτήµατα της φυσικής αποθήκευσης σε υπερκύβους και µπορεί και εκτελεί γρήγορα επερωτήµατα στην βάση. Οι αγορές δεδοµένων, επιπλέον, δεν χρειάζονται τεράστια συστήµατα, µειώνοντας έτσι το κόστος για υλικό και αυξάνοντας το καταµερισµό του φορτίου, απαγκιστρώνοντας όλους τους αναλυτές από το κεντρικό σύστηµα που χειρίζεται Σχήµα 4 Αρχιτεκτονική υπερκύβου. Η πληροφορία είναι αποθηκευµένη σε υπερκύβους και µέσω µιας µηχανής υπολογισµού των επερωτήσεων γίνεται διαθέσιµη στους χρήστες. την αποθήκη δεδοµένων. Όµως οι αγορές δεδοµένων δεν είναι απλώς µια αντιγραφή συγκεκριµένων δεδοµένων, µε σκοπό να µειωθεί το φορτίο της αποθήκης. Θα ήταν αρκετά πιο εύκολο εάν αυξάναµε την επεξεργαστική ισχύ του συστήµατος της αποθήκης δεδοµένων, παρά να υλοποιήσουµε µικρογραφίες τις που θα αντιµετώπιζαν τα ίδια προβλήµατα µε αυτή. 11

Σχήµα 5 Αρχιτεκτονική Αστέρα. Η πληροφορία είναι αποθηκευµένη σε σχεσιακό σύστηµα βάσης δεδοµένων και µέσω µιας µηχανής υπολογισµού των επερωτήσεων και µεταγλώττισής τους στο σχεσιακό µοντέλο γίνεται διαθέσιµη στους χρήστες Οι αγορές δεδοµένων καταφέρνουν και µας βοηθούν γιατί αποτελούνται από συγκεντρωτικά στοιχεία, οπότε µπορούν και κρατούν το µέγεθός τους µικρό και δεν χρειάζονται τεράστια συστήµατα επεξεργαστών για κάθε µια αγορά δεδοµένων, όπως στην αποθήκη δεδοµένων. Τα λεπτοµερή στοιχεία παραµένουν στην αποθήκη. Εποµένως, όποτε ο χρήστης της αγοράς δεδοµένων χρειαστεί λεπτοµερή στοιχεία, τότε το ερώτηµά του δροµολογείται προς την αποθήκη, όταν κάνει δηλαδή drill-down. Όπως βλέπουµε υπάρχει ανοικτή επικοινωνία και ενηµέρωση µεταξύ αποθήκης δεδοµένων και αγορών δεδοµένων. 12

Σχήµα 6 Υβριδική αρχιτεκτονική. Η πληροφορία είναι αποθηκευµένη σε σχεσιακό σύστηµα βάσης δεδοµένων και σε υπερκύβους µε την βοήθεια αγορών δεδοµένων. 2.5 Μέθοδοι Ενηµέρωσης Data Staging Μια πολύ σηµαντική λειτουργία στις αποθήκες δεδοµένων είναι η ενηµέρωσή τους. Πρέπει να γίνει µε τρόπο τέτοιο, ώστε να µην επηρεάσει ούτε τις πηγές, ούτε την αποθήκη για µεγάλο χρονικό διάστηµα. Το πιο απλό πράγµα που θα µπορούσε κάποιος να φανταστεί είναι κάθε φορά που θα θέλουµε να ενηµερώσουµε την αποθήκη, να διαγράφουµε όλα τα δεδοµένα και µετά να την ξαναγεµίζουµε. Κάτι τέτοιο όµως θα ήταν εξαιρετικά ασύµφορο, αφού κάθε φορά θα αναγκαζόµασταν να εισάγουµε δεδοµένα µεγέθους µερικών Terrabyte, µε αποτέλεσµα η διαδικασία να είναι πολύ χρονοβόρα και να έθετε εκτός λειτουργίας και την αποθήκη αλλά και τα OLTP συστήµατα για περισσότερη ώρα από όσο είναι αποδεκτό. Μια πιο έξυπνη µέθοδος, αλλά και πιο πολύπλοκη είναι να εξάγουµε µόνο τις αλλαγές από τα OLTP συστήµατα, ώστε απλώς να ενηµερώσουµε την βάση για τις νέες εισαγωγές, τροποποιήσεις και διαγραφές που έγιναν από την τελευταία ενηµέρωσή της. Όµως, το 13

Σχήµα 7 Μετάδοση δεδοµένων στην αποθήκη δεδοµένων. πρόβληµα δεν είναι µόνο πως θα εξάγουµε την πληροφορία από τα επιµέρους συστήµατα, αλλά και πως θα τα µετασχηµατίσουµε, ώστε να ταιριάζουν στις σχέσεις και τις δοµές της αποθήκης, οι οποίες δεν είναι απαραίτητο να είναι ίδιες µε τα υπόλοιπα συστήµατα. Ένα άλλο πρόβληµα είναι να κρατήσουµε την αποθήκη συνεπή και τα δεδοµένα της ακέραια, ανάλογα µε τους περιορισµούς που έχουµε βάλει, ακόµα και εάν χρειαστεί να µετατρέψουµε δεδοµένα ή να τα διαγράψουµε χρησιµοποιώντας κάποιες µεθόδους τεχνητής νοηµοσύνης. Τέλος, θα πρέπει όλο τον όγκο της πληροφορίας, που έχουµε µαζέψει να τον φορτώσουµε στην αποθήκη δεδοµένων µε κάποια ειδικά εργαλεία, ανάλογα µε το σύστηµά µας. Όλα τα παραπάνω γίνονται σε µια περιοχή, την οποία ονοµάζουµε data staging και είναι συνήθως ένα σύστηµα διαχείρισης βάσεων δεδοµένων, όχι απαραίτητα διαφορετικό από την αποθήκη δεδοµένων ή κάποιο σύστηµα δοσοληψίας. 2.6 Αλγόριθµοι Επαυξητικής Εξαγωγής Ο σκοπός µας είναι να εξάγουµε τα δεδοµένα προοδευτικά από τις πηγές µας. Για να πετύχουµε τον σκοπό αυτό πρέπει να χρησιµοποιήσουµε κάποιο µηχανισµό διάγνωσης των µεταβολών που συντελούνται στο σύστηµα, ώστε να γνωρίζουµε και εµείς ποιες αλλαγές θα πρέπει να εφαρµόσουµε στην αποθήκη µας. Τέτοιοι µηχανισµοί χωρίζονται κυρίως σε τρεις κατηγορίες: Σε αυτούς που χρησιµοποιούν για την διάγνωση των µεταβολών το ηµερολόγιο του συστήµατος (log) 14

Σε αυτούς που χρησιµοποιούν τους µηχανισµούς που ενηµερώνουν όποτε παρατηρηθεί κάποια αλλαγή σε ένα πίνακα της βάσης (triggers) Στιγµιότυπα της βάσης, εάν υπάρχει αυτή η δυνατότητα, τα οποία τα συγκρίνεις µε προηγούµενα στιγµιότυπα, ώστε να συµπεράνεις τις αλλαγές (snapshots) 2.6.1 Εξαγωγή µέσω των logs Κάθε σύστηµα διαχείρισης βάσεων δεδοµένων οφείλει να έχει κάποιο µηχανισµό καταγραφής ηµερολογίου (log). Στο αρχείο αυτό καταγράφονται όλες οι αλλαγές στην βάση που γίνονται σε όλους τους πίνακες, είτε είναι πίνακες χρηστών ή του συστήµατος. Αυτή η καταγραφή γίνεται ώστε να βοηθήσει στην ανάνηψη του συστήµατος από αστοχίες υλικού ή άλλες καταστροφές, αυξάνοντας έτσι την αξιοπιστία του συστήµατος. Επίσης, τα αρχεία αυτά βοηθούν στην αναίρεση κάποιας δοσοληψίας εάν έχει επισηµανθεί από τον συντονιστή του συστήµατος διαχείρισης κάποιο αδιέξοδο, ώστε να συνεχιστεί η λειτουργία της και να ξεπεραστεί το πρόβληµα. Συνήθως, ο µηχανισµός καταγραφής υλοποιείται σε µια ξεχωριστή διεργασία ( ή περισσότερες ), η οποία εκτελείται παράλληλα µε τις διεργασίες των δοσοληψιών του συστήµατος και δέχεται από αυτές τα ανάλογα µηνύµατα, ώστε να ενηµερώσει τα κατάλληλα αρχεία για τις αλλαγές στην βάση. Η τεχνική που χρησιµοποιείται βασίζεται στην αρχική ενηµέρωση του ηµερολογίου πριν την εκτέλεση της αλλαγής στο φυσικό επίπεδο της βάσης, ή όπως έχει επικρατήσει ο αγγλικός όρος write ahead log (wal). Έτσι, η βάση µπορεί µε την χρήση αναιρέσεων και επαναλήψεων να διατηρηθεί σε κάποια συνεπή κατάσταση. Εκτός από την ασφάλεια της βάσης µέσω των ηµερολογίων µπορούµε να ελέγξουµε και τα δεδοµένα που εισαχθήκανε στην βάση, αφού οι πληροφορίες που αποθηκεύονται εκεί είναι πολλών ειδών. Για κάθε σύστηµα υπάρχουν σίγουρα ένα µικρό σύνολο από πληροφορίες, όπως : ο κωδικός της δοσοληψίας που εκτέλεσε την αλλαγή στην βάση ο κωδικός του αντικειµένου στο οποίο εκτελέστηκε η αλλαγή ο κωδικός της πλειάδας στο οποίο εκτελέστηκε η αλλαγή, δηλαδή κάποιο πρωτεύον κλειδί του αντικειµένου ή κάποιος εσωτερικός κωδικός της βάσης η πράξη που εκτελέστηκε η πράξη που την αναιρεί η νέα τιµή της πλειάδας η παλιά τιµή του πλειάδας 15

η χρονική στιγµή που έλαβε χώρα. Ίσως όχι σε πραγµατικό χρόνο, αλλά µε βάση κάποια κωδικοποίηση του συστήµατος. Όλα αυτά τα στοιχεία κρατούνται στην κύρια µνήµη του συστήµατος και ανά τακτά χρονικά διαστήµατα ενηµερώνονται τα αρχεία στον σκληρό δίσκο. Είναι πιθανόν, να κρατούνται και εφεδρικά αρχεία πολύ παλαιά σε µαγνητικές ταινίες για εξοικονόµηση χώρου. Όπως βλέπουµε έχουµε υπέρ αρκετή πληροφορία για να κάνουµε επαυξητική εξαγωγή δεδοµένων χρησιµοποιώντας τα ηµερολόγια. Η ανάλυση είναι απαραίτητη, αφού όπως είπαµε ενδιαφερόµαστε για ένα υποσύνολο των αλλαγών. Οι υπόλοιπες αφορούν πίνακες του συστήµατος ή πίνακες αδιάφορους µε την αποθήκη δεδοµένων µας. Έχουµε κρατήσει σε κάποιο µέρος (metadata) την χρονική στιγµή που έγινε η προηγούµενη ενηµέρωση, οπότε ξέρουµε και πόσο πίσω στο παρελθόν να κοιτάξουµε και αναλύσουµε. Με βάση αυτή την χρονική στιγµή και τα ηµερολόγια κατασκευάζουµε βοηθητικούς πίνακες µε πλειάδες τα στοιχεία για τα οποία έχει πραγµατοποιηθεί κάποια αλλαγή, στους πίνακες πάντα που ενδιαφερόµαστε. Στους πίνακες αυτούς που στην συνέχεια εξάγουµε καταγράφονται τόσο η νέα τιµή του πλειάδα, όσο η χρονική στιγµή της αλλαγής και το είδος της. Αυτούς του πίνακες µπορούµε εύκολα να τους εξάγουµε σε απλά αρχεία και στην συνέχεια να τους φορτώσουµε στην αποθήκη δεδοµένων. Εκεί θα γίνει η αντίστροφη διαδικασία και θα ενηµερωθεί η αποθήκη µας. Κατόπιν πρέπει να διαγράψουµε τους προσωρινούς πίνακες του OLTP συστήµατος. Υπάρχει περίπτωση τα πράγµατα να πολυπλέκονται λίγο παραπάνω, εάν στον µηχανισµό καταγραφής αντί για τις τιµές έχουµε µόνο κλειδιά ή εσωτερικούς κωδικούς, οπότε πριν την εξαγωγή των πινάκων θα πρέπει να γίνουν και οι κατάλληλες ενώσεις µε τους πίνακες της βάσης για να πάρουµε τις καινούργιες τιµές. Γενικά µπορούµε να πούµε ότι η µέθοδος αυτή είναι αρκετά ελκυστική, αφού δεν επιβαρύνει καθόλου το OLTP σύστηµα κατά την διάρκεια της κανονικής του λειτουργίας. Τα ηµερολόγια ούτως ή άλλως δηµιουργούνται για τους λόγους που προαναφέραµε. Η επιβάρυνση έρχεται µόνο κατά την στιγµή επεξεργασίας των ηµερολογίων. Για να την µειώσουµε µπορούµε να τα µεταφέρουµε στην αποθήκη να τα επεξεργαστούµε και απλώς να στείλουµε πίσω τα κλειδιά, εάν χρειάζεται, ώστε να γίνουν οι πράξεις ένωσης µε τους πίνακες του OLTP και να προκύψουν οι καινούργιες τιµές. Εδώ όµως θα πρέπει να είµαστε ιδιαίτερα προσεκτικοί να µην επηρεαστούν κατά την διαδικασία αυτή οι πίνακες µέσω κάποιας δοσοληψίας και γίνει κάποια αλλαγή που δεν θα µπορέσουµε να την εντοπίσουµε. Ένα άλλο πλεονέκτηµα είναι ότι χρησιµοποιούµε τον ελάχιστο δυνατό χώρο, αφού αποθηκεύουµε και µεταφέρουµε µόνο τα αλλαγµένα δεδοµένα. Από τα κυριότερα µειονεκτήµατα της µεθόδου είναι ότι περιοριζόµαστε σε εργαλεία που είναι ειδικά για κάθε βάση και όχι σε κάτι γενικό. Έχει µερικούς τεχνικούς περιορισµούς, ενώ υπάρχει ενδεχόµενο να µην υποστηρίζονται 16

ορισµένες δοµές. Τέλος, ο χρήστης του εργαλείου συνήθως πρέπει να έχει ειδικά δικαιώµατα από τον διαχειριστή. 2.6.2 Εξαγωγή µε triggers Σε αυτή την µέθοδο θα πετύχουµε το στόχο µας µέσω της συνεχής παρακολούθησης της λειτουργίας του συστήµατος διαχείρισης της βάσης. Κάτι τέτοιο είναι εφικτό, µόνο εάν παρέχεται τέτοια δυνατότητα από το ίδιο το σύστηµα διαχείρισης, οπότε µπορούµε να κρατάµε πληροφορίες για το είδος και τον χρόνο των ενεργειών που πραγµατοποιούνται κάθε στιγµή. Έτσι θα µπορέσουµε όταν έρθει η στιγµή της επαυξητικής εξαγωγής να ξεχωρίσουµε τις διαφοροποιήσεις και πιο συγκεκριµένα να δούµε ποιες πλειάδες έχουν αλλάξει και πότε άλλαξαν. Για να αναγνωρίσουµε τις αλλαγµένες πλειάδες υπάρχουν δύο προσεγγίσεις : σύµφωνα µε την πρώτη µέθοδο, σε κάθε αλλαγή των πινάκων µας τα δεδοµένα µεταφέρονται σε ένα πίνακα αντίγραφο. Έτσι την χρονική στιγµή της επαυξητική εξαγωγής µεταφέρουµε τις πληροφορίες των πινάκων αντίγραφα στην αποθήκη δεδοµένων. Αντί να αποθηκεύουµε ολόκληρες τις πλειάδες µπορούµε για την αναγνώριση των αλλαγών να αποθηκεύσουµε µόνο τα πρωτεύοντα κλειδιά τους, µειώνοντας το κόστος κατά την επεξεργασία δοσοληψιών, αλλά αυξάνοντας την πολυπλοκότητα κατά την εξαγωγή, αφού τώρα πρέπει να γίνουν και µερικές πράξεις ένωσης (join) για να πάρουµε τα δεδοµένα µας. Στο τέλος θα πρέπει να σβήσουµε τα δεδοµένα που έχουµε αποθηκεύσει στους πίνακες αντίγραφα για να είµαστε έτοιµοι για την επόµενη ανανέωση και να µην χρειαστούµε ειδικές µεθόδους, ώστε να ξεχωρίζουµε παλαιές από νέες εγγραφές. σύµφωνα µε την δεύτερη µέθοδο χρησιµοποιούµε τα λεγόµενα χρονικά αποτυπώµατα (timestamps). Με τον όρο αυτό εννοούµε κάποιο χαρακτηριστικό που προσδίδουµε στα δεδοµένα µας, το οποίο µας δίνει κάποια πληροφορία για την χρονική στιγµή που πραγµατοποιήθηκε η συναλλαγή και η αλλαγή στα δεδοµένα. Κάτι τέτοιο µπορεί να έχει οποιαδήποτε µορφή, από κάποια συµβολοσειρά µε την ηµεροµηνία του συστήµατος, µέχρι κάποια κωδικοποίηση δικιά µας που χαρακτηρίζει διαφορετικά κάθε επαυξητική εξαγωγή. Αντίστοιχα, µας δίνεται η δυνατότητα να διαλέξουµε πάλι εάν θα µεταφέρουµε ολόκληρες τις πλειάδες µαζί µε τα χρονικά αποτυπώµατα στους βοηθητικούς πίνακες ή µόνο τα κλειδιά υπολογίζοντας ανάλογα τις απαιτήσεις του συστήµατος. Το σηµαντικότερο είναι η φύλαξη της χρονικής πληροφορίας. Γενικά οι δύο µέθοδοι δεν διαφέρουν πολύ στην φιλοσοφία τους. Με την πρώτη µέθοδο πρέπει να σβήνουµε τις αλλαγές σε κάθε επαυξητική εξαγωγή γεγονός που θα δηµιουργήσει κάποια καθυστέρηση, αλλά είναι απαραίτητο για να ξεχωρίσουµε ποιες έγιναν στο τελευταίο µεσοδιάστηµα µεταξύ δύο εξαγωγών. Με την δεύτερη µέθοδο δεν χρειάζεται να γίνει κάτι 17

αντίστοιχο, µε αποτέλεσµα να οδηγούµαστε σε σπατάλη χώρου, αλλά και κάποια επιβάρυνση στην διαδικασία, αφού πρέπει να διαλέξουµε τις αλλαγές µε το κατάλληλο χρονικό αποτύπωµα. Και στις δύο µεθόδους θα πρέπει να χρησιµοποιήσουµε κάποιους πίνακες αντίγραφα και ειδικότερα τρεις (3) για κάθε πίνακα που θέλουµε να µεταφέρουµε στην αποθήκη δεδοµένων. Ένα για να κρατάει τις νέες εγγραφές, έναν για τις αλλαγµένες και ένα για τις διαγραµµένες. Στο τελευταίο πίνακα χρειαζόµαστε, φυσικά µόνο το πρωτεύον κλειδί, αφού πρόκειται για διαγραφή, ενώ στους άλλους δύο κάνουµε την επιλογή µας, όπως αναφέρθηκε και παραπάνω. Στην δεύτερη µέθοδο, υπάρχει και µια άλλη επιλογή, να τροποποιήσουµε τους κανονικούς πίνακες της βάσης προσθέτοντας µια στήλη µε χρονικά αποτυπώµατα. Έτσι δεν θα χρειαστεί στο τέλος ένωση πινάκων, αλλά λαµβάνοντας υπόψη το χρονικό αποτύπωµα θα µπορούµε να εξάγουµε κατευθείαν τα δεδοµένα µας από την βάση. Κάτι τέτοιο όµως θα πρέπει να γίνει µε διαφάνεια στο χρήστη, αφού πολλές λειτουργίες όπως η insert θα πρέπει να τροποποιηθούν. Κάτι τέτοιο συνίσταται όταν υπάρχει κάποια εξωτερική διεπαφή που χρησιµοποιεί ο χρήστης για την επικοινωνία µε την βάση, οπότε και περνάµε τις αλλαγές σε αυτή χωρίς να επηρεάσουµε τον χρήστη. Το πλεονέκτηµα αυτών των µεθόδων σε σύγκριση µε τις υπόλοιπες είναι ο απόλυτος έλεγχος που µας προσφέρεται στο σύστηµα δοσοληψίας. Είναι σχετικά απλή και στην σύλληψη και στην υλοποίηση. Μάλιστα έχει βρει µεγάλη ανταπόκριση στην αγορά έχοντας χρησιµοποιηθεί από πληθώρα σχεδιαστών αποθηκών δεδοµένων. Αυτό σηµαίνει πως είναι εύχρηστη και αποτελεσµατική. Έχουµε µια µικρή επιβάρυνση κατά την επεξεργασία της δοσοληψίας, που αποτελεί και το βασικότερο µειονέκτηµα της µεθόδου και άλλη µια µικρή καθυστέρηση κατά την επαυξητική εξαγωγή. Το µειονέκτηµα είναι αρκετά σηµαντικό εάν σκεφτούµε ότι τα συστήµατα δοσοληψίας αποτελούν την εικόνα του οργανισµού µε τους πελάτες του και ο ανταγωνισµός προστάζει όσο το δυνατόν µεγαλύτερη ταχύτητα εξυπηρέτησης. Ας µην ξεχνάµε πως για κάθε πίνακα που θέλουµε να εξάγουµε προσθέτουµε τρεις triggers και άλλους τρεις πίνακες. Από την άλλη τα δεδοµένα είναι σε εκµεταλλεύσιµη µορφή ή µπορούν να γίνουν µε κάποιες πράξεις ένωσης πινάκων (join). Από άποψη χώρου δεν έχει µεγάλες απαιτήσεις σε σχέση µε τις υπόλοιπες µεθόδους, ενώ και τα δεδοµένα που στέλνονται στην αποθήκη είναι όσο το δυνατόν µικρότερα, αφού περιέχουν µόνο τις αλλαγές. 2.6.3 Εξαγωγή µε στιγµιότυπα Η τρίτη και τελευταία µέθοδος επαυξητικής εξαγωγής επενεργεί στα δεδοµένα µε διαφορετικό τρόπο από τις άλλες δύο. Έχοντας εξαντλήσει τις δυνατότητες που προσφέρει ένα σχεσιακό σύστηµα διαχείρισης βάσεων δεδοµένων για τον εντοπισµό αλλαγών στα δεδοµένα µας, συγκρίνουµε πλέον µε ειδικούς αλγορίθµους αντίγραφα-στιγµιότυπα των δεδοµένων µας. Ουσιαστικά κρατάµε δύο εικόνες της βάσης σε κάποια µορφή, µια παλαιά 18

και µια νέα και τις συγκρίνουµε προσπαθώντας να βρούµε τις αλλαγές. Η διαδικασία είναι σχετικά απλή, αλλά και αργή γι' αυτό χρησιµοποιούµε ειδικούς αλγόριθµους µε σκοπό την βελτιστοποίησή της. Αυτή µπορεί να επιτευχθεί σε διάφορα επίπεδα, όπως αυτό της κωδικοποίησης της πληροφορίας, αλλά και στον τρόπο σύγκρισης, στοχεύοντας την µείωση του χρονοβόρου διαβάσµατος από κάποιο µαγνητικό αποθηκευτικό µέσο και του φόρτου του επεξεργαστή. ύο τύποι αλγορίθµων είναι οι επικρατέστεροι και τους οποίους θα εξετάσουµε στην συνέχεια. Ο αλγόριθµος µε συµπίεση και ο αλγόριθµος του παραθύρου. 2.6.3.1 Αλγόριθµοι µε συµπίεση Ο αλγόριθµος αυτός στηρίζεται στην ταξινόµηση των εγγραφών και στην σύγκριση τους µε βάση το πρωτεύον κλειδί και τα δεδοµένα τους. Στην αρχή έχουµε δύο στιγµιότυπα της βάσης µας. Ουσιαστικά πρόκειται για αρχεία που περιέχουν τους πίνακες της βάσης και τις εγγραφές τους. Για κάθε πίνακα που υπάρχει στα αρχεία αυτά πραγµατοποιούµε µια ταξινόµηση µε βάση το πρωτεύον του κλειδί. Έπειτα πηγαίνουµε και συγκρίνουµε εγγραφή προς εγγραφή. Λόγω της ταξινόµησης θα µπορούµε εύκολα να βρούµε τις αλλαγές στους πίνακες. Εάν βρούµε ένα κλειδί στον νεώτερο χρονικά πίνακα που δεν υπάρχει στον παλαιό σηµαίνει πως έγινε κάποια εισαγωγή εγγραφής, ενώ στην αντίθετη περίπτωση που το κλειδί υπάρχει µόνο στον παλαιό πίνακα, θα έγινε κάποια διαγραφή. Στην περίπτωση που βρίσκουµε δύο ίσα κλειδιά, τότε θα πρέπει να ελέγξουµε και τα υπόλοιπα δεδοµένα, ώστε να βρούµε εάν υπάρχει κάποια ανανέωση στα υπόλοιπα πεδία της εγγραφής. Ο αλγόριθµος αυτός είναι απλός και επιδέχεται πολλές βελτιώσεις. Η πρώτη βελτίωση είναι στον τρόπο που γίνεται η ταξινόµηση. Μπορεί να χρησιµοποιηθεί κάποιου είδους quicksort ή κάποια mergesort. εδοµένου ότι ο όγκος των στιγµιότυπων της βάσης θα είναι αρκετά µεγάλος, θα πρέπει να προταθεί µια µέθοδος που να χρησιµοποιεί τεχνικές ταξινόµησης εκτός µνήµης (external sorting), ώστε ακόµα και όταν το µέγεθος του στιγµιότυπου της βάσης µας είναι µεγαλύτερο από την φυσική µνήµη που υπάρχει διαθέσιµη, να µην καταλήγουµε σε αποτυχία. Μια δεύτερη βελτίωση που θα πρέπει να ληφθεί υπόψη είναι η µείωση του µεγέθους της επεξεργαζόµενης πληροφορίας. Θα µπορούσε να επιβληθεί κάποιο σύστηµα που να κωδικοποιεί ή να συµπιέζει την πληροφορία ώστε να µην χρειάζεται να επεξεργαζόµαστε κάθε φορά όλο τον όγκο του στιγµιότυπου. Με µια προσεκτικότερη µατιά στον αλγόριθµο βλέπουµε πως κάθε στιγµή πρέπει να ξέρουµε και να συγκρίνουµε τα κλειδιά των εγγραφών και σε περίπτωση που είναι ίσα, να συγκρίνουµε και τα δεδοµένα τους. Εάν κωδικοποιήσουµε τα υπόλοιπα πεδία εκτός των κλειδιών σε µια συµπιεσµένη µορφή, µπορούµε να µειώσουµε το µέγεθος της φυσικής µνήµης που απαιτείται για την σύγκριση. Υπάρχουν δύο προσεγγίσεις. Στην πρώτη διατηρούµε το παλιό στιγµιότυπο σε συµπιεσµένη µορφή και το καινούργιο σε ασυµπίεστη. Κάνουµε την ταξινόµηση και συγκρίνουµε τα 19

κλειδιά των εγγραφών, όπως εξηγήσαµε. Σε κάθε περίπτωση (INSERT/UPDATE/DELETE), δεν µας χρειάζονται τα δεδοµένα των υπόλοιπων πεδίων του παλιού στιγµιότυπου. Στην δεύτερη προσέγγιση, συµπιέζουµε και τα δύο στιγµιότυπα από την αρχή. Η αναζήτηση των δεδοµένων στα υπόλοιπα πεδία θα χρειαστεί µόνο στην περίπτωση που θα έχουµε κάποιο INSERT/UPDATE, αφού στο DELETE χρειαζόµαστε να αναφέρουµε µόνο το κλειδί. Με τον τρόπο αυτό κερδίζουµε σε χώρο στην φυσική µνήµη, µειώνοντας τον όγκο του νέου στιγµιότυπου που ταξινοµούµε, αλλά αυξάνουµε τις προσπελάσεις στον σκληρό δίσκο, που είναι ως επί το πλείστον πολύ πιο αργές σε σχέση µε αυτές της φυσικής µνήµης. Λαµβάνοντας υπόψη ότι συνήθως οι αλλαγές είναι ένα µικρό ποσοστό του συνόλου των εγγραφών, τότε έχουµε πραγµατοποιήσει µια αρκετά καλή βελτιστοποίηση του αλγορίθµου. Πιο συγκεκριµένα, στην δικιά µας περίπτωση κωδικοποιούµε τα δεδοµένα µε τέτοιο τρόπο, που η αντίστροφη διαδικασία δεν είναι εφικτή προς όφελος ενός αρκετά ικανοποιητικού ποσοστού συµπίεσης Η κωδικοποίηση αυτή λέγεται CRC (Cyclic Redundancy Checksum) και βασίζεται στην κωδικοποίηση των δεδοµένων µας σε απλούς δυαδικούς αριθµούς. Με µια διαδικασία αντιστοιχίζουµε σε κάθε γραµµή από δεδοµένα ένα ακέραιο, ο οποίος είναι σταθερού µεγέθους, ανεξαρτήτως των πεδίων και των µεγεθών των τιµών. Η διαδικασία αυτή βασίζεται σε πράξεις πολυωνύµων. Θεωρούµε τέσσερα πολυώνυµα. Μ, είναι η πλειάδα του πίνακα για την οποία θέλουµε να βρούµε το checksum, έστω ότι είναι µήκους k bit P, είναι το προσυµφωνηµένο πολυώνυµο στο οποίο βασίζεται ο αλγόριθµος, µήκους n+1 bit F (FCS), είναι το παραγόµενο πολυώνυµο, που αποτελεί και το checksum, είναι µήκους n bit Τ, είναι το πολυώνυµο που προκύπτει παραθέτοντας τα M,F. Μαθηµατικά δηλώνεται ως Τ=Μ*x n +F. Είναι µήκους k+n bit. Σχήµα 8 Σχεδιασµός CRC σε επίπεδο υλικού Η κύρια ιδέα του αλγορίθµου είναι ότι το FCS παράγεται µε γνώµονα το υπόλοιπο της διαίρεσης T/P να είναι µηδενικό. Το Τ παράγεται αφού ολισθήσουµε αριστερά το Μ κατά n bit και προσθέσουµε το F στο αποτέλεσµα. Θέλουµε το Τ να διαιρείται ακριβώς µε το προσυµφωνηµένο πολυώνυµο P, οπότε πρέπει να βρούµε το κατάλληλο checksum F. Έστω, 20

ότι κάνουµε την διαίρεση Μ*x n /P = Q+R/P. Το Q είναι το πηλίκο (quotient) και το R το υπόλοιπο (reminder). Το υπόλοιπο αυτό αποτελεί και το FCS T = Μ*x n +R. Θα δείξουµε ότι αυτή η επιλογή για το FCS κάνει το Τ να διαιρείται ακριβώς µε το P. T/P = (Μ*x n +R)/P = Μ*x n /P + R/P = Q + R/P + R/P = Q + (R+R)/P = Q, χωρίς υπόλοιπο. Αυτό διότι χρησιµοποιούµε αριθµητική Modulo-2, στην οποία κάθε αριθµός που προστίθεται µε το εαυτό του δίνει 0. Το checksum που παράγεται είναι σχεδόν µονοσήµαντο. Χρησιµοποιώντας το κατάλληλο προσυµφωνηµένο πολυώνυµο (P) σαν γεννήτρια µπορούµε να πετύχουµε αρκετά µεγάλη ακρίβεια. Στην παρούσα υλοποίηση χρησιµοποιήθηκε η έκδοση CRC-32 της zlib, µιας βιβλιοθήκης συµπίεσης που διατίθεται σαν ελεύθερο λογισµικό στο διαδίκτυο, και δίνει πιθανότητα λάθους 1 στις 2.3283 x 10-10. Είναι προφανές ότι η παραπάνω µεθοδολογία λειτουργεί σε δυαδικό επίπεδο και αντιλαµβάνεται οποιοδήποτε είδος πληροφορίας σαν µια σειρά από bits. Έτσι µπορούµε να κωδικοποιήσουµε από απλούς τύπους δεδοµένων (όπως ακεραίους) έως πολύπλοκους, όπως strings και ηµεροµηνίες. Για παράδειγµα έστω ότι η πλειάδα προς κωδικοποίηση είναι 10 bits µήκος: Μ= 1010001101 (σε δυαδική µορφή) Έστω επίσης ότι το CRC πολυώνυµο που χρησιµοποιούµε είναι µεγέθους 6 bits: P=110101 To FCS που θα δηµιουργηθεί θα είναι µήκους 5 bits (ένα bit λιγότερο από αυτό του CRC) : F=11110 Έτσι το πολυώνυµο ΜF (101000110111110) διαιρείται ακριβώς µε το P. Με τον τρόπο αυτό, τα δεδοµένα µας συρρικνώνονται και έχουµε να ελέγξουµε ένα πολύ µικρότερο σύνολο από ότι στην αρχή, ενώ σαν αριθµοί συγκρίνονται πιο εύκολα. Το CRC είναι τεχνική που χρησιµοποιείται στα δίκτυα επικοινωνιών για πρόγνωση λαθών και ορθή µεταφορά δεδοµένων. 2.6.3.2 Αλγόριθµος µε παράθυρο Η µέθοδος µε τον αλγόριθµο του παραθύρου βασίζεται στην βελτίωση από την άποψη των µειωµένων προσπελάσεων στον δίσκο, οι οποίες είναι και ιδιαίτερα χρονοβόρες. Οι διάφοροι αλγόριθµοι σύγκρισης στιγµιότυπων, εάν δεν εντοπίσουν όλες τις αλλαγές, εµφανίζουν useless delete-insert και insert-delete ζευγάρια. Τα πρώτα αποτελούν περίπτωσης ίδιων πλειάδων και στα δύο στιγµιότυπα για τα οποία ο αλγόριθµος έβγαλε πρώτα ένα delete και µετά ένα insert και τα δεύτερα είναι ζευγάρια για τα οποία προκύπτουν insert ακολουθούµενα από delete. Και τα δύο εισάγουν περιττή πληροφορία στα δεδοµένα που θα εξάγουµε, αλλά ιδίως τα δεύτερα θα δηµιουργήσουν προβλήµατα ασφαλείας, καθώς ένα Insert για κάτι που ήδη υπάρχει θα αγνοηθεί, ενώ το delete θα το διαγράψει. Για να γλιτώσουµε από τέτοιες 21

καταστάσεις στέλνουµε πρώτα τα delete και µετά τα insert στην αποθήκη µας. Ο αλγόριθµος αυτός θεωρεί ότι δύο ίδιες πλειάδες στα δύο στιγµιότυπα θα βρίσκονται αν όχι στην ίδια ακριβώς θέση, τουλάχιστον σε κάποια θέση κοντά. Η µετατόπιση µπορεί να συµβεί από το σύστηµα διαχείρισης για καλλίτερη ίσως εκµετάλλευση του αποθηκευτικού χώρου. Εποµένως, δεν είναι αναγκαίο για κάθε πλειάδα να ελέγξουµε ολόκληρο το άλλο στιγµιότυπο, αρκεί να κοιτάξουµε σε µια συγκεκριµένη περιοχή του, δηλαδή σε κάποιο παράθυρο. Οπότε, διαβάζουµε ένα κοµµάτι από κάθε στιγµιότυπο, τα συγκρίνουµε και διαγράφουµε τις όµοιες εγγραφές. Τις υπόλοιπες τις κρατάµε σε δύο ειδικές δοµές στην µνήµη, µια για κάθε αρχείο. Στην επόµενη σύγκριση θα συµπεριληφθούν και αυτές. Η διαδικασία αυτή συνεχίζεται µέχρι να επεξεργαστούµε όλες τις εγγραφές και των δύο στιγµιότυπων. Κατά την διαδικασία αυτή βρίσκουµε όλα τα UPDATE που ίσως υπάρχουν. Στο τέλος, όσες εγγραφές έχουν µείνει στις ειδικές δοµές της µνήµης θα είναι ή INSERT ή DELETE ανάλογα µε το στιγµιότυπο προέλευσης τους. Στην ουσία εκµεταλλευόµαστε την ιδιότητα του συστήµατος να µην µετακινεί δεδοµένα κατά τις ανακατατάξεις πολύ µακριά από την αρχική θέση τους και συγκεκριµένα εκτός διαφορετικής φυσικής υποµονάδας. 2.6.3.3 Συµπεράσµατα για τις µεθόδους των στιγµιότυπων Και οι δύο µέθοδοι προσπαθούν να ελαχιστοποιήσουν τον χρόνο εκτέλεσης της σύγκρισης δύο στιγµιότυπων µιας βάσης, στηριζόµενοι σε σηµαντικές λεπτοµέρειες. Τα CRC έχουν το πλεονέκτηµα ότι µειώνουν τον όγκο των παραγόµενων στιγµιότυπων, οπότε µειώνουν και την πολυπλοκότητα των συγκρίσεων. Από την άλλη πλευρά ο αλγόριθµος παραθύρου µειώνει τις προσπελάσεις στην µνήµη, που επιφέρουν σηµαντικές καθυστερήσεις. Γενικά, ο πρώτος παρουσιάζει καλύτερες αποδόσεις σε συστήµατα µε µεγάλη µνήµη ή συγκριτικά πολλά δεδοµένα. Στις υπόλοιπες περιπτώσεις, όπου οι προσπελάσεις στον δίσκο αποτελούν σηµαντική επιβάρυνση, ο δεύτερος αλγόριθµος πλεονεκτεί. 2.6.4 Σύγκριση των µεθόδων Συγκριτικά µε τις υπόλοιπες µεθόδους επαυξητικής εξαγωγής, η συγκεκριµένη παρουσιάζει µεγάλες απαιτήσεις σε αποθηκευτικό χώρο (σχεδόν τριπλάσιο), αφού απαιτεί να κρατάµε στιγµιότυπα τόσο της τωρινής όσο και της παλαιότερης βάσης κατά την επαυξητική εξαγωγή. Ο όγκος των δεδοµένων που θα µεταφερθούν προς την αποθήκη δεδοµένων διαφέρει. Μπορεί να είναι µεγάλος εάν αποφασίσουµε να εκτελέσουµε τις συγκρίσεις στην αποθήκη, αλλά µπορεί και να είναι µόνο οι αλλαγές εάν κάνουµε τις συγκρίσεις στο OLTP σύστηµα. Στην δεύτερη περίπτωση θα χρειαστούµε µεγάλη επεξεργαστική ισχύ, επιβαρύνοντας το σύστηµα δοσοληψιών. Σε κάθε περίπτωση πρέπει να λάβουµε υπόψη και την σύνδεση µεταξύ συστήµατος δοσοληψιών και αποθήκης δεδοµένων, την ταχύτητά της και την ποιότητά της. 22

Το µεγάλο πλεονέκτηµα της µεθόδου είναι ότι µε µικρές διαφοροποιήσεις εφαρµόζεται παντού και δεν χρειάζεται να υπάρχει ένα σύγχρονο σύστηµα διαχείρισης δοσοληψιών, όπως στις προηγούµενες περιπτώσεις. 2.7 Μετασχηµατισµός Ολοκλήρωση Μετά την εξαγωγή των δεδοµένων ακολουθεί το βήµα του µετασχηµατισµού και της ολοκλήρωσης. Αυτό συνήθως γίνεται στο χώρο του data staging, στον οποίο µπορεί να χρησιµοποιείται κάποιο ειδικό εργαλείο επεξεργασίας δεδοµένων ή κάποια ανεξάρτητη βάση δεδοµένων ή η διαδικασία αυτή να γίνεται στις πηγές εάν αυτές το υποστηρίζουν. Εκτός από καθαρισµό των δεδοµένων και έλεγχο της ποιότητας τους, ώστε να ανταποκριθούν στις απαιτήσεις της αποθήκης δεδοµένων, θα πρέπει να γίνουν και κάποιες µετατροπές τύπων. Για παράδειγµα θα χρειαστεί ίσως να κάποιο πεδίο ηµεροµηνίας να χωριστεί στα πεδία χρόνος, µήνας και ηµέρα ή κάποιες τιµές από "Α","Β" να γίνουν "1","2". Ακόµα πιο κοινές µετατροπές είναι από το EBCDIC σύνολο χαρακτήρων που χρησιµοποιείται στα mainframes σε ASCII που αποτελεί το σύγχρονο πρότυπο. Γενικώς, το πιο πιθανό είναι το λογικό και φυσικό µοντέλο της αποθήκης να µην συµπίπτει µε αυτό τον πηγών, οπότε και να χρειαστεί κάποια µετατροπή µεταξύ τύπων ηµεροµηνίας, συµβολοσειράς, αριθµού και χαρακτήρα. Σε τέτοιες περιπτώσεις πολύ χρήσιµο είναι και ένα πλήρες σύνολο συναρτήσεων χειρισµού συµβολοσειρών και ελέγχων τύπων. Για παράδειγµα µια συνάρτηση, που δίνει µια κοινή µορφή σε όλα τα ονοµατεπώνυµα των πελατών, κάνει τις αναφορές του συστήµατος πιο εύκολες στην ανάγνωση και πιο εµφανίσιµες. Σε αυτή την φάση πρέπει να γίνει και άλλη µια πολύ σηµαντική εργασία. Η ανάθεση καινούργιων κλειδιών στις εγγραφές που θα µπουν στην αποθήκη, τα λεγόµενα surrogate keys. Αυτό είναι ένα πολύ σηµαντικό βήµα στις αποθήκες δεδοµένων. Το να χρησιµοποιείς τα κλειδιά των συστηµάτων δοσοληψίας είναι µεγάλο λάθος, αφού είναι στην ευχέρεια των διαχειριστών τους πότε θα αλλάξουν την πολιτική τους και να δηµιουργήσουν µεγάλο πρόβληµα στην διαχείριση της αποθήκης. Για παράδειγµα µπορεί να δηµιουργήσουν τα εξής προβλήµατα : να ξαναχρησιµοποιηθούν κλειδιά που αυτοί έχουν διαγράψει, αλλά στην αποθήκη χρησιµοποιούνται για ιστορικά στοιχεία να κάνουν λάθος και να ξαναχρησιµοποιήσουν κλειδί που δεν έχουν διαγράψει να ανακατανέµει τα κλειδιά για να αναγνωρίσει τυχόν σκουπίδια να γίνει κάποια αλλαγή στα δεδοµένα, οπότε πρέπει να γνωρίζουµε µε τα αντίστοιχα δεδοµένα της διάστασης της αποθήκης ( slowly changing dimensions ) 23

να αλλάξει τον τύπο των κλειδιών λόγω χώρου ή αλλαγή πολιτικής, π.χ. να πάει από ακέραιους σε αλφαριθµητικά ή από ακέραιους 12-byte σε 20-byte να υπάρξει περίπτωση συγχώνευσης, οπότε να πρέπει να συγχωνευτούν και κλειδιά από δυο διαφορετικά συστήµατα. Για αυτό θα πρέπει να υπάρξει ένας µηχανισµός παραγωγής ξεχωριστών κλειδιών για την αποθήκη που θα είναι γενικά και ευκολόχρηστα στις πράξεις ένωσης µεταξύ πινάκων διαστάσεων και γεγονότων. Κάτι τέτοιο δεν ισχύει απαραίτητα για τα συστήµατα δοσοληψίας, τα οποία έχουν κλειδιά που αποτελούνται από ένωση άλλων κλειδιών ή είναι έξυπνα και από µόνα τους δίνουν πληροφορίες για την εγγραφή. Εκτός από τα παραπάνω σε αυτή την φάση πρέπει, πριν δηλαδή γίνει το φόρτωµα στην αποθήκη πρέπει να γίνει η ολοκλήρωση (integration). ηλαδή, να γίνει η σύνδεση όλων των δεδοµένων, που έρχονται από διαφορετικές πηγές. Αυτές οι διαφορετικές πηγές, τα διαφορετικά συστήµατα δοσοληψίας έχουν πολλές φορές κοινά δεδοµένα, τα οποία και πρέπει να ταιριάξουνε. Τέτοιες συγκρίσεις είναι αρκετά δύσκολο να γίνουν, αλλά εφόσον γίνουν και ανακαλυφθούν οι ίδιες εγγραφές πρέπει να δηµιουργηθεί µια κοινή που θα της δοθεί ένα καινούργιο surrogate κλειδί. Ταυτόχρονα θα πρέπει να έχει δηµιουργηθεί και ένας πίνακας, στον οποίο θα αντιστοιχούµε κλειδιά των πηγών µε surrogate κλειδιά. Έτσι θα µπορούµε να γνωρίζουµε και τις αντιστοιχίες την επόµενη φορά που θα γίνει η ενηµέρωση της αποθήκης και θα χρειαστεί να απεικονίσουµε σε αυτή κάποια αλλαγή που έγινε σε κάποια πηγή. Τέλος, θα πρέπει να προσέξουµε και να ελέγξουµε τους περιορισµούς ακεραιότητας που έχουµε ορίσει στην αποθήκη δεδοµένων. Ειδικά σχέσεις 1 προς 1 και 1 προς Ν µπορούν εύκολα να ελεγχθούν µε µια ταξινόµηση των πινάκων µε βάση τα κατάλληλα πεδία και σειριακή αναζήτηση σε αυτούς. 2.8 Ποιότητα εδοµένων Η ποιότητα των δεδοµένων εξαρτάται συνήθως από ένα σύνολο παραγόντων, που δεν ανήκουν στο προσωπικό, το οποίο είναι υπεύθυνο για την διαχείριση της αποθήκης δεδοµένων. Για να πετύχουµε υψηλή ποιότητα στα δεδοµένα µας πρέπει να υπάρχει ένα καλά σχεδιασµένο σύστηµα συγκέντρωσης των δεδοµένων από τις πηγές, ενώ παράλληλα οι πηγές δεν πρέπει να επιτρέπουν µεγάλο ποσοστό λαθών, αλλά να επιβάλλουν την σωστή καταχώρηση και την ακεραιότητα των δεδοµένων. Σε τελική ανάλυση τα δεδοµένα αυτά έχουν προέλθει από ανθρώπινη καταχώρηση και χρειάζεται σχολαστικότητα και ακριβή ενηµέρωση για τους εταιρικούς κανόνες, ώστε να έχουν µικρό ποσοστό λαθών. Επίσης, η πρώτη ενηµέρωση της αποθήκης δεδοµένων θα είναι µε ιστορικά δεδοµένα, που είναι σχεδόν 24