Υποστήριξη Αποφάσεων Γεώργιος Ευαγγελίδης (βασισμένο στο κεφ. 23 του βιβλίου «Συστήματα Διαχείρισης Βάσεων Δεδομένων»)
Εισαγωγικά Οι επιχειρήσεις θέλουν να μπορούν να αναλύουν τα δεδομένα τους. Γιατί; Απαιτείται δυνατότητα: σύνθεσης δεδομένων από όλα τα τμήματά τους περίπλοκης και διαδραστικής ανάλυσης των δεδομένων αυτών
Έννοιες Data Warehousing σύνθεση και διαχείριση δεδομένων από πολλές πηγές OLAP (vs. OLTP) Πολύπλοκα SQL αιτήματα, όψεις, πολυδιάστατη θεώρηση των δεδομένων (κύβοι), διαδραστικά αιτήματα Data Mining
Data Warehousing Συγκέντρωση δεδομένων και αθροιστικής πληροφορίας από μεγάλες χρονικές περιόδους Πολλά GB ή ΤΒ Στατικά δεδομένα Απαίτηση για μικρούς χρόνους απόκρισης
Data Warehousing (συνέχεια) Συγχώνευση δεδομένων από διαφορετικές πηγές (σημασιολογικές συγκρούσεις) Διαφορετικές νομισματικές μονάδες Διαφορετικά ονόματα για τα ίδια πεδία Διαφορετικά σχήματα για παρόμοιους πίνακες
Data Warehousing (συνέχεια) Καθαρισμός δεδομένων (διόρθωση λαθών, ελλιπούς πληροφορίας) Μετατροπή δεδομένων για να υπακούουν σε κοινό σχήμα Φόρτωμα δεδομένων Ανανέωση δεδομένων σε τακτά χρονικά διαστήματα Διαγραφή παλιών (άχρηστων) δεδομένων Διατήρηση βάσης μεταδεδομένων
Data Warehousing (συνέχεια) Πολύπλοκα «παραδοσιακά» SQL αιτήματα Αιτήματα OLAP Αλγόριθμοι για εξόρυξη πληροφορίας Εργαλεία οπτικοποίησης πληροφορίας Στατιστική ανάλυση Παραγωγή αναφορών
OLTP vs. Data Warehouse DBs
Παράδειγμα
Πιθανά αιτήματα Πως πήγαν οι πωλήσεις του προϊόντος widget τον τελευταίο μήνα σε σχέση με τις πωλήσεις των 5 τελευταίων ετών; Σε σχέση με το υποκατάστημα, την περιοχή, την ευρύτερη περιοχή; 2. Υπάρχει διαφορά στις πωλήσεις ανάλογα με την περιοχή; Υπάρχουν συγκεκριμένες τάσεις; 3. Υπήρξαν περισσότερες επιστροφές του προϊόντος σε σχέση με το τελευταίο έτος; Που οφείλονται οι επιστροφές; 4. Μήπως συγκεκριμένοι πωλητές τα καταφέρνουν καλύτερα από άλλους;
Πολυδιάστατο μοντέλο δεδομένων Measures (μετρήσεις): sales Dimensions (διαστάσεις): product, location, time
Ιεραρχίες διαστάσεων
Πράξεις OLAP Roll-up (σύμπτυξη) αύξηση επιπέδου συνάθροισης Drill-down (ανάπτυξη) μείωση επιπέδου συνάθροισης Slice-and-dice (φέτες και κύβοι) επιλογές με ισότητα ή διάστημα τιμών (μείωση των διαστάσεων των δεδομένων) Pivot (περιστροφή) συνάθροιση σε επιλεγμένες διαστάσεις (μας δίνει cross-tabulations)
Σύγκριση με αιτήματα SQL SELECT SUM(S.sales) FROM Sales S, Times T, Locations L WHERE S.timeid=T.timeid AND S.timeid=L.timeid GROUP BY T.year, L.state SELECT SUM(S.sales) FROM Sales S, Times T WHERE S.timeid=T.timeid GROUP BY T.year SELECT SUM(S.sales) FROM Sales S, Location L WHERE S.timeid=L.timeid GROUP BY L.state SELECT SUM(S.sales) FROM Sales S
Εναλλακτικές Υλοποιήσεις Relational OLAP (ROLAP) Τα δεδομένα βρίσκονται σε ένα σχεσιακό DBMS SQL με επεκτάσεις για την υποστήριξη και αποδοτική εκτέλεση αιτημάτων OLAP Multidimensional OLAP (MOLAP) Χρησιμοποιούνται ειδικές δομές δεδομένων για την αποθήκευση των πολυδιάστατων δεδομένων Οι λειτουργίες OLAP εκτελούνται πάνω στις δομές αυτές Hybrid OLAP (HOLAP) Συνδυασμός ROLAP και MOLAP Η πολλή πληροφορία βρίσκεται στη σχεσιακή βάση Η συναθροιστική πληροφορία σε διασυνδεμένο MOLAP
Codd s rules for OLAP [Codd93] Multi-Dimensional Concept View: The user should be able to see the data as being multidimensional insofar as it should be easy to 'pivot' or 'slice and dice'. (See later.) Transparency: The OLAP functionality should be provided behind the user's existing software without adversely affecting the functionality of the 'host'. Accessibility: OLAP should allow the user to access diverse data stores but see the data within a common 'schema' provided by the OLAP tool.
Consistent Reporting Performance: There should not be significant degradation in performance with large numbers of dimensions or large quantities of data. Client-Server Architecture: Since much of the data is on mainframes, and the users work on PCs, the OLAP tool must be able to bring the two together! Generic Dimensionality: Data dimensions must all be treated equally. Functions available for one dimension must be available for others. Dynamic Sparse Matrix Handling: The OLAP tool should be able to work out for itself the most efficient way to store sparse matrix data. Multi User Support
Unrestricted Cross-Dimensional Operations: e.g., individual office overheads are allocated according to total corporate overheads divided in proportion to individual office sales. Intuitive Data Manipulation: Navigation should be done by operations on individual cells rather than menus. Flexible Reporting: Row and column headings must be capable of more than one dimension each, and of displaying subsets of any dimension. Unlimited Dimensions and Aggregation Levels: At least 15 dimensions may be required, and within each there may be many hierarchical levels.
Θέματα Υλοποίησης Bitmap Index Join Indexes Views (Όψεις) Top N queries
Bitmap index
Join Indexes D1 x D2 x F για κάθε αίτημα που εμπλέκει τις συγκεκριμένες διαστάσεις Εναλλακτικά πολλά Di x F ευρετήρια και μετά χρήση τομής μπορούν να χρησιμοποιηθούν ευρετήρια bitmap
Υλοποίηση Όψεων CREATE VIEW RegionalSales( category, sales, state) AS SELECT P. category, S. sales, L. state FROM Products P, Sales S, Locations L WHERE P. pid= S. pid AND S. locid= L. locid SELECT R. category, R. state, SUM (R. sales) FROM RegionalSales AS R GROUP BY R. category, R. state SELECT R. category, R. state, SUM (R. sales) FROM ( SELECT P. category, S. sales, L. state FROM Products P, Sales S, Locations L WHERE P. pid= S. pid AND S. locid= L. locid) AS R GROUP BY R. category, R. state
Όψεις και ευρετήρια Έστω ότι έχουμε ένα Β+δέντρο πάνω στα πεδία: [category, state, sales] SELECT R. state, SUM (R. sales) FROM RegionalSales R WHERE R. category= Laptop GROUP BY R. state SELECT R. state, SUM (R. sales) FROM RegionalSales R WHERE R. state= Wisconsin GROUP BY R. category
Top N queries SELECT P. pid, P. pname, S. sales FROM Sales S, Products P WHERE S. pid= P. pid AND S. locid= 1 AND S. timeid= 3 ORDER BY S. sales DESC OPTIMIZE FOR 10 ROWS SELECT P. pid, P. pname, S. sales FROM Sales S, Products P WHERE S. pid= P. pid AND S. locid= 1 AND S. timeid= 3 AND S. sales > c ORDER BY S. sales DESC