• No results found

Overview. Data Warehousing and Decision Support. Introduction. Three Complementary Trends. Data Warehousing. An Example: The Store (e.g.

N/A
N/A
Protected

Academic year: 2021

Share "Overview. Data Warehousing and Decision Support. Introduction. Three Complementary Trends. Data Warehousing. An Example: The Store (e.g."

Copied!
6
0
0

Loading.... (view fulltext now)

Full text

(1)

CSI3130- Database II 1

Data Warehousing and Decision 

Support 

Chapter 25 CSI3130- Database II 2

Overview

Why data warehousing and decision support Data warehousing and the so‐called star schema MOLAP versus ROLAP OLAP, ROLLUP AND CUBE queries Design issues: Finding answers quickly  Denormalization  Indexing  Aggregation  Top N Queries  Using Views Typical architecture CSI3130- Database II 3

Introduction

Increasingly, organizations are analyzing current  and historical data to identify useful patterns  and support business strategies. Emphasis is on complex, interactive, exploratory  analysis of very large datasets created by  integrating data from across all parts of an  enterprise; data is fairly static.  Contrast such On‐Line Analytic Processing (OLAP) with traditional On‐line Transaction Processing  (OLTP): mostly long queries, instead of short update  Xacts. CSI3130- Database II 4

Three Complementary Trends

Data Warehousing: Consolidate data from many  sources in one large repository.  Loading, periodic synchronization of replicas.  Semantic integration. OLAP:  Complex SQL queries and views.   Queries based on spreadsheet‐style operations and  “multidimensional” view of data.  Interactive and “online” queries. Data Mining:  Exploratory search for interesting  trends and anomalies. (Another lecture!)

Data Warehousing

Integrated data spanning  long time periods, often  augmented with  summary information.  Several gigabytes to  terabytes common. Interactive response       times expected for      complex queries; ad‐hoc  updates uncommon. EXTERNAL DATA SOURCES EXTRACT TRANSFORM LOAD REFRESH DATA WAREHOUSE Metadata Repository SUPPORTS OLAP DATA MINING

An Example:

The Store (e.g. Staples)

 Sells office equipment, including stationary (pens, erasers,  pencils), folders, paper, notice boards, etc.  Business has 50 large stores spread over Ontario and Quebec.   Stores are divided into 4 regions, namely North, South, West  and East.  Each store has about 20,000 different products on the shelves,  each with an unique bar code.  Bar codes are scanned at the point of sales (POS)  Products are distributed to stores by an Agent who is  identified by Name. GOAL: Determine “how well business is doing”.

(2)

CSI3130- Database II 7 Successful data warehousing:  Summarised High‐Quality Information CSI3130- Database II 8

Dimensions of “Sales”

CSI3130- Database II 9

Dimensions of Sales

Product: Product-key, BC-description, BC-number, package-size, brand, sub-category, category, department, weight, package-type, weight-unit, case, units-per-shipping-case, shelf-width, shelf-height, shelf-dept, … Location: Store-key, Store-name, Store-number, Store-city,

Store-province, Store-region, Store-phone, Store-fax, floor-plan-type, first-opened-date, last-remodel-date, store_m2, …

Time: time-key, day-of-week, day-number-in-month, day-number-year, week-number, month, month-number, quarter, fiscal-period, holiday-flag, weekend-flag, last-day-of-month-flag, season, event Agent: Agent-key, first-name, last-name, age, gender,

duration-of-employment, … CSI3130- Database II 10

Dimensions of Sales

Location Agent Store-key Agent-key … Sales FACT … Store-key Agent-key Time-key Product-key

Time dollar-sales Product

Time-key units-sales Product-key

… dollar-cost … customer-count CSI3130- Database II 11

Database sizing for the data warehouse

Time dimension: last 2 years x 365 days = 730 days Location dimension: 50 stores, reporting sales every day Product dimension: 20,000 products in each store, of which  3,000 sell each day in a given store Agent dimension: a minimum of 5 agents on each day Number of base Sales fact records = 730x50x3,000x5 =  45,007,500 records! Number of key fields = 4; Number of fact fields = 4; Total  fields = 8 Base Sales fact table = 45 million x 8 fields x 4 bytes = 14GB Database size: Sales fact + other tables ??? 20GB++ CSI3130- Database II 12

Warehousing Issues

Semantic Integration: When getting data from  multiple sources, must eliminate mismatches,  e.g., different currencies, schemas. Heterogeneous Sources: Must access data from  a variety of source formats and repositories.  Replication capabilities can be exploited here. Load, Refresh, Purge: Must load data,  periodically refresh it, and purge too‐old data. Metadata Management:Must keep track of  source, loading time, and other information for all  data in the warehouse.

(3)

CSI3130- Database II 13

Multidimensional 

Data Model

Collection of numeric measures,which 

depend on a set of dimensions.

 E.g., measure Sales, dimensions     Product 

(key: pid), Location(locid),      and Time 

(timeid). 8 10 10 30 20 50 25 8 15 1 2 3 timeid pid 11 12 13 11 1 1 25 11 2 1 8 11 3 1 15 12 1 1 30 12 2 1 20 12 3 1 50 13 1 1 8 13 2 1 10 13 3 1 10 11 1 2 35

pid timeid locid sales

locid Slice locid=1 is shown: CSI3130- Database II 14

MOLAP vs ROLAP

Multidimensional data can be stored physically in  a (disk‐resident, persistent) array; called MOLAP systems.  Alternatively, can store as a relation; 

called ROLAPsystems.

The main relation, which relates dimensions to a 

measure, is called the fact table.  Each dimension 

can have additional attributes and an associated  dimension table.  E.g., Products(pid, pname, category, price)  Fact tables are much larger than dimensional tables. CSI3130- Database II 15

Dimension Hierarchies

For each dimension, the set of values can be  organized in a hierarchy:

PRODUCT TIME LOCATION

category week month state pname date city

year

quarter country

CSI3130- Database II 16

OLAP Queries

Influenced by SQL and by spreadsheets.

A common operation is to aggregatea measure 

over one or more dimensions.  Find total sales.  Find total sales for each city, or for each state.  Find top five products ranked by total sales. Roll‐up:Aggregating at different levels of  a  dimension hierarchy.    E.g., Given total sales by city, we can roll‐up to get  sales by state.

OLAP Queries

Drill‐down: The inverse of roll‐up.    E.g., Given total sales by state, can drill‐down to get  total sales by city.  E.g., Can also drill‐down on different dimension to get  total sales by product for each state. Pivoting:Aggregation on selected dimensions.  E.g., Pivoting on Location and Time      yields this  cross‐tabulation: 63 81 144 38 107 145 75 35 110 WI CA Total 1995 1996 1997 176 223 339 Total

Slicing and Dicing: Equality and range selections on one or more dimensions.

Comparison with SQL Queries

The cross‐tabulation obtained by pivoting can also be 

computed using a collection of  SQLqueries:

SELECT SUM(S.sales)

FROM Sales S, Times T, Locations L

WHERE S.timeid=T.timeidAND S.timeid=L.timeid

GROUP BYT.year, L.state

SELECT SUM(S.sales)

FROM Sales S, Times T

WHERE S.timeid=T.timeid

GROUP BYT.year

SELECT SUM(S.sales)

FROM Sales S, Location L

WHERE S.timeid=L.timeid

(4)

CSI3130- Database II 19

The CUBE Operator

Generalizing the previous example, if there are k  dimensions, we have 2^k possible SQL GROUP BY  queries that can be generated through pivoting  on a subset of dimensions. CUBE pid, locid, timeid BY SUM Sales  Equivalent to rolling up Sales on all eight subsets of  the set {pid, locid, timeid}; each roll‐up corresponds  to an SQL query of the form:

SELECT SUM(S.sales)

FROM Sales S

GROUP BY grouping-list

Lots of work on optimizing the CUBE operator!

CSI3130- Database II 20

Design Issues

Fact table in BCNF; dimension tables un‐normalized.  Dimension tables are small; updates/inserts/deletes are rare. So,  anomalies less important than query performance. This kind of schema is very common in OLAP applications, 

and is called a star schema; computing the join of all 

these relations is called a star join.   price category pname

pid locid city state country

sales locid timeid pid holiday_flag week date

timeid month quarter year

(Fact table) SALES TIMES PRODUCTS LOCATIONS CSI3130- Database II 21

Implementation Issues: Indexes

New indexing techniques:  Bitmap indexes, Join  indexes, array representations, compression,  precomputation of aggregations, etc. E.g., Bitmap index:

10

10

01

10

112 Joe M 3 115 Ram M 5 119 Sue F 5 112 Woo M 4

00100

00001

00001

00010

sex custid name sex rating rating Bit-vector:

1 bit for each possible value. Many queries can be answered using bit-vector ops! M F CSI3130- Database II 22

Join Indexes

Consider the join of Sales, Products, Times, and  Locations, possibly with additional selection conditions  (e.g., country=“USA”).

 A join indexcan be constructed to speed up such joins. The 

index contains [s,p,t,l]if there are tuples (with sid) sin Sales, 

pin Products, tin Times and lin Locations that satisfy the  join (and selection) conditions.

Problem:Number of join indexes can grow rapidly.

 A variation addresses this problem: For each column with an  additional selection (e.g., country), build an index with [c,s]

in it if a dimension table tuple with value cin the selection  column joins with a Sales tuple with sids; if indexes are  bitmaps, called bitmapped join index.

CSI3130- Database II 23

Bitmapped Join Index

 Consider a query with conditions price=10 and  country=“USA”.  Suppose tuple (with sid) s in Sales joins  with a tuple p with price=10 and a tuple l with country  =“USA”.  There are two join indexes; one containing  [10,s] and the other [USA,s].  Intersecting these indexes tells us which tuples in Sales  are in the join and satisfy the given selection. price category pname

pid locid city state country

sales locid timeid pid holiday_fla g week dat e timei

d month quarter year

(Fact table) SALES TIMES PRODUCTS LOCATIONS CSI3130- Database II 24

Data Warehousing and Decision 

Support 

Chapter 25

(5)

CSI3130- Database II 25

Overview

 Why data warehousing and decision support  Data warehousing and the so‐called star schema  MOLAP versus ROLAP  OLAP, ROLLUP AND CUBE queries Design issues: Finding answers quickly  Denormalization  Indexing  Aggregation  Top N Queries  Using Views Typical architecture CSI3130- Database II 26

Querying Sequences in SQL

 Trend analysis is difficult to do in SQL‐92 or earlier:  Find the % change in monthly sales  Find the top 5 product by total sales  Find the trailing n‐day moving average of sales  The first two queries can be expressed with difficulty, but the  third cannot even be expressed in SQL‐92 if n is a parameter of  the query.

 The WINDOWclause in SQL:1999+ allows us to write such  queries over a table viewed as a sequence (implicitly,  based on user‐specified sort keys)  Note: SQL 2008 defines more flexible windowing  functions (to be implemented…) CSI3130- Database II 27

The WINDOW Clause

 Let the result of the FROM and WHERE clauses be “Temp”.

 (Conceptually) Temp is partitioned according to the PARTITION BYclause.    Similar to GROUP BY, but the answer has one row for each row in a partition, not one 

row per partition!

 Each partition is sorted according to the ORDERBY clause.

 For each row in a partition, the WINDOW clause creates a “window” of nearby  (preceding or succeeding) tuples.  Can be value‐based, as in example, using RANGE  Can be based on number of rows to include in the window, using ROWS clause  The aggregate function is evaluated for each row in the partition using the  corresponding window.  New aggregate functions that are useful with windowing include RANK (position of a  row within its partition) and its variants DENSE_RANK, PERCENT_RANK, CUME_DIST. SELECT L.state, T.month, AVG(S.sales) OVER WAS movavg

FROM Sales S, Times T, Locations L WHERE S.timeid=T.timeid AND S.locid=L.locid

WINDOW W AS (PARTITION BY L.state ORDER BY T.month

RANGE BETWEEN INTERVAL `1’ MONTH PRECEDING

AND INTERVAL `1’ MONTH FOLLOWING)

CSI3130- Database II 28

Top N Queries

If you want to find the 10 (or so) cheapest cars,  it would be nice if the DB could avoid computing  the costs of all cars before sorting to determine  the 10 cheapest.

 Idea:Guess at a cost csuch that the 10 cheapest all 

cost less than c, and that not too many more cost  less.  Then add the selection cost<cand evaluate the  query. •If the guess is right, great, we avoid computation  for cars that cost more than c. •If the guess is wrong, need to reset the selection  and recompute the original query.

Top N Queries

SELECT P.pid, P.pname, S.sales

FROMSales S, Products P

WHERES.pid=P.pidAND S.locid=1 ANDS.timeid=3 ORDER BYS.salesDESC

OPTIMIZE FOR10 ROWS

 OPTIMIZE FOR construct is not in SQL:1999!

 Cut‐off value c is chosen by optimizer.

SELECT P.pid, P.pname, S.sales

FROMSales S, Products P

WHERES.pid=P.pidAND S.locid=1 ANDS.timeid=3

AND S.sales > c

ORDER BYS.salesDESC

Online Aggregation

Consider an aggregate query, e.g., finding the average sales by  province. Can we provide the user with some information before  the exact average is computed for all states?

 Can show the current “running average” for each province as  the computation proceeds.

 Even better, if we use statisticaltechniques and sampletuples to aggregate instead of simply scanning the aggregated table,  we can provide bounds such as “the average for Ontario is  2000102 with 95% probability”.

(6)

CSI3130- Database II 31

Views and Decision Support

Materialized views pre‐computed Issues  Synchronization  Incremental maintenance policy needed • Lazy • Periodic • Forced  Multi‐nationals… CSI3130- Database II 32

How do you 

implement a data warehouse?

Technical Architecture Design Technical Architecture Design Product Selection & Installation Product Selection & Installation End-User Application Specification End-User Application Specification End-User Application Development End-User Application Development

The Business Dimensional Lifecycle (Kimball et. Al., 2008) Project Planning Project Planning Business Requirement Definition Business Requirement Definition Deployment Deployment Maintenance and Growth Maintenance and Growth Project Management Project Management Dimensional Modeling Dimensional

Modeling PhysicalDesign Physical Design Data Staging Design & Development Data Staging Design & Development CSI3130- Database II 33

Summary

Decision support is an emerging, rapidly growing  subarea of databases. Involves the creation of large, consolidated data  repositories called data warehouses. Warehouses exploited using sophisticated analysis  techniques:  complex SQL queries and OLAP  “multidimensional” queries (influenced by both SQL  and spreadsheets). New techniques for database design, indexing, view  maintenance, and interactive querying need to be  supported. CSI3130- Database II 34

Interested?

CSI5115 in the Fall… Data warehousing

References

Related documents

Increasing the frequency of the incident beam, keeping the number of incident photons fixed (this would result in a proportionate increase in energy) increases the maximum

Students will receive Sciences Po’s Master’s degree in Finance and Strategy after completing their two years of studies and all requirements at both institutions.. A

Whenever you make a test in the same category as a neg- ative feature, that negative feature adds a negative die to your test if it could hurt your chance of succeeding or cause

This study was conducted to compare and contrast potential aroma compounds in the headspace and small molecule metabolites produced as a result of starter culture metabolism in

Given the seller’s uncertain opportunity cost, incomplete contract enforcement, the allocation of liability for losses and the problem of moral hazard, we consider the design of

Full Day and Half Day time includes call time, set up time, show time and tear

A variety of learning needs are addressed for technical and sales issues faced by the network, such as customer relationship management processes, product and vehicle

One aim of developing an artificial agent for collaborative free improvisation using Subsumption is to demonstrate that complex interactive behavior, subject to evaluation by