60
Jerry Post Copyright © 2013 D A T A B A S E Database Management Systems Chapter 9 Data Warehouses and Data Mining 1

Jerry Post Copyright © 2013 DATABASE Database Management Systems Chapter 9 Data Warehouses and Data Mining 1

Embed Size (px)

Citation preview

Page 1: Jerry Post Copyright © 2013 DATABASE Database Management Systems Chapter 9 Data Warehouses and Data Mining 1

Jerry PostCopyright © 2013

DATABASE

Database Management Systems

Chapter 9

Data Warehouses and Data Mining

1

Page 2: Jerry Post Copyright © 2013 DATABASE Database Management Systems Chapter 9 Data Warehouses and Data Mining 1

Objectives

What is the difference between transaction processing and analysis?

How do indexes improve performance for retrievals and joins?

Is there another way to make query processing more efficient?

How is OLAP different from queries? How are OLAP databases designed? What tools are used to examine OLAP data? What tools exist to search for patterns and correlations in the

data?

2

Page 3: Jerry Post Copyright © 2013 DATABASE Database Management Systems Chapter 9 Data Warehouses and Data Mining 1

Sequential Storage and Indexes

3

ID LastName FirstName DateHired

1 Reeves Keith 1/29/20xx

2 Gibson Bill 3/31/20xx

3 Reasoner Katy 2/17/20xx

4 Hopkins Alan 2/8/20xx

5 James Leisha 1/6/20xx

6 Eaton Anissa 8/23/20xx

7 Farris Dustin 3/28/20xx

8 Carpenter Carlos 12/29/20xx

9 O'Connor Jessica 7/23/20xx

10 Shields Howard 7/13/20xx

We picture tables as simple rows and columns, but they cannot be stored this way.

It takes too many operations to find an item.Insertions require reading and rewriting the entire table.

Page 4: Jerry Post Copyright © 2013 DATABASE Database Management Systems Chapter 9 Data Warehouses and Data Mining 1

Binary Search

4

AdamsBrownCadizDorfmannEatonFarris

1 GoetzHanson

3 Inez 4 Jones 2 Kalida

LomaxMirandaNorman

14 entries

Given a sorted list of names.How do you find Jones.Sequential search

Jones = 10 lookupsAverage = 15/2 = 7.5 lookupsMin = 1, Max = 14Binary searchFind midpoint (14 / 2) = 7Jones > GoetzJones < KalidaJones > InezJones = Jones (4 lookups)Max = log2 (N)N = 1000 Max = 10N = 1,000,000 Max = 20

Page 5: Jerry Post Copyright © 2013 DATABASE Database Management Systems Chapter 9 Data Warehouses and Data Mining 1

Pointers and Indexes

8

ID Pointer1 A112 A223 A324 A425 A476 A587 A638 A679 A7810 A83

LastName PointerCarpenter A67Eaton A58Farris A63Gibson A22Hopkins A42James A47O'Connor A78Reasoner A32Reeves A11Shields A83

ID Index

LastName Index1 Reeves Keith 1/29/..A11

2 Gibson Bill 3/31/..A22

3 Reasoner Katy 2/17/..A32

4 Hopkins Alan 2/8/..A42

5 James Leisha 1/6/..A47

6 Eaton Anissa 8/23/..A58

7 Farris Dustin 3/28/..A63

8 Carpenter Carlos 12/29/..A67

9 O’Connor Jessica 7/23/..A78

10 Shields Howard 7/13/..A83

DataAddress

Page 6: Jerry Post Copyright © 2013 DATABASE Database Management Systems Chapter 9 Data Warehouses and Data Mining 1

Creating Indexes: SQL Server Primary Key

9

Page 7: Jerry Post Copyright © 2013 DATABASE Database Management Systems Chapter 9 Data Warehouses and Data Mining 1

SQL CREATE INDEX

10

CREATE INDEX ix_Animal_Category_Breed

ON Animal (Category, Breed)

Page 8: Jerry Post Copyright © 2013 DATABASE Database Management Systems Chapter 9 Data Warehouses and Data Mining 1

Indexed Sequential Storage

11

ID LastName FirstName DateHired1 Reeves Keith 1/29/982 Gibson Bill 3/31/983 Reasoner Katy 2/17/984 Hopkins Alan 2/8/985 James Leisha 1/6/986 Eaton Anissa 8/23/987 Farris Dustin 3/28/988 Carpenter Carlos 12/29/989 O'Connor Jessica 7/23/9810 Shields Howard 7/13/98

