Αποθήκες Δεδομένων Αρχιτεκτονική, Μοντέλο Δεδομένων και Σχεδίαση
Περιεχόμενα Αποθήκες Δεδομένων Ορισμοί και χαρακτηριστικά αποθηκών δεδομένων Διαφορές βάσεων και αποθηκών δεδομένων Μοντέλα αποθηκών δεδομένων Μοντέλο Διαστάσεων Πίνακες διαστάσεων (dimension tables) και πίνακες συμβάντων (fact tables) Αρχιτεκτονικές δομές αποθήκης δεδομένων, Σχήμα αστέρα (star schema), σχήμα χιονονιφάδας (snowflake schema) Διαδικασία Υλοποίησης - Ροή Επεξεργασίας Extract-Transform-Load (ETL)
Αποθήκη Δεδομένων Ορισμοί Βάση δεδομένων που χρησιμοποιείται κυρίως για την λήψη αποφάσεων σε ένα οργανισμό, θεματικά προσανατολισμένη, έχει ολοκληρωμένα δεδομένα, τα οποία διατηρούνται σε βάθος χρόνου χωρίς να διαγράφονται. W.H. Inmon, 1992 Μια κεντρική ΒΔ με σκοπό: την ολοκλήρωση (integration) ετερογενών πηγών πληροφοριών συνάθροιση όλων των δεδομένων σε μία τοποθεσία την διαφοροποίηση μεταξύ των OLTP συστημάτων και των συστημάτων επεξεργασίας απόδοση εφαρμογών και διαθεσιμότητα του συστήματος
Αποθήκη Δεδομένων-Θεματικά Προσανατολισμένη Οργανωμένη γύρω από κύρια αντικείμενα Π.χ. πελάτες, προϊόντα, πωλήσεις Εστιάζει στη μοντελοποίηση και ανάλυση δεδομένων για τη λήψη αποφάσεων, όχι στις καθημερινές διαδικασίες ή την επεξεργασία συναλλαγών Παρέχει μια απλή και συνοπτική εικόνα γύρω από συγκεκριμένα θέματα, αποκλείοντας δεδομένα που δεν είναι χρήσιμα στη διαδικασία υποστήριξης αποφάσεων
Αποθήκη Δεδομένων - Ολοκληρωμένη Ενσωματώνει πολλαπλές, ετερογενείς πηγές δεδομένων Σχεσιακές βάσεις δεδομένων, αρχεία, εγγραφές συναλλαγών Χρησιμοποιούνται τεχνικές καθαρισμού και ενσωμάτωσης δεδομένων Εξασφαλίζει συνέπεια στην ονοματοδοσία, τις δομές κωδικοποίησης, τα χαρακτηριστικά γνωρίσματα κλπ. μεταξύ διαφορετικών πηγών δεδομένων Π.χ. Τιμή διανυκτέρευσης: διαφορές στο νόμισμα, φόρος, κάλυψη πρωινού και στάθμευση Όταν τα δεδομένα μεταφέρονται στην αποθήκη, μετατρέπονται κατάλληλα
Αποθήκη Δεδομένων Διατήρηση Δεδομένων Ο χρονικός ορίζοντας για την αποθήκη δεδομένων είναι σημαντικά μεγαλύτερος από αυτόν μιας συμβατικής βάσης δεδομένων Λειτουργική βάση δεδομένων: τρέχοντα δεδομένα Δεδομένα αποθήκης δεδομένων: παρέχουν πληροφορίες από ιστορική άποψη (π.χ. τα τελευταία 5-10 χρόνια) Κάθε δομή κλειδιού στην αποθήκη δεδομένων Περιέχει ένα στοιχείο χρόνου, ρητά ή σιωπηρά Όμως, το κλειδί των λειτουργικών δεδομένων δεν είναι απαραίτητο να περιέχει αυτό το στοιχείο
Αποθήκη Δεδομένων Στατικά Δεδομένα Ανεξάρτητη Βάση Δεδομένων Μια φυσικά ξεχωριστή αποθήκευση μετασχηματισμένων δεδομένων, που προέρχονται από το λειτουργικό περιβάλλον Στατική Βάση Δεδομένων Η καθημερινή ενημέρωση των δεδομένων δεν συμβαίνει στο περιβάλλον της αποθήκης δεδομένων Δεν απαιτεί μηχανισμούς επεξεργασίας συναλλαγών, ανάκτησης και ελέγχου ταυτόχρονης πρόσβασης στα δεδομένα Απαιτεί μόνο δύο λειτουργίες πρόσβασης δεδομένων: την αρχική φόρτωση των δεδομένων και την πρόσβαση στα δεδομένα
Χαρακτηριστικά Αποθηκών Δεδομένων Μια βάση δεδομένων σχεδιασμένη για αναλυτική χρήση, η οποία χρησιμοποιεί δεδομένα από διάφορες πηγές, Η χρήση της είναι προσανατολισμένη στην ανάκτηση και επεξεργασία δεδομένων, Το περιεχόμενό της ανανεώνεται περιοδικά και κατά κανόνα γίνονται προσθήκες νεότερων δεδομένων, Περιέχει επίκαιρα αλλά και ιστορικά δεδομένα, ώστε να δίνει μια ιστορική διάσταση στην πληροφορία που παρέχει, Περιέχει, συνήθως, μεγάλου μεγέθους πίνακες δεδομένων, Χρησιμοποιείται από ένα σχετικά μικρό αριθμό χρηστών.
Χαρακτηριστικά Αποθηκών Δεδομένων Εννοιολογική εναρμόνιση δεδομένων Οι διαφορετικές πηγές δεδομένων του ίδιου οργανισμού, μοντελοποιούν τις ίδιες οντότητες με διαφορετικούς τρόπους Η Αποθήκη Δεδομένων περιλαμβάνει το σύνολο αυτών των δεδομένων κάτω από ένα εναρμονισμένο σχήμα βάσης δεδομένων Ποιότητα Δεδομένων Η ποιότητα των δεδομένων στις πηγές είναι συχνά προβληματική (τα δεδομένα μπορεί να μην είναι πλήρη, να έχουν ασυνέπειες, να είναι παλιά, να παραβιάζουν τους λογικούς και δομικούς κανόνες αξιοπιστίας, κλπ.) Πριν την εισαγωγή στις αποθήκες δεδομένων καθαρισμός, επίσης λειτουργεί και ως ένα ενδιάμεσο σύστημα στον οποίο καθαρίζουμε τα δεδομένα Απόδοση Οι εφαρμογές αναλυτικής επεξεργασίας επιταχύνονται αν τα δεδομένα οργανωθούν με μη παραδοσιακούς τρόπους (π.χ., απο-κανονικοποιημένα δεδομένα, συγκεντρωτικά στοιχεία)
Διαφορές Βάσεων και Αποθηκών Δεδομένων Ανάγκες Αυτοματισμός καθημερινών εργασιών / Άντληση και επεξεργασία πληροφοριών για χάραξη στρατηγικής Μορφή Δεδομένων Κανονικοποιημένα / Από-κανονικοποιημένα Τύπος Δεδομένων Λεπτομερή Λειτουργικά / Συνοπτικά, Αθροιστικά Όγκος Δεδομένων 100 GB / 1 TB Φύση Δεδομένων Δυναμικά / Τρέχοντα Στατικά, Ιστορικά
Διαφορές Βάσεων και Αποθηκών Δεδομένων Τροποποιήσεις Συνεχείς / Περιοδικές Φόρτος Δοσοληψίες με πρόσβαση λίγων εγγραφών / Ερωτήσεις που σαρώνουν εκατομμύρια εγγραφών Τυπικοί Χρήστες Χαμηλόβαθμοι Υπ. / Υψηλόβαθμοι Υπ. Αριθμός Χρηστών Χιλιάδες / Δεκάδες Εστίαση Εισαγωγή Εξαγωγή Δεδομένων / Πληροφοριών
Μοντέλα Αποθήκης Δεδομένων Αποθήκη δεδομένων οργανισμού Περιλαμβάνει δυνητικά όλα τα δεδομένα ενός οργανισμού. Θεματικό Υποσύνολο Δεδομένων (Data mart) Υποσύνολο των δεδομένων του οργανισμού προσανατολισμένο σε ένα συγκεκριμένο τμήμα του οργανισμού ή μια συγκεκριμένη ομάδα χρηστών. Ιδεατή αποθήκη δεδομένων Ένα σύνολο όψεων (views) στην λειτουργική βάση δεδομένων
Υλοποίηση Αποθηκών Δεδομένων Σχεδιασμός μετάβασης Καθορισμός του σκοπού και των ερωτημάτων που θα απαντηθούν Επιλογή πηγών δεδομένων Μετασχηματισμός Δεδομένων Αντιστοίχιση των πεδίων μεταξύ της πρωτογενούς πληροφορίας και του σχήματος της Θέματα ποιότητας δεδομένων Καθαρισμός δεδομένων Υλοποίηση σχήματος αποθήκης δεδομένων Ανανέωση Δεδομένων
Μεθοδολογία Υλοποίησης Αποθηκών Δεδομένων Καθορισμός του σκοπού και προσδιορισμός των πηγών δεδομένων, Δημιουργία του πολυδιάστατου μοντέλου δεδομένων με προσδιορισμό των διαστάσεων και των μετρικών, Υλοποίηση του πολυδιάστατου μοντέλου δεδομένων σε μια βάση δεδομένων, Υλοποίηση των διαδικασιών ETL, Προσδιορισμός νέων ή δεδομένων που έχουν μεταβληθεί Μετασχηματισμός δεδομένων σύμφωνα με το πολυδιάστατο μοντέλο δεδομένων Αρχική μεταφορά των δεδομένων στην Αποθήκη Δεδομένων, Σχεδιασμός διαδικασιών για ενημέρωση μετά από αλλαγές στα αρχικά δεδομένα, Υλοποίηση αναλυτικών καταστάσεων, αναλυτική επεξεργασία δεδομένων, κλπ.
Διαδικασία Υλοποίησης Αποθηκών Δεδομένων Προσδιορισμός των πηγών δεδομένων και των τύπων τους Συστήματα ΒΔ, ιστότοποι, αρχεία δεδομένων, υπολογιστικά φύλλα και προσωπικές βάσεις δεδομένων ETL (Extract, Transform, and Load) Εξαγωγή (Extract) Μετασχηματισμός (Transform) Ενσωμάτωση και συσχέτιση των δεδομένων με δεδομένα από άλλες πηγές Επικύρωση δεδομένων σύμφωνα με τους κανόνες ποιότητας των δεδομένων Τροποποίηση του περιεχομένου ή της δομής των δεδομένων Υπολογισμός παραγόμενων ή συγκεντρωτικών τιμών Φόρτωση (Load)
Καθαρισμός Δεδομένων Διαφορετική κωδικοποίηση, Τιμές που λείπουν ή είναι λάθος Δεδομένα που αντιπροσωπεύουν την ίδια οντότητα Δεδομένα που παραβιάζουν τους κανόνες της βάσης Διπλοεγγραφές, παραβιάσεις πρωτεύοντος ή ξένου κλειδιού, τιμές εκτός ορίων, παραβιάσεις λογικών κανόνων,... Συνώνυμα και συγκρούσεις Ελλιπή δεδομένα
Δομή Συστήματος Αποθήκης Δεδομένων Πηγές Δεδομένων ETL Αποθήκη Δεδομένων Επεξεργασία OLAP Εξαγωγή Μετασχηματισμός Φόρτωση Δεδομένων Data Mart-1 Data Mart-2 Εκθέσεις Διαγράμματα Data Mart-2 Εξόρυξη Δεδομένων
Πολυδιάστατο Μοντέλο Δεδομένων Πολυδιάστατο Μοντέλο Δεδομένων (Dimensional Model) Διαστάσεις (dimensions) Πίνακες διαστάσεων (dimension tables) Ποιοτικές / περιγραφικές μεταβλητές που καθορίζουν το περιβάλλον των μετρικών Απλές / Σύνθετες Τοποθεσία (Χώρα, Περιφέρεια, Πόλη) Χρόνος (Έτος, Μήνας, Εβδομάδα, Ημέρα, Ώρα) Προϊόν (Ονομασία, Κατηγορία) Πίνακες γεγονότων ή συμβάντων (fact tables) Αριθμητικές μετρήσεις (measures / facts) Μετρήσιμα μεγέθη (μετρικές) που ενδιαφέρουν (παραγγελίες, πωλήσεις, αποθέματα, κα.) Σύνδεση μετρήσεων με τις διαστάσεις
Πολυδιάστατο Μοντέλο Δεδομένων Πίνακας Διάστασης (Dimension table) Περιέχει πληροφορία σχετική με μια διάσταση. Περιέχει ένα κλειδί και μία στήλη για κάθε επίπεδο της διάστασης. Πίνακας Δεδομένων (Fact table) Για κάθε διάσταση έχει και ένα εξωτερικό κλειδί στον αντίστοιχο πίνακα και για κάθε μέτρο μια στήλη. Το πρωτεύον κλειδί είναι ο συνδυασμός των κλειδιών των διαστάσεων ή ένα τεχνητό υποκατάστατο κλειδί Εκφυλισμένες Διαστάσεις Degenerate Dimensions (DD) Δεν υπάρχει αντίστοιχος πίνακας διαστάσεων
Ιεραρχίες Επιπέδων Διαστάσεων Μια διάσταση μοντελοποιεί όλους τους τρόπους με τους οποίους τα δεδομένα μπορούν να συναθροιστούν σε σχέση με μια συγκεκριμένη παράμετρο του περιεχομένου τους. Ημερομηνία, Προϊόν, Τοποθεσία, Πωλητής, Y e a r Κάθε διάσταση έχει μια σχετική ιεραρχία επιπέδων συνάθροισης των δεδομένων (hierarchy of levels). Αυτό σημαίνει, ότι η διάσταση μπορεί να θεωρηθεί από πολλά επίπεδα αδρομέρειας. Ημερομηνία: μέρα, εβδομάδα, μήνας, χρόνος, Ο χρήστης μπορεί να πλοηγηθεί από το ένα επίπεδο στο άλλο, δημιουργώντας νέους κύβους κάθε φορά M o n th D a y W e e k Αδρομέρεια: το αντίθετο της λεπτομέρειας
Ιεραρχία Διάστασης (Τόπος) all all region Europe... North_America country Germany... Spain Canada... Mexico city Frankfurt... Vancouver... Toronto office L. Chan... M. Wind
Product Κύβοι και Ιεραρχίες Διαστάσεων Sales volume Διαστάσεις: Product, Region, Date Ιεραρχίες διαστάσεων: Industry Country Year Category Region Quarter Month Product City Month Week Store Day
Αργά Μεταβαλλόμενες Διαστάσεις Αργά Μεταβαλλόμενες Διαστάσεις Slow Changing Dimensions (SCD ) Αργά μεταβαλλόμενες γιατί οι αλλαγές είναι πολύ σπάνιες Τύπου 1: Η μεταβολή αντικαθιστά την προηγούμενη τιμή Συνήθως η προηγούμενη τιμή είναι λάθος (π.χ. Αλλαγή ημερομηνίας γέννησης) Τύπου 2: Κάθε μεταβολή δημιουργεί μια νέα εγγραφή. Έκδοση (version) Ημερομηνία έναρξης Ημερομηνία λήξης Π.χ. Αλλαγή διεύθυνσης
Πρακτικά Προβλήματα Αλλαγές κλειδιών είτε λόγω αντικατάστασης κωδικών είτε λόγω προσθήκης εναλλακτικού/ών κωδικού/ών (συνύπαρξη κωδικών), Επαναχρησιμοποίηση διαγραμμένων ή αλλαγμένων κωδικών, Αλλαγές κωδικοποιήσεων λόγω αναδιοργάνωσης αρχείων και επαναχρησιμοποίηση κωδικών για άλλο σκοπό, Πολύ συχνά παρ όλον ότι δεν αλλάζουν οι κωδικοί αλλάζουν άλλα σημαντικά δεδομένα όπως η περιγραφή, Τα συστήματα παραγωγής λόγω ειδικών αναγκών συχνά αλλάζουν το μήκος ή την διαμόρφωση του κωδικού (από αριθμητικό σε αλφαριθμητικό ή αντίστροφα), όπως έγινε με την αλλαγή του μήκους του ΑΦΜ, Ενοποίηση κωδικών με σημαντικές διαφορές μεταξύ τους.
Υποκατάστατα Κλειδιών (Surrogate Keys) Κλειδιά παραγωγής (production keys) Υποκατάστατα Κλειδιών (surrogate keys) Ομογενοποίηση Κλειδιών Δημιουργία ακεραίων υποκατάστατων κλειδιών (integer surrogate keys) στην θέση των κλειδιών που χρησιμοποιούνται από τα συστήματα παραγωγής Η ένωση (join) μεταξύ πινάκων γίνεται με τα υποκατάστατα κλειδιά Επιλύονται τα προβλήματα που προαναφέρθηκαν Βελτιώνεται σημαντικά η απόδοση του συστήματος Τα υποκατάστατα κλειδιά αντικαθιστούν πλήρως τα κλειδιά των αρχείων παραγωγής σε όλες τις χρήσεις τους σε όλους τους πίνακες.
Λογικό Σχήμα Αποθήκης Δεδομένων Σχήμα Αστέρα (Star Schema) Σχήμα Χιονονιφάδας (Snowflake Schema) Αστερισμοί σχημάτων (Fact Constellation) Διαχείριση Συναθροισμένων Δεδομένων (Aggregated data)
Σχήμα Αστέρα (Star Schema) Ένας κεντρικός πίνακας μετρήσεων, με τις μετρήσεις διαφόρων μεγεθών συνδεδεμένος με ένα σύνολο από πίνακες διαστάσεων, μέσω ξένων κλειδιών. Για κάθε διάσταση του μοντέλου, δημιουργείται ένας πίνακας, ο οποίος περιέχει όλες τις πληροφορίες όλων των επιπέδων της διάστασης. Αποκανονικοποιημένοι πίνακες Πλεονέκτημα Άμεση υλοποίηση μοντέλου διαστάσεων Αύξηση της απόδοσης και εύκολη κατανόηση των δεδομένων.
Σχήμα Αστέρα - Παράδειγμα time time_key day day_of_the_week month quarter year branch branch_key branch_name branch_type Measures Sales Fact Table time_key item_key branch_key location_key units_sold dollars_sold avg_sales item item_key item_name brand type supplier_type location location_key street city state_or_province country 29
Σχήμα Αστέρα - Παράδειγμα
Σχήμα Αστέρα - Παράδειγμα
Σχήμα Αστέρα - Παράδειγμα Time Time Code Quarter Code Quarter Name Month Code Month Name Date Account Account Code KeyAccount Code KeyAccountName Account Name Account Type Account Market SALES Geography Code Time Code Account Code Product Code Dollar Amount Units Geography Geography Code Region Code Region Manager State Code City Code... Product Product Code Product Name Brand Code Brand Name Prod. Line Code Prod. Line Name
Σχήμα Χιονονιφάδας (Snowflake Schema) Βελτίωση του σχήματος αστέρα, στο οποίο η ιεραρχία διαστάσεων κανονικοποιείται σε ένα σύνολο από μικρότερους πίνακες διαστάσεων. Είναι πιο τυπικό σχήμα και εγγυάται την ακεραιότητα των δεδομένων, αλλά είναι πιο αργό στις απαντήσεις των ερωτήσεων. Κανονικοποιημένη εκδοχή του σχήματος αστέρα. Για κάθε επίπεδο της ιεραρχίας των διαστάσεων εισάγουμε και ένα δικό του πίνακα.
Σχήμα Χιονονιφάδας: Παράδειγμα Account attributes Account Code AccountName KeyAccount KeyAcc Code KeyAcc Name Region Region Code Region Mgr State State Code State Name City City Code City Name Geography Postal Code Region Code State Code City Code Account Account Code KeyAccount Code SALES Postal Code Time Code Account Code Product Code Dollar Amount Units Product Product Code Prod Line Code Brand Code Time Time Code Quarter Code Month Code Quarter Quarter Code QuarterName Month Month Code Month Name Product Product Code ProductName Brand Brand Code Brand Name ProdLine ProdLineCode ProdLineName
Σχήμα Χιονονιφάδας: Παράδειγμα time time_key day day_of_the_week month quarter year Sales Fact Table time_key item_key item item_key item_name brand type supplier_key supplier supplier_key supplier_type branch branch_key branch_name branch_type Measures branch_key location_key units_sold dollars_sold avg_sales location location_key street city_key city city_key city state_or_province country
Αστερισμοί (Constellation Schema) Πολλαπλοί πίνακες γεγονότων που μοιράζονται πίνακες διαστάσεων, θεωρούνται ως συλλογή αστεριών, και ονομάζονται σχήματα γαλαξιών ή αστερισμοί γεγονότων Όταν χρειάζεται να υπάρχουν πολλοί πίνακες γεγονότων (fact table) οι οποίοι να μοιράζονται πίνακες διαστάσεων (dimension tables) Συχνό φαινόμενο στις Αποθήκες DW, πιο σπάνιο στα data marts
Σχήμα Αστερισμού
Δομή Αρχικής Βάσης Δεδομένων
Πολυδιάστατο Μοντέλο Δεδομένων