Data Cube Μ.Χατζόπουλος Μ.Χατζόπουλος 1
Ανάλυση εδοµένων Εξαγωγή συναθροιστικών δεδοµένων από µια βάση δεδοµένων Οπτικοποίηση των αποτελεσµάτων Μπορούνοιπαραδοσιακέςεπίπεδεςβάσειςδεδοµένων; Οι σχεσιακές βάσεις δεδοµένων µοντελοποιούν τα Ν- διάσταστα δεδοµένα σαν µια σχέση µε Ν γνωρίσµατα. Μ.Χατζόπουλος 2
ΚΑΙΡΟΣ Ωρα Γεωγραφ_Πλ Γεωγραφ_Μηκος Υψοµετρο Θερµ Πιεση select avg(θερµ) from ΚΑΙΡΟΣ select count(distinct Ωρα) from ΚΑΙΡΟΣ Μ.Χατζόπουλος 3
Πολλά SQL συστήµατα έχουν προσθέσει συναρτήσεις Στατιστικές (ενδιάµεσος, τυπική απόκλιση) Φυσικής (κέντρο βάρους..) Οικονοµική ανάλυση Μερικά συστήµατα επιτρέπουν στο χρήστη να προσθέσει δικές του συναρτήσεις Μ.Χατζόπουλος 4
Select Ωρα, Υψοµετρο, avg(θερµ) From ΚΑΙΡΟΣ Group by Ωρα, Υψος Ο σχεσιακός τελεστής group by διαµερίζει ένα πίνακα σε οµάδες. Στη συνέχεια εφαρµόζεται η συναθροιστική συνάρτηση σε κάθε οµάδα. Η συναθροιστική συνάρτηση συνοψίζει κάποια στήλη και επιστρέφει µια τιµή για κάθε οµάδα. Το πρόβληµα µε την SQL είναι ότι δεν επιτρέπει συνάθροιση σε κατηγορίες που υπολογίζονται. Μ.Χατζόπουλος 5
Grouping Values Aggregate Values Partitioned Table Sum() Μ.Χατζόπουλος 6
Επεκτάσεις συναθροιστικών συναρτήσεων στο Red Brick Rank(expression) N_tile(expression, n) Ratio_To_Total(expression) Μ.Χατζόπουλος 7
Το Red Brick υποστηρίζει συνολικές συναθροίσεις σε ταξινοµηµένους πίνακες Cumulative(expression) Running_Sum(expression,n) Running_Average(expression,n) Μ.Χατζόπουλος 8
SELECT Percentile,MIN(Θερµ),MAX(Θερµ) FROM Καιρος GROUP BY N_tile(Θερµ,10) as Percentile HAVING Percentile = 5; Επιστρέφει την ελάχιστη και την µέγιστη θερµοκρασία για το 10% των µεσαίων θερµοκρασιών από όλες Μ.Χατζόπουλος 9
Προβλήµατα µε τον τυπικό τελεστή group by της SQL εν επιτρέπει συνάθροιση σε ιστογράµµατα (συνάθροιση πάνω από κατηγορίες που έχουν υπολογισθεί (σήµερα κάποια συστήµατα υποστηρίζουν) εν υποστηρίζει roll-up totals ή drill-down subtotals. εν υποστηρίζει pivot Μ.Χατζόπουλος 10
Συνάθροιση σε ιστογράµµατα select day, nation, MAX(Θερµ) from Καιρος GROUP BY Day(Time) AS day Country(Γεωγραφ_Πλ, Γεωγραφ_Μηκ) as nation Μ.Χατζόπουλος 11
Συνάθροιση σε ιστογράµµατα (συν). Η SQL 92 επιτρέπει SELECT day, nation, MAX(Θερµ) FROM ( SELECT Day(Time) AS day, Country(Γεωγραφ_Πλ, Γεωγραφ_Μηκ) AS nation, Θερµ FROM Weather ) AS foo GROUP BY day, nation; Μ.Χατζόπουλος 12
Μη υποστήριξη roll-up και drill-down Πωλήσεις Make Year Color Sales by Model by Year by Color Sales by Model by Year Sales by Model Chevy 1994 black 50 40 90 1995 black 85 115 200 290 O πίνακας αυτός δεν είναι σχεσιακός Μ.Χατζόπουλος 13
Model Chevy Chevy Chevy Chevy Chevy Chevy Chevy Πιο Σχεσιακός Year Color 1994 black 1994 1994 1995 black 1995 1995 Units 50 40 90 85 115 200 290 Έχει προστεθεί η τιµή Μ.Χατζόπουλος 14
SELECT Model,,, SUM(Sales) FROM Sales WHERE Model = 'Chevy' GROUP BY Model UNION SELECT Model, Year,, SUM(Sales) FROM Sales WHERE Model = 'Chevy' GROUP BY Model, Year UNION SELECT Model, Year, Color, SUM(Sales) FROM Sales WHERE Model = 'Chevy' GROUP BY Model, Year, Color; Η συνάθροιση σε Ν διαστάσεις απαιτεί Ν τέτοιες ενώσεις Μ.Χατζόπουλος 15
Model Year Chevy Chevy Color black Units 135 155 UNION SELECT Model,, Color, SUM(Sales) FROM Sales WHERE Model = 'Chevy' GROUP BY Model, Color; Μ.Χατζόπουλος 16
Cross Tab Chevy Sales Cross Tab Chevy 1994 1995 total () black 50 85 135 total () 40 90 115 200 155 290 Υπάρχει πιο σοβαρό πρόβληµα γιατί το αποτέλεσµα δεν είναι σχέση η τελευταία γραµµή και στήλη δεν είναι συνήθεις black total () Sales Cross Tab 1994 Μ.Χατζόπουλος 17 50 10 60 1995 85 75 160 total () 135 85 220
Ο τελεστής CUBE Η γενίκευση είναι προφανής σε πολλές διαστάσεις Ο παραδοσιακός τελεστής GROUP BY µπορεί να δηµιουργήσει το Ν διάστατο κύβο. Οιχαµηλότερεςδιαστάσειςσυναθροίζουνσεσηµεία, γραµµές, επίπεδακλπ. Ο τελεστής κτίζει ένα πίνακα που περιέχει όλες τις τιµές συνάθροισης Η συνολική συνάθροιση παριστάνεται µε την Μ.Χατζόπουλος 18
Aggregate Sum RED WHITE BLUE Group By (with total) By Color Sum RED WHITE BLUE Cross Tab Chevy By Color By Make Sum By Make & Year By Year FORD CHEVY By Color & Year The Data Cube and The Sub-Space Aggregates Sum 1990 1991 1992 By Color 1993 By Make RED WHITE BLUE By Make & Color Μ.Χατζόπουλος 19
Επέκταση του τελεστή group by για να καλύψει ιστογράµµατα GROUP BY { ( <column name> <expression>) [ AS <correlation name> ] [ <collate clause> ],...} Μ.Χατζόπουλος 20
Επεκτάσεις όσο αφορά την εµφάνιση του αποτελέσµατος SELECT department.name, sum(sales) FROM sales JOIN department USING (department_number) GROUP BY sales.department_number; εν υποστηρίζεται από το πρότυπο της SQL Μ.Χατζόπουλος 21
Πρόταση επέκτασης (Jim Gray) GROUP BY CUBE ( { ( <column name> <expression>) [ AS <correlation name> ] [ <collate clause> ],...} [WITH ( CUBE ROLLUP ) ] ) Μ.Χατζόπουλος 22
SELECT Model, Year, Color, SUM(sales) AS Sales FROM Sales WHERE Model in {'', 'Chevy'} AND Year BETWEEN 1990 AND 1992 GROUP BY CUBE(Model, Year, Color); SALES Model Year Color Sales Chevy 1990 red 5 Chevy 1990 87 Chevy 1990 blue 62 Chevy 1991 red 54 Chevy 1991 95 Chevy 1991 blue 49 Chevy 1992 red 31 Chevy 1992 54 Chevy 1992 blue 71 1990 red 64 1990 62 1990 blue 63 1991 red 52 1991 9 1991 blue 55 1992 red 27 1992 62 1992 blue 39 CUBE DATA CUBE Model Year Color Sales Chevy 1990 blue 62 Chevy 1990 red 5 Chevy 1990 95 Chevy 1990 154 Chevy 1991 blue 49 Chevy 1991 red 54 Chevy 1991 95 Chevy 1991 198 Chevy 1992 blue 71 Chevy 1992 red 31 Chevy 1992 54 Chevy 1992 156 Chevy blue 182 Chevy red 90 Chevy 236 Chevy 508 1990 blue 63 1990 red 64 1990 62 1990 189 1991 blue 55 1991 red 52 1991 9 1991 116 1992 blue 39 1992 red 27 1992 62 1992 128 blue 157 red 143 133 433 1990 blue 125 1990 red 69 1990 149 1990 343 1991 blue 106 1991 red 104 1991 110 1991 314 1992 blue 110 1992 red 58 1992 116 1992 284 blue 339 red 233 369 Μ.Χατζόπουλος 23 941 Π Α Ρ Α Ε Ι Γ Μ Α
SELECT day, nation, MAX(Θερµ) FROM Καιρος GROUP BY ( Day(Time) AS day, Country(Γεωγραφ_Πλ, Γεωγραφ_Μηκ) AS nation WITH CUBE); Μ.Χατζόπουλος 24
Η σηµασιολογία του τελεστή CUBE είναι ότι πρώτα συναθροίζεισεόλαταγνωρίσµατατηςλίσταςτης select (όπως και στο παραδοσιακό GROUP BY). Στη συνέχεια ενώνει σε κάθε υπερ-συνάθροιση του ολικού κύβου αντικαθιστώντας µε το στις στήλες συνάθροισης. Αν υπάρχουν Ν γνωρίσµατα στη λίστα select τότε υπάρχουν 2 Ν -1 τιµέςυπερ-συνάθροισης. Ανοιαντίστοιχες πληθυκότητεςείναι C 1, C 2, C Ν τότεηπηθυκότητατου κύβουπουπροκύπτειείναιπ(c i +1) (ηεπιπλέονγιατην ). Μ.Χατζόπουλος 25
Μ.Χατζόπουλος 26 ΠΩΛΗΣΕΙΣ 10 50 blue 80 red 30 blue 60 45 red 20 blue 50 40 red 30 blue 40 70 red Πωλησεις Color Year Make
Ο τελεστής CUBE αποτελεί γενίκευση των απλών συναθροιστικών συναρτήσεων στις N διαστάσεις. sum RED WHITE BLUE Group by (with total) By Color OPEL By color RED WHITE BLUE By make sum By year By make By color Μ.Χατζόπουλος 27
Μ.Χατζόπουλος 28 ΠΩΛΗΣΕΙΣ 10 50 blue 80 red 30 blue 60 45 red 20 blue 50 40 red 30 blue 40 70 red Πωλησεις Color Year Make 140 50 blue 10 80 red 135 30 blue 60 45 red 250 50 blue 90 110 red 110 20 blue 50 40 red 140 30 blue 40 70 red Πωλησεις Color Year Make CUBE
Μ.Χατζόπουλος 29 ΠΩΛΗΣΕΙΣ 10 50 blue 80 red 30 blue 60 45 red 20 blue 50 40 red 30 blue 40 70 red Πωλησεις Color Year Make 525 130 blue 160 235 red 250 70 blue 60 120 red 275 60 blue 100 115 red 275 80 blue 70 125 red Πωλησεις Color Year Make CUBE
Κάθε τιµή παριστάνει ένα σύνολο (το σύνολο στο οποίο εφαρµόσθηκε η συναθροιστική συνάρτηση. Η τιµή δηµιουργεί κάποια πολυπλοκότητα. Είναι κάτι σαν την τιµή NULL. Είναι µια νέα λέξη κλειδί Η δεν συµµετέχει σε καµιά συνάθροιση όπως και η NULL. Η ερµηνεία του συνόλου καθορίζει την σηµασία των τελεστών σύγκρισης. Η αντιµετώπιση κάθε τιµής σαν σύνολο από συναθροίσεις καθορίζει την τιµή της. Μ.Χατζόπουλος 30
Επεκτάσεις στη σύνταξη της SQL Επεκτάσεις που αφορούν οπτικοποίηση και σύνταξη αναφορών Επεκτάσεις ερωτήσεων Μ.Χατζόπουλος 31
SELECT Model,Year,Color,SUM(Sales), SUM(Sales)/ (SELECT SUM(Sales) FROM Sales WHERE Model IN {, Chevy } AND Year Between 1990 AND 1992 ) FROM Sales WHERE Model IN {, Chevy } AND Year Between 1990 AND 1992 GROUP BY CUBE (Model, Year, Color); Μ.Χατζόπουλος 32
SELECT Model, Year, Color SUM(Sales) AS total, SUM(Sales) / total(,,) FROM Sales WHERE Model IN {, Chevy } AND Year Between 1990 AND 1992 GROUP BY CUBE(Model, Year, Color); Μ.Χατζόπουλος 33
Υπολογισµός του δείκτη (index) µιας τιµής index(v i ) = v i / (Σ j v j ) SELECT v FROM cube WHERE row = :i AND column = :j ή cube.v(:i, :j) Μ.Χατζόπουλος 34
Πωςθαµπορούσεναυλοποιηθείόµωςοκύβος Φυσική Υλοποίηση του Κύβου Καµιά Υλοποίηση Μερική Υλοποίηση του Κύβου Μ.Χατζόπουλος 35
Γνωστό benchmark για datawarehouses είναι το TPC-D. (Parts αγοράζονται από Suppliers και πωλούνται σε Customers σε τιµή πώλησης SP. Το µέτρο που ενδιαφέρει είναι ολικές πωλήσεις sales. Part Supplier Customer Κάθε πλειάδα είναι της µορφής (p, s, c) εποµένως έχουµε 8 πιθανές οµαδοποιήσεις Μ.Χατζόπουλος 36
part supplier customer (6M rows) part customer (6M rows) part supplier (0.8M rows) supplier customer (6M rows) part (0.2M rows) supplier (0.01M rows) customer (0.1M rows) none (1) Μ.Χατζόπουλος 37
psc pc ps sc p s c none Μ.Χατζόπουλος 38
1.Πόσες όψεις πρέπει να υλοποιήσουµε για να έχουµε αποδεκτή απόδοση; 2. οθέντος του διαθέσιµου χώρου S, ποιες όψεις υλοποιούµε ώστε να ελαχιστοποιείται το µέσο κόστος επερώτησης; Μ.Χατζόπουλος 39
psc 6Μ pc 6Μ ps 0.8M sc 6M p 0.2M s 0.01M c 0.1M none 1 Μ.Χατζόπουλος 40
Χρησιµοποίηση Ευρετηρίων Κάθε επερώτηση χρησιµοποιεί κάποια γνωρίσµατα επιλογής και κάποια συνάθροισης. Για κάθε υποκύβο µπορεί να χρησιµοποιηθεί ένα ευρετήριο (για παράδειγµαβ-δένδρο) Μ.Χατζόπουλος 41
psc pc ps sc p s c none Μ.Χατζόπουλος 42
Επερωτήσεις γ ps σ γ p σ s γ s σ p γ σ ps psc pc ps sc p s c none Μ.Χατζόπουλος 43
Τα ευρετήρια Β-δένδρων µπορούν να βελτιώσουν σηµαντικά τον χρόνο απόκρισης. Μια όψη µπορεί να έχει πολλά ευρετήρια. Το πλήθος των ευρετηρίων µιας όψης µε m γνωρίσµατα είναι m r=0 m ( )r! r Σεένακύβοείναι 3n! Μ.Χατζόπουλος 44