ID Pointer1 A112 A223 A324 A425 A476 A587 A638 A679 A7810 A83

A11A22A32A42A47A58A63A67A78A83

Address

LastName PointerCarpenter A67Eaton A58Farris A63Gibson A22Hopkins A42James A47O'Connor A78Reasoner A32Reeves A11Shields A83

Indexed for ID and LastName

Common usesLarge tables.Need many sequential lists.Some random search--with one or two key columns.Mostly replaced by B+-Tree.

Page 9: Jerry Post Copyright © 2013 DATABASE Database Management Systems Chapter 9 Data Warehouses and Data Mining 1

Index Options: Bitmaps and Statistics

Bitmap indexA compressed index designed for non-primary key columns. Bit-wise

operations can be used to quickly match WHERE criteria.

Analyze statisticsBy collecting statistics about the actual data within the index, the

DBMS can optimize the search path. For example, if it knows that only a few rows match one of your search conditions in a table, it can apply that condition first, reducing the amount of work needed to join tables.

14

Page 10: Jerry Post Copyright © 2013 DATABASE Database Management Systems Chapter 9 Data Warehouses and Data Mining 1

Problems with Indexes

Each index must be updated when rows are inserted, deleted or modified.

Changing one row of data in a table with many indexes can result in considerable time and resources to update all of the indexes.

Steps to improve performance Index primary keys Index common join columns (usually primary keys) Index columns that are searched regularlyUse a performance analyzer

15

Page 11: Jerry Post Copyright © 2013 DATABASE Database Management Systems Chapter 9 Data Warehouses and Data Mining 1

Data Warehouse

16

OLTP Database3NF tables

Operationsdata

Predefinedreports

Data warehouseStar configuration

Daily datatransfer

Interactivedata analysis

Flat files

Page 12: Jerry Post Copyright © 2013 DATABASE Database Management Systems Chapter 9 Data Warehouses and Data Mining 1

Data Warehouse Goals

Existing databases optimized for Online Transaction Processing (OLTP) Online Analytical Processing (OLAP) requires fast retrievals, and only

bulk writes. Different goals require different storage, so build separate dta warehouse

to use for queries. Extraction, Transformation, Loading (ETL) Data analysis

Ad hoc queries Statistical analysis Data mining (specialized automated tools)

17

Page 13: Jerry Post Copyright © 2013 DATABASE Database Management Systems Chapter 9 Data Warehouses and Data Mining 1

Extraction, Transformation, and Loading (ETL)

18

Data warehouse:All data must be consistent.

Customers

Convert Client to Customer

Apply standard product numbers

Convert currencies

Fix region codes

Transaction data from diverse systems.

Page 14: Jerry Post Copyright © 2013 DATABASE Database Management Systems Chapter 9 Data Warehouses and Data Mining 1

OLTP v. OLAP

19

Category OLTP OLAP Data storage 3NF tables Multidimensional cubes Indexes Few Many J oins Many Minimal Duplicated data Normalized,

limited duplication Denormalized DBMS

Updates Constant, small data Overnight, bulk Queries Specific Ad hoc

Page 15: Jerry Post Copyright © 2013 DATABASE Database Management Systems Chapter 9 Data Warehouses and Data Mining 1

ETL Data Sources

20

Data Warehouse

SQL Database

Spreadsheet

CSV File

Proprietary Files

Page 16: Jerry Post Copyright © 2013 DATABASE Database Management Systems Chapter 9 Data Warehouses and Data Mining 1

Problems with Timing

21

CSV FileSpreadsheet

Data Warehouse

Bulk loaderExport

Need to set a timer to automate the data export.Timer runs in operating system, so you need an OS program to control the tool (Excel).

The bulk loader must run after the CSV file has been created.If anything goes wrong, it will be difficult to fix automatically and a person probably needs to be called.

Page 17: Jerry Post Copyright © 2013 DATABASE Database Management Systems Chapter 9 Data Warehouses and Data Mining 1

ETL Tools

22

1. Dynamic Distributed Link Connectiona. For SQL data sources, creates remote linked table that can be

used in SQL statements.b. INSERT INTO warehouse table … SELECT * FROM remote…c. Sometimes for CSV.

2. Bulk Loada. Mostly for CSV sources.b. Often issues with date formats.

3. Local Source a. Sometimes need to push data from the source into a CSV file.b. Particularly from proprietary formats.c. Can be harder to automate.

Get data into SQL to use its power to compare and transform data.

Page 18: Jerry Post Copyright © 2013 DATABASE Database Management Systems Chapter 9 Data Warehouses and Data Mining 1

Multidimensional Cube

23

TimeSale Month

Customer Location

Category

CA

MI

NY

TX

Jan Feb Mar Apr May

BirdCat

DogFishSpider

880 750 935 684 993

1011 1257 985 874 1256

437 579 683 873 745

1420 1258 1184 1098 1578

Page 19: Jerry Post Copyright © 2013 DATABASE Database Management Systems Chapter 9 Data Warehouses and Data Mining 1

Sales Date: Time Hierarchy

24

Year

Quarter

Month

Week

Day

Levels Roll-upTo get higher-level totals

Drill-downTo get lower-level details

Page 20: Jerry Post Copyright © 2013 DATABASE Database Management Systems Chapter 9 Data Warehouses and Data Mining 1

OLAP Computation Issues

Quantity Price Quantity*Price

3 5.00 15.00

2 4.00 8.00

5 9.00 45.00 or 23.00

25

Compute Quantity*Price in base query, then add to get $23.00

If you use Calculated Measure in the Cube, it will add first and multiply second to get $45.00, which is wrong.

Page 21: Jerry Post Copyright © 2013 DATABASE Database Management Systems Chapter 9 Data Warehouses and Data Mining 1

Snowflake Design

26

SaleIDItemIDQuantitySalePriceAmount

OLAPItems

ItemIDDescriptionQuantityOnHandListPriceCategory

Merchandise

SaleIDSaleDateEmployeeIDCustomerIDSalesTax

Sale

CustomerIDPhoneFirstNameLastNameAddressZipCodeCityID

Customer

CityIDZipCodeCityState

City

Dimension tables can join to other dimension tables.

Page 22: Jerry Post Copyright © 2013 DATABASE Database Management Systems Chapter 9 Data Warehouses and Data Mining 1

Star Design

27

SalesQuantity

Amount=SalePrice*Quantity

Fact Table

Products

CustomerLocation

Sales Date

Dimension Tables

Page 23: Jerry Post Copyright © 2013 DATABASE Database Management Systems Chapter 9 Data Warehouses and Data Mining 1

OLAP Data Browsing

28

Page 24: Jerry Post Copyright © 2013 DATABASE Database Management Systems Chapter 9 Data Warehouses and Data Mining 1

OLAB Cube Browser: SQL Server

29

Page 25: Jerry Post Copyright © 2013 DATABASE Database Management Systems Chapter 9 Data Warehouses and Data Mining 1

Microsoft PivotTable

30

Page 26: Jerry Post Copyright © 2013 DATABASE Database Management Systems Chapter 9 Data Warehouses and Data Mining 1

Microsoft PivotChart

31

Page 27: Jerry Post Copyright © 2013 DATABASE Database Management Systems Chapter 9 Data Warehouses and Data Mining 1

SELECT with two GROUP BY Columns

32

SELECT Category, Month([SaleDate]) AS [Month],Sum([SalePrice]*[Quantity]) AS Amount

FROM Merchandise INNER JOIN (Sale INNER JOIN SaleItem

ON Sale.SaleID = SaleItem.SaleID) ON Merchandise.ItemID = SaleItem.ItemID

GROUP BY Merchandise.Category, Month([SaleDate]);

Category Month Amount

BirdBird⋮CatCat⋮

12⋮ 12⋮

135.00

45.00⋮

396.00

113.85⋮

Page 28: Jerry Post Copyright © 2013 DATABASE Database Management Systems Chapter 9 Data Warehouses and Data Mining 1

SQL ROLLUP

33

SELECT Category, Month(SaleDate) As SaleMonth, Sum(SalePrice*Quantity) As Amount

FROM Sale INNER JOIN SaleItemON Sale.SaleID=SaleItem.SaleID

INNER JOIN Merchandise ON SaleItem.ItemID=Merchandise.ItemID

GROUP BY Category, Month(SaleDate) WITH ROLLUP;Category Month Amount

BirdBird⋮BirdCatCat⋮Cat⋮(null)

12⋮

(null)12⋮

(null)⋮

(null)

135.00

45.00⋮

607.50

396.00

113.85⋮

1293.30⋮

8451.79

Page 29: Jerry Post Copyright © 2013 DATABASE Database Management Systems Chapter 9 Data Warehouses and Data Mining 1

Missing Values Cause Problems

34

If there are missing values in the groups, it can be difficult to identify the super-aggregate rows.

Bird 1 135.00Bird 2 45.00…Bird (null) 32.00Bird (null) 607.50Cat 1 396.00Cat 2 113.85…Cat (null) 1293.30…(null) (null) 8451.79

Category Month Amount

Super-aggregate

Missing date

Page 30: Jerry Post Copyright © 2013 DATABASE Database Management Systems Chapter 9 Data Warehouses and Data Mining 1

GROUPING Function

35

SELECT Category, Month…, Sum …, GROUPING (Category) AS Gc, GROUPING (Month) AS Gm

FROM …GROUP BY ROLLUP (Category, Month...)

Bird 1 135.00 0 0Bird 2 45.00 0 0…Bird (null) 607.50 1 0Cat 1 396.00 0 0Cat 2 113.85 0 0…Cat (null) 1293.30 1 0…(null) (null) 8451.79 1 1

Category Month Amount Gc Gm

Page 31: Jerry Post Copyright © 2013 DATABASE Database Management Systems Chapter 9 Data Warehouses and Data Mining 1

CUBE Option

36

Bird 1 135.00 0 0Bird 2 45.00 0 0…Bird (null) 607.50 1 0Cat 1 45.00 0 0Cat 2 113.85 0 0…Cat (null) 1293.30 1 0(null) 1 1358.82 0 1(null) 2 1508.94 0 1(null) 3 2362.68 0 1…(null) (null) 8451.79 1 1

Category Month Amount Gc Gm

SELECT Category, Month, Sum, GROUPING (Category) AS Gc,

GROUPING (Month) AS GmFROM …GROUP BY CUBE (Category, Month...)

Page 32: Jerry Post Copyright © 2013 DATABASE Database Management Systems Chapter 9 Data Warehouses and Data Mining 1

37

GROUPING SETS: Hiding Details

Bird (null) 607.50Cat (null) 1293.30…(null) 1 729.00(null) 2 1358.82(null) 3 2362.68…(null) (null) 8451.79

Category Month AmountSELECT Category, Month, SumFROM …GROUP BY GROUPING SETS ( ROLLUP (Category),

ROLLUP (Month),( )

)

Page 33: Jerry Post Copyright © 2013 DATABASE Database Management Systems Chapter 9 Data Warehouses and Data Mining 1

SQL OLAP Analytical Functions

38

VAR_POP varianceVAR_SAMPSTDDEV_POP standard deviationSTDEV_SAMPCOVAR_POP covarianceCOVAR_SAMPCORR correlationREGR_R2 regression r-squareREGR_SLOPE regression data (many)REGR_INTERCEPT

Page 34: Jerry Post Copyright © 2013 DATABASE Database Management Systems Chapter 9 Data Warehouses and Data Mining 1

SQL RANK Functions

39

SELECT Employee, SalesValue RANK() OVER (ORDER BY SalesValue DESC) AS rankDENSE_RANK() OVER (ORDER BY SalesValue DESC) AS denseFROM SalesORDER BY SalesValue DESC, Employee;

Employee SalesValue rank dense

Jones 18,000 1 1

Smith 16,000 2 2

Black 16,000 2 2

White 14,000 4 3

DENSE_RANK does not skip numbers

Page 35: Jerry Post Copyright © 2013 DATABASE Database Management Systems Chapter 9 Data Warehouses and Data Mining 1

Intermediate Query

40

qryOLAPSQL99

CREATE VIEW qryOLAPSQL99 ASSELECT Category, Year(SaleDate)*100+Month(SaleDate) As SaleMonth, Sum(SalePrice*Quantity) As MonthAmountFROM SaleINNER JOIN SaleItem ON Sale.SaleID=SaleItem.SaleIDINNER JOIN Merchandise ON SaleItem.ItemID=Merchandise.ItemIDGROUP BY Category, Year(SaleDate)*100+Month(SaleDate);

Page 36: Jerry Post Copyright © 2013 DATABASE Database Management Systems Chapter 9 Data Warehouses and Data Mining 1

41

SQL OLAP Windows

SELECT Category, SaleMonth, MonthAmount, AVG(MonthAmount) OVER (PARTITION BY Category ORDER BY SaleMonth ASC ROWS 2 PRECEDING) AS MAFROM qryOLAPSQL99ORDER BY SaleMonth ASC;

Category SaleMonth MonthAmount MA

BirdBirdBirdBird⋮

2013-012013-022013-032013-06

13545202.567.5

13590127.5105

CatCatCatCat⋮

2013-012013-022013-032013-04

396113.85443.72.25

396254.925317.85186.6

Page 37: Jerry Post Copyright © 2013 DATABASE Database Management Systems Chapter 9 Data Warehouses and Data Mining 1

SQL Server Partition Syntax

42

SELECT Category, SaleMonth, MonthAmount, AVG(MonthAmount) OVER (PARTITION BY Category ORDER BY SaleMonth ASC ROWS 2 PRECEDING) AS MAFROM qryMonthlyMerchandiseORDER BY Category, SaleMonth;

CREATE VIEW qryMonthlyMerchandise ASSELECT Category, Year(SaleDate)*100+Month(SaleDate) As SaleMonth, sum(SalePrice*Quantity) As MonthAmountFROM Sale INNER JOIN SaleItem ON Sale.SaleID=SaleItem.SaleID INNER JOIN Merchandise ON Merchandise.ItemID=SaleItem.ItemIDGROUP BY Category, Year(SaleDate)*100+Month(SaleDate);

Page 38: Jerry Post Copyright © 2013 DATABASE Database Management Systems Chapter 9 Data Warehouses and Data Mining 1

Ranges: OVER

43

SELECT SaleDate, ValueSUM(Value) OVER (ORDER BY SaleDate) AS running_sum,SUM(Value) OVER (ORDER BY SaleDate RANGE

BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS running_sum2,

SUM (Value) OVER (ORDER BY SaleDate RANGEBETWEEN CURRENT ROWAND UNBOUNDED FOLLOWING) AS remaining_sum;

FROM …ORDER BY …

Sum1 computes total from beginning through current row.

Sum2 does the same thing, but more explicitly lists the rows.

Sum3 computes total from current row through end of query.

Page 39: Jerry Post Copyright © 2013 DATABASE Database Management Systems Chapter 9 Data Warehouses and Data Mining 1

OVER Function

44

-- Create a view to get the simple monthly merchandise totalsCREATE VIEW qryMonthlyTotal ASSELECT SaleMonth, Sum(MonthAmount) As ValueFROM qryMonthlyMerchandiseGROUP BY SaleMonth;

SELECT SaleMonth, Value,SUM(Value) OVER (ORDER BY SaleMonth) AS running_sum,SUM(Value) OVER (ORDER BY SaleMonth RANGE

BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS running_sum2,

SUM (Value) OVER (ORDER BY SaleMonth RANGEBETWEEN CURRENT ROWAND UNBOUNDED FOLLOWING) AS remaining_sum

FROM qryMonthlyTotalORDER BY SaleMonth;

Page 40: Jerry Post Copyright © 2013 DATABASE Database Management Systems Chapter 9 Data Warehouses and Data Mining 1

OVER Function Results

Month Value Sum1 Sum2 Remain

2013-012013-022013-032013-042013-052013-062013-072013-082013-092013-102013-112013-12

1358.821508.942362.68377.55418.50522.45168.30162.70288.90666.00452.25164.70

1358.822867.765230.445607.996026.496548.946717.246879.947168.847834.848287.098451.79

1358.822867.765230.445607.996026.496548.946717.246879.947168.847834.848287.098451.79

8451.797092.975584.033221.352843.802425.301902.851734.551571.851282.95616.95164.70

45

Page 41: Jerry Post Copyright © 2013 DATABASE Database Management Systems Chapter 9 Data Warehouses and Data Mining 1

46

LAG and LEAD Functions

LAG or LEAD: (Column, # rows, default)SELECT SaleMonth, Value,

LAG(Value, 1, 0) OVER (ORDER BY SaleMonth) AS Prior_Month,LEAD(Value,1,0) OVER (ORDER BY SaleMonth) AS Next_Month

FROM qryMonthlyTotalORDER BY SaleMonth

Prior is 0 from default value

Not part of standard yet? But are in SQL Server and Oracle.

SaleMonth MonthAmount Prior_Month Next_Month

2013-012013-022013-03⋮2013-12

1358.821508.942362.68⋮164.70

01358.821508.94⋮452.25

1508.942362.68377.55⋮0

Page 42: Jerry Post Copyright © 2013 DATABASE Database Management Systems Chapter 9 Data Warehouses and Data Mining 1

Data Mining

47

Databases

Reports

Queries

OLAP

Data Mining

Transactions and operations

Specific ad hoc questions

Aggregate, compare, drill down

Unknown relationships

Goal: To discover unknown relationships in the data that can be used to make better decisions.

Page 43: Jerry Post Copyright © 2013 DATABASE Database Management Systems Chapter 9 Data Warehouses and Data Mining 1

Exploratory Analysis

Data Mining usually works autonomously.Supervised/directedUnsupervisedOften called a bottom-up approach that scans the data to find

relationships

Some statistical routines, but they are not sufficientStatistics relies on averagesSometimes the important data lies in more detailed pairs

48

Page 44: Jerry Post Copyright © 2013 DATABASE Database Management Systems Chapter 9 Data Warehouses and Data Mining 1

Common Techniques

Classification/Prediction/Regression Association Rules/Market Basket Analysis Clustering

Data pointsHierarchies

Neural Networks Deviation Detection Sequential Analysis

Time series eventsWebsites

Textual Analysis Spatial/Geographic Analysis

49

Page 45: Jerry Post Copyright © 2013 DATABASE Database Management Systems Chapter 9 Data Warehouses and Data Mining 1

Classification Examples

ExamplesWhich borrowers/loans are most likely to be successful?Which customers are most likely to want a new item?Which companies are likely to file bankruptcy?Which workers are likely to quit in the next six months?Which startup companies are likely to succeed?Which tax returns are fraudulent?

50

Page 46: Jerry Post Copyright © 2013 DATABASE Database Management Systems Chapter 9 Data Warehouses and Data Mining 1

Classification Process

51

Income Married Credit History Job Stability Success

50000 Yes Good Good Yes

25000 Yes Bad Bad No

75000 No Good Good No

Clearly identify the outcome/dependent variable.Identify potential variables that might affect the outcome.

Supervised (modeler chooses)Unsupervised (system scans all/most)Use sample data to test and validate the model.System creates weights that link independent variables to outcome.

Page 47: Jerry Post Copyright © 2013 DATABASE Database Management Systems Chapter 9 Data Warehouses and Data Mining 1

Classification Techniques

Regression Bayesian Networks Decision Trees (hierarchical) Neural Networks Genetic Algorithms

ComplicationsSome methods require categorical dataData size is still a problem

52

Page 48: Jerry Post Copyright © 2013 DATABASE Database Management Systems Chapter 9 Data Warehouses and Data Mining 1

Data For Classification

53

Sales Year_Month Employee SaleState

59510 201301 15 CA

35202 201301 16 OR

63039 201302 15 CA

29281 201301 15 OR

48402 201302 16 CA

57812 201303 15 CA

Columns/Attributes

Each row is one instance.

SELECT Sum(Price*Quantity) As Sales,Year(SaleDate)*100+Month(SaleDate) As Year_Month,EmployeeID, SaleState

FROM …

Page 49: Jerry Post Copyright © 2013 DATABASE Database Management Systems Chapter 9 Data Warehouses and Data Mining 1

Classification Example: Decision Tree for Model Type

54

Attributes tested: Gender, SaleYear, Income, and city Population

Page 50: Jerry Post Copyright © 2013 DATABASE Database Management Systems Chapter 9 Data Warehouses and Data Mining 1

Association/Market Basket

ExamplesWhat items are customers likely to buy together?What Web pages are closely related?Others?

Classic (early) example:Analysis of convenience store data showed customers often buy

diapers and beer together. Importance: Consider putting the two together to increase cross-

selling.

55

Page 51: Jerry Post Copyright © 2013 DATABASE Database Management Systems Chapter 9 Data Warehouses and Data Mining 1

Association Details (two items)

Rule evaluation (A implies B)Support for the rule is measured by the percentage of all transactions

containing both items: P(A ∩ B)Confidence of the rule is measured by the transactions with A that also

contain B: P(B | A)Lift is the potential gain attributed to the rule—the effect compared to

other baskets without the effect. If it is greater than 1, the effect is positive:

P(A ∩ B) / ( P(A) P(B) )P(B|A)/P(B)

Example: Diapers implies BeerSupport: P(D ∩ B) = .6 P(D) = .7 P(B) = .5Confidence: P(B|D) = .857 = P(D ∩ B)/P(D) = .6/.7Lift: P(B|D) / P(B) = 1.714 = .857 / .5

56

Page 52: Jerry Post Copyright © 2013 DATABASE Database Management Systems Chapter 9 Data Warehouses and Data Mining 1

Association Challenges

57

Item Freq.

1 “ nails 2%

2” nails 1%

3” nails 1%

4” nails 2%

Lumber 50%

Item Freq.

Hardware 15%

Dim. Lumber 20%

Plywood 15%

Finish lumber 15%

If an item is rarely purchased, any other item bought with it seems important. So combine items into categories.

Some relationships are obvious.Burger and fries.Some relationships are meaningless.Hardware store found that toilet rings sell well only when a new store first opens. But what does it mean?

Page 53: Jerry Post Copyright © 2013 DATABASE Database Management Systems Chapter 9 Data Warehouses and Data Mining 1

Data for Association

58

SaleID ItemID Description Category4 36 Leash Dog4 1 Dog Kennel-Small Dog6 20 Wood Shavings/Bedding Mammal6 21 Bird Cage-Medium Bird7 40 Litter Box-Covered Cat7 19 Cat Litter-10 pound Cat7 5 Cat Bed-Small Cat8 16 Dog Food-Can-Premium Dog8 36 Leash Dog8 11 Dog Food-Dry-50 pound Dog

SELECT SaleItem.SaleID, SaleItem.ItemID, Merchandise.Description, Merchandise.CategoryFROM Merchandise INNER JOIN SaleItem ON Merchandise.ItemID = SaleItem.ItemIDORDER BY SaleItem.SaleID;

Specify SaleID as the transaction identifier.

36, 120, 2140, 19, 516, 36, 11

Transaction Basket

Need to write cursor code that builds a comma-separated string for each SaleID.

Page 54: Jerry Post Copyright © 2013 DATABASE Database Management Systems Chapter 9 Data Warehouses and Data Mining 1

Example: Model Types by Customer

59

Page 55: Jerry Post Copyright © 2013 DATABASE Database Management Systems Chapter 9 Data Warehouses and Data Mining 1

Cluster Analysis

60

Small intracluster distance

Large intercluster distance

ExamplesAre there groups of customers? (If so, we can cross-sell.)Do the locations for our stores have elements in common? (So we can search for similar clusters for new locations.)Do our employees (by department?) have common characteristics? (So we can hire similar, or dissimilar, people.)Problem: Many dimensions and large datasets

Page 56: Jerry Post Copyright © 2013 DATABASE Database Management Systems Chapter 9 Data Warehouses and Data Mining 1

Data for Cluster Analysis

61

Sales Age

55032 35

38394 15

84940 27

47482 16

22502 23

48490 46

39309 56

Attributes are columns

Each row represents one combination/point

Page 57: Jerry Post Copyright © 2013 DATABASE Database Management Systems Chapter 9 Data Warehouses and Data Mining 1

Cluster Example: Bicycle

62

Attributes: model type, construction type (a proxy for material used), order year, sale price, bike size, and time to build.

Mountain and Hybrid

Road, Race, Track

Page 58: Jerry Post Copyright © 2013 DATABASE Database Management Systems Chapter 9 Data Warehouses and Data Mining 1

Geographic/Location

63

ExamplesCustomer location and sales comparisonsFactory sites and costEnvironmental effectsChallenge: Map data, multiple overlays

Page 59: Jerry Post Copyright © 2013 DATABASE Database Management Systems Chapter 9 Data Warehouses and Data Mining 1

Data for Geographic Analysis

64

State Sales

CA 50381

WA 42145

OR 36208

ID 28891

AZ 46784

UT 38987

NV 32889

Attributes are columns.At least one column must contain geographic location.

Each row represents one location.Location can be many things.StateCountryRegion (custom defined)Latitude, LongitudeAddressCityCountyZIP CodeCensus TractStandard Metropolitan Statistical Area

Page 60: Jerry Post Copyright © 2013 DATABASE Database Management Systems Chapter 9 Data Warehouses and Data Mining 1

Bicycle Sales by State for 2009

65