Professional Documents
Culture Documents
Data Warehouse Overview
Data Warehouse Overview
(slides in this section are used courtesy of Carrig Emerging Technology Ph: 410- 553- 6760 www.c a r r i g e t. c o m )
Introduction to Data Warehousing and Data Introduction to Data Warehousing and Data Mining Mining
1) Data Warehouse Introduction 2) Engineering Conflicts 3) OLTP and DSS 4) Stovepipe vs. Integration 5) Data Warehouse Solution 6) Enterprise Information System 7) Security in a Data Warehouse 8) Moving Data to a Data Warehouse 9) Data Marts 10) Data Mining
2
Introduction Introduction
Key topics for this course include:
Data Warehouse Data Mart Data Mining
Background and review of relational database systems Main focus on data warehouse and data mining
Engineering Conflicts, Query and Update Engineering Conflicts, Query and Update
It is often an engineering problem when data is updated and long-running queries occur at the same time In some cases, the users who are doing updates must wait for queries to complete One way to avoid this is to make a read-only copy of data
Database System Application
Data for update Data for query
DSS Application
Solution:
Use a data warehouse, where data is integrated from the several different stovepipe systems Data warehouse is really sharing-lite -- you dont have to co-ordinate as much when applications are built and you still reap the benefits of data sharing
10
11
If an active, corporate sponsor does not exist, data sources will be very difficult to identify Only add data to the warehouse that will answer key, corporate questions asked by the corporate sponsor. Otherwise, you will have a data dump
12
13
Data Warehouse
14
15
General users want a tool that provides detailed data, but is very easy to use
Want access to the data warehouse to do routine tasks such as Find me Hanks phone number, etc. Simple application, but not so focused on large reports
16
Data Warehouse
Finance Subject Area Inventory Subject Area Sales Subject Area
17
18
19
Moving Data into the Data Warehouse Moving Data into the Data Warehouse
Moving data from source OLTP systems to the data warehouse is the hard part of data warehousing Updates to the data warehouse are performed periodically
weekly nightly monthly
Occasionally, real-time data is needed in a data warehouse, but this is not very common
20
10
Data Warehouse
21
22
11
Data Warehouse
Finance Subject Area Inventory Subject Area Sales Subject Area California Data Mart
23
24
12
25
26
13
Data Mining using Separate Data Data Mining using Separate Data
You can move data from the data warehouse to data mining tools
Advantages Data mining tools may organize data so they can run faster Disadvantages Could be very expensive to move large amounts of data
Data Warehouse
Data Mining Against the Data Warehouse Data Mining Against the Data Warehouse
Data mining tools can access data directly in the Data Warehouse
Advantages No copy of data is needed for data mining Disadvantages Data may not be organized in a way that is efficient for the tool
Data Warehouse
28
14
SQL Review
(slides in this section are used courtesy of Carrig Emerging Technology Ph: 410- 553- 6760 www.c a r r i g e t. c o m )
30
15
1) Introduction to SQL 2) Data Definition Language (DDL) 3) Data Manipulation Language (DML) 4) SELECT Construct 5) SELECT Operators 6) Wildcard Searches 7) Aggregate Operators 8) Calculated Attributes 9) Sorting Results
31
32
16
33
34
17
35
36
18
37
Query Purpose: List all information about food products that are either cereal or fruit SELECT * FROM TinyProducts WHERE (ProductName = 'Cereal') OR (ProductName = 'Fruit')
38
19
39
IN Operator IN Operator
The IN operator allows a search for records that match one value in a set of unordered values Example questions to use IN:
'Find all products whose type is Food, Hardware, or Housewares' 'Find all food whose type is Meat, Fish, Vegetables, or Fruit'
40
20
IN Example IN Example
Query Purpose: List the name of Housewares that are Cookware, Linens, or Dishes SELECT ProductName, ProductType FROM TinyProducts WHERE ProductName in ('Cookware', 'Linens', 'Dishes') instead of:
SELECT ProductName, ProductType FROM TinyProducts WHERE (ProductName = Cookware') OR (ProductName = 'Linens') OR (ProductName = 'Dishes')
41
1.50
4.00
42
21
44
22
46
23
47
1+2+3+4
48
24
(+,-, *, /)
50
25
51
52
26
53
27
1) GROUP BY Construct 2) HAVING Filter 3) Multiple Tables 4) Joins 5) Equijoins 6) Cartesian Product 7) Nulls 8) OUTER JOIN
56
28
57
58
29
GROUP BY With WHERE GROUP BYWith WHERE GROUP BY GROUP BY With WHERE WHERE
To filter data further, we can use the WHERE clause with GROUP BY clause Query Purpose: For each department, list the highest salary of their administrative assistants. SELECT Department, MAX(Salary) FROM EMPLOYEE WHERE Title='administrative assistant' GROUP BY Department
59
60
30
David 100
Joins Joins
Joins are the means by which multiple tables can be combined. A join allows us to combine data from different tables. A join operation is done through the SELECT construct. Types of Joins: Equijoin, Outer Join, Inner Join
62
31
Equijoin Equijoin
Joins only those rows where a foreign key matches the primary key Allows information from multiple tables to be linked together in a single query Can be used to link as many tables as needed in a single query
63
64
32
ATTENDS
EmpID 1 2 2 3 3 3 College Harvard GMU Nova Yale Nova GMU GPA 2.45 3.79 3.65 2.85 2.65 4.0
65
Sample Query: SELECT b.Name FROM EMPLOYEE a, ATTENDS b WHERE a.Name = 'Ethel'
66
33
67
Nulls Nulls
An attribute may be defined as null. This indicates that the value is unknown and avoids the need for user-defined special indicators. To prevent a column from having nulls, specify NOT NULL on the column in the CREATE TABLE statement when setting up the database.
68
34
69
70
35
71
Name
GPA
---------- ----Fred 2.45 Ethel 3.79 Ethel 3.65 Mike 2.85 Mike 2.65 Mike 4.00 David NULL
72
36
Advanced SQL
(slides in this section are used courtesy of Carrig Emerging Technology Ph: 410- 553- 6760 www.c a r r i g e t. c o m )
73
1) Finding the nth element in a list 2) Finding the median 3) Correlated subquery 4) Data Definition Language Constructs
74
37
75
Find the Nth Element: Example Table Find the Nth Element: Example Table
Consider a table, called TEST, with just one column, x, with the following values: X 4 5 8
76
38
Find the Nth Element: Step 1 Find the Nth Element: Step 1
First join TEST with itself, this yields each element matched with every other element: 4 4 4 5 5 5 8 8 8 4 5 8 4 5 8 4 5 8
77
Find the Nth Element: Step 2 Find the Nth Element: Step 2
Next keep only those rows where the first column is greater than or equal the second column. 4 4 4 5 5 5 8 8 8 4 5 8 4 5 8 4 5 8 4 5 5 8 8 8 4 4 5 4 5 8
Notice the pattern that just developed, each number on the list now has a certain number of values that match on the right. This number matches the position of this value in the list. For example, 4 has only one match as it is the first number in the list, 5 has two matches, 8 has three matches.
78
39
Find the Nth Element: Step 3 Find the Nth Element: Step 3
Now group by the column on the left and identify the size of each group. The same ideas can be applied to any SELECT statement output. 4 5 5 8 8 8 4 4 5 4 5 8 4 5 8 1 2 3
79
Finding the Nth Element: Example Finding the Nth Element: Example
Query Purpose: Find the information about the product with the second highest price.
SELECT a.ProductName, a.ProductType, a.Price, a.SKUNumber FROM TinyProducts a, TinyProducts b WHERE a.Price >= b.Price GROUP BY a.ProductName,a.ProductType, a.Price, a.SKUNumber HAVING COUNT(*) = (SELECT COUNT(*)-1 FROM TinyProducts)
80
40
Finding the Top N Elements: Example Finding the Top N Elements: Example
To ask for the top n values instead of the nth value, specify a range (>=) instead of just an equality (=) in the HAVING. Query Purpose: Find information about the products with the two highest prices.
SELECT a.ProductName, a.ProductType, a.Price, a.SKUNumber FROM TinyProducts a, TinyProducts b WHERE a.Price >= b.Price GROUP BY a.ProductName,a.ProductType, a.Price, a.SKUNumber HAVING COUNT(*) >= (SELECT COUNT(*)-1 FROM TinyProducts) ORDER BY a.Price
81
82
41
83
SELECT a.Name, a.Salary FROM Employee a WHERE EXISTS (SELECT FROM WHERE AND b.Salary Employee b a.Salary > b.Salary b.Name = 'Ethel')
84
42
INSERT
Add rows to a single table
UPDATE
Modify rows in a single table
DELETE
Remove rows from a single table
85
86
43
87
88
44
89
90
45
1) Key Security Services 2) Views 3) Access Control 4) Roles 5) Encryption 6) Audit Trails 7) Security Holes 8) Intrusion Detection 9) Misuse Detection
91
Introduction Introduction
A key feature provided by database systems is good security services.
In a database system with good security, applications do not have to worry about problems that arise with security violations.
A data warehouse also requires good security services because it holds key, corporate data.
Database System
EIS
Security Services
92
46
93
Security aspects of EIS applications must be designed and implemented very thoroughly. Access control and audits are two of the critical components of security.
94
47
95
96
48
Now users of the view SAFE_EMPLOYEE will not even know that salary exists.
SAFE_EMPLOYEE
Name Hank Esther Tom Sue Dave Pete Kathy Address 1 South Street 2 North Street 34 Main Street 45 Easy Street 56 5th Avenue 7 Broadway 89 Western Avenue Salary
97
98
49
Access control is done by DBAs and creators of tables. To remove access the REVOKE command is used.
Example: REVOKE SELECT ON EMPLOYEE FROM MARY
99
100
50
If the database system controls accesses than it does not matter what the application does, accesses are controlled consistently (same for SALES as MARKETING) However, more fine-grained access control can be granted in the application.
101
Care must be taken to restrict users in a consistent fashion so that a user cannot jump to a different application and avoid security set up by another application.
102
51
Role Based Security in a Data Warehouse Role Based Security in a Data Warehouse
Both application and database level security are useful in a data warehouse. Database level security is needed so that users are only allowed to see data they need to see. Application level security can be used to control access to certain menus so that users do not even know what reports exist.
103
Encryption Encryption
Encryption is the process of coding data so that it can only be read by users who have the key that allows them to decrypt the data.
Example: A message sell 500 shares would appear as xyzzy without the key. Once the key is paired with the encrypted string xyzzy, it can then be decrypted. The size of the key is a factor in how difficult it is to attack the encryption scheme.
104
52
One way to reduce the risk of this threat is to encrypt traffic on the network.
User
Network
Data Warehouse
Application
Database System
Tape Backup
105
106
53
EIS
Database System
Data Warehouse
107
Tape Backup
108
54
If a user is suspected of an evil deed, the audit trail can be examined to identify what data has been accessed by users.
109
For data warehouses, the SELECT is often used to track the queries that have been run against the warehouse.
110
55
Other Uses for DW Audit Trails Other Uses for DW Audit Trails
Audit trails can be used to identify the most popular data in the warehouse.
This information can be used to optimize queries
An additional use for audit trails is performance tuning of the data warehouse.
Administrators know where to focus their efforts Reduces administrative overhead
111
Dealing with Known Security Holes Dealing with Known Security Holes
Commercial database systems and operating systems are often filled with holes that allow users to obtain unauthorized access.
To reduce the risk of these known holes, vendors often provide fixes to their products as soon as these holes become public.
It is important to constantly keep up with known security holes and apply the latest fixes as soon as they are released. One of the key risks surrounding a data warehouse is that privileged users have the keys to the kingdom.
112
56
113
Reducing the Risk of Privileged Users Reducing the Risk of Privileged Users
One way to reduce the risk of privileged users is to separate security administration from database administration.
This would separate the task of giving accesses and managing the audit trail from the task of making sure the data in the warehouse was correct and properly optimized.
Security Services
Access Control Audit
Security Services
Access Control Audit
Database Services
Database Tuning Query Optimization Backups
Database Services
Database Tuning Query Optimization Backups
114
57
Audit Trails can be used to identify either type of attack, but identification of misuse is typically MUCH harder to do than intrusion.
115
USER
DATA WAREHOUSE
116
58
For data warehouses the threat of misuse is high especially by privileged users.
117
Summary Summary
DBMS Security is useful for data warehouses to hide data from users with views and to restrict access to data with GRANT and REVOKE. Application Level Security assists EIS that access data warehouses by hiding certain reports from users. Encryption can be used to further protect against the risk of someone walking off with the data warehouse. Audit Trails are useful for: Catching attackers Identifying usage trends of the data warehouse
118
59
119
Moving Data to the Data Warehouse Moving Data to the Data Warehouse
1) Moving Data into the Data Warehouse 2) Updating the Data Warehouse 3) Full Refresh 4) Copy Only the Changes 5) BCP 6) Simple Transformations 7) Complex Transformations 8) Commercial ETL Tools
120
60
Moving Data into the Data Warehouse Moving Data into the Data Warehouse
Data must be moved to the data warehouse from source systems. Some key issues:
Determine the frequency of data updates -- how often should data be moved from source systems to the data warehouse. Various means of updating data in the warehouse exist: SQL Commands Database system load programs (e.g.; SQL Servers BCP) Commercial tools
121
Data Warehouse
Finance Subject Area Inventory Subject Area Sales Subject Area
122
61
Frequency of Updates to the Data Frequency of Updates to the Data Warehouse Warehouse
Updates may occur daily, weekly, monthly, or in real-time.
Finance OLTP Application
te da Up ily Da
Finance Subject Area
Data Warehouse
Inventory Subject Area Sales Subject Area
123
124
62
Copy the entire source table in the OLTP system to the destination table in the Data Warehouse.
Source OLTP
esh efr ll R Fu
Finance Subject Area
Data Warehouse
Inventory Subject Area Sales Subject Area
125
Source Table
Target Table
126
63
Modified data since last update to the warehouse Data from two updates ago. Historical data no longer in source OLTP.
127
Full Refresh vs. Only the Changes Full Refresh vs. Only the Changes
Full Refresh
Pros Much easier to implement Less chance of messing up your database (good data integrity) Cons Can take a lot longer to actually do -- may run out of night Can lose out on warehouse ability to track historical data.
64
Example:
INSERT INTO DW_EMPLOYEE SELECT * FROM EMPLOYEE
TARGET
129
130
65
Source Table
Target Table
131
To bulk copy data from the publishers.txt file into the pub2 table in the pubs database, execute from the command prompt:
bcp pubs..pub2 in publishers.txt -c -Sservername -Usa -Ppassword
132
66
Store 31
(Pattern = 31, TOTAL_CLOTH = 50
Store 32
yards )
TRANSFORMATION
meters)
Data Warehouse
P a t t e r n = 3 1 , T o t a l C l o t h = 5 0 yards P a t t e r n = 3 2 , T o t a l C l o t h = 7 0 yards 133
34 in CONVERT TO CENTIMETERS
BLUE
84
TABLE 2 TABLE 1 86.36 cm COLOR TABLE 3 Long Sleeves TABLE 4 Long Sleeves
Data Warehouse
134
67
All provide libraries of common transformations. All provide the ability to code complex transformations.
135
136
68
137
138
69
Choose to use a Query for Transfer Choose to use a Query for Transfer
139
140
70
141
142
71
143
144
72
145
1996-07-04 00:00:00.000 1996-07-04 00:00:00.000 1996-07-04 00:00:00.000 1996-07-05 00:00:00.000 1996-07-05 00:00:00.000
146
73
Summary Summary
ETL is one of the hard parts of building a data warehouse. Either full refreshes of data or just the changes may be done. Doing full refresh is easy, but historical data is lost and it may take a lot of time. Tracking changes is a tough business. ETL commercial tools are beginning to mature and can lessen the pain of this task.
147
148
74
More Ways of Moving Data More Ways of Moving Data to the Data Warehouse to the Data Warehouse
1) Determining What Data Has Changed 2) Recovery Logs 3) Triggers 4) Insert Triggers 5) Delete Triggers 6) Update Triggers 7) Manual Detection
149
More Ways of Moving Data More Ways of Moving Data to the Data Warehouse to the Data Warehouse
There is a need to move data into the data warehouse from OLTP and DSS applications The problem is detecting what data needs to be moved into the data warehouse Three methods:
Recovery Logs Triggers Manual Techniques
150
75
Determining What Data Has Changed Determining What Data Has Changed
Problem: How to get updates made to the source to the same information in the data warehouse?
SOURCE
DATA WAREHOUSE
A LE TAB
S TE DA UP
P OLT
B LE TAB
151
Determining What Data Has Changed (cont.) Determining What Data Has Changed (cont.)
Problem: How to get updates made to multiple sources to the same information in the data warehouse?
SOURCE DATA WAREHOUSE
A LE TAB
ROW X
Employee
UPD A ROWTES X
NAME DEPT. Fred Mktg Hank Sales Sue Joe UPDATES IT Sales SALARY 35000 60000 71000 50000
? ?
A LE TAB
ROW X
B LE TAB
ROW X
EmployeeCount
DEPT Mktg Sales IT HR COUNT 1 1 2 1 0
SalaryInfo
DEPT AVG SAL TOT SAL
P OLT
55000
110000
152
76
Recovery log can be used to identify the data to be updated in the data warehouse.
Change Data Capture Utility This scans the database log and identifies all changes that the user is interested in and either writes them to a file or stores them in another table.
153
Change Data Capture Utility in Action Change Data Capture Utility in Action
SOURCE
OLTP
DATA
DBMS LOG
RECOVERY LOG
S AD RE
DATA WAREHOUSE
WRITES
154
77
LOG
TABLE=EMPLOYEE SSN=10 OldSalary=100, NewSalary=200
SET Salary=Salary*2.0
DATA WAREHOUSE
UPDATE
155
156
78
Con
Some difficult scenarios may occur where it is hard to see what the new update should be in the Data Warehouse. Proprietary format, may not be supported in many DBMS and will always lag behind DBMS development. Many tables will be in the source that have nothing to do with the data warehouse, but change data capture will process their changes as well.
157
Triggers Triggers
Triggers allow DBAs to specify that when an event such as an INSERT, UPDATE, or DELETE occurs on a table, another event is triggered.
Triggers are used to identify changes that are needed by the warehouse. A trigger can be added to a source table and whenever the source table is updated, an update can be placed either directly in the warehouse or in a staging table that tracks all updates.
Triggers can be used to detect the changes and perform data warehouse updates.
A different trigger might be run on key updates so that the data warehouse nightly process would know what data has changed.
158
79
A LE TAB
Values (X, Y) are inserted
X, Y
TRIGGER inserts values (X, Y) into a STAGING area
STEP 3
Nightly Process
STEP 1 STEP 4
Nightly Process inserts values (X, Y) into the Data Warehouse DATA WAREHOUSE
A LE TAB
Values (X, Y)
159
When a row is inserted in the employee table, we need to do an insert into the EmployeeStatistics table.
Shown on the next page
160
80
161
(1 ROW(S) AFFECTED)
(1 ROW(S) AFFECTED)
Employee EmpId Name Salary ------ -------------------------1 John 300.00 2 Mike 400.00 EmployeeStatistics NoEmployee TotSalary ---------- ---------2 700.00
AvgSalary --------350.00
162
81
164
82
Con
Additional work needed to create detailed triggers Non-trivial to generate a trigger to implement appropriate action May not be acceptable for commercial software on source system
165
Other Ways to Determine What Has Changed Other Ways to Determine What Has Changed
There are other manual ways of detecting the change and doing DW updates
Look at each row of OLTP and the data in the warehouse Compare the differences between the two files, if the data is not in the warehouse, add it!
OLTP
Hank John Mike Sam
DATA WAREHOUSE
Hank John
RE PA Mike M CO
ADD THE DIFFERENCES
166
83
Manually Identifying What Has Changed Manually Identifying What Has Changed
Pro
Flexible
Con
Very expensive Could take a long time
167
Summary Summary
Recovery Logs Triggers Manual Detection
168
84
169
170
85
Overview Overview
How to describe a design
Entity Relationship (ER) Diagram
Types of Designs
Normalized Star Schema Snowflake
171
Relationships
How entities interact, example: one employee may attend many colleges -- usually verbs Types of relationships 1-1 1-Many Many-1 Many-Many
172
86
MANY-1
MANY- MANY
173
87
SUPPLIER
S# 1 2 SNAME SEARS OFFICE DEPOT
PARTS
P# 1 2 PNAME HAMMERS NAILS
SP
S# 1 1 2 2 P# 1 2 1 2
175
CUSTOMER
PRODUCT
STORE
BUYS
IS-LOCATED-IN
176
88
Con
Queries can involve numerous joins The massive number of tables and links between tables makes it hard for customers to build their own queries
178
89
D1
D2
FACT
D5 D4
D3
179
Identify all the dimensions of the data being used. Think of a dimension as a way to slice the data.
Ex: by time, by product, by customer, etc.
180
90
Dimensions are
Customer Product Time Vendor
181
Time
Sale
Store Product
Price
SALE
SALE ID
CUST. ID
STORE ID
PROD. ID
PRICE
TIME
1
CUSTOMER CUST. ID
3
NAME
7
PHONE
$3.00
Buys Apples
4/24/99
Has Big Car
3
TIME
FRED
DAY 24 4
1234
Y
YEAR 99
MONTH
QTR 2Q
182
91
Con
Performance Can end up with one monster fact table, millions of rows Flexibility Not as easy for customers to change the design
183
Ad
SALES
Marketing Revenue
Sales Location
PRODUCT
Parts
Manufacturing
Sale
Price Vendor
Make Chips
Product
Cost
Price Labor
184
92
Summary Summary
Two basic types of design
Star Schema Normalized
Many Data Warehouse vendors sell products built specifically for the star schema Some data warehouses insist that normalization is the way to build the data warehouse.
185
186
93
1) Top Down Approaches 2) Enterprise Data Model Approach 3) "Let Data Users Decide" 4) "Let Data Warehouse Builders Decide" 5) "Let Senior Management Decide" 6) Bottom Up Approach
187
188
94
189
COUNT $$
CHIP SUPPLIERS
CHIP RECIPES
INGREDIANTS
190
95
Con
Very difficult to build an EDM. If the business model changes, you may have to rebuild the Enterprise Data Model and the data warehouse.
191
SOURCE
USERS
DATA WAREHOUSE
192
96
"Let Data Users Decide": An Example "Let Data Users Decide": An Example
DATA WAREHOUSE
DATA DATA
demographics
DATA
budget
trends
Advertising
Ethnic group
?
education
Age
spending
Revenue
MARKETING
HUMAN RESOURCES
FINANCE
193
"Let Data Users Decide" Approach "Let Data Users Decide" Approach
Pro
Reduces budget problems Users know best!
Con
Requires marketing Could end up with data in the warehouse that is meaningless to the people who run the place. Users may not place important data in the warehouse because their budget is small. Users who need the data may not use the DW because of budget concerns.
97
I-495
195
"Let Data Warehouse Builders Decide" "Let Data Warehouse Builders Decide"
The technical staff who is building the warehouse decides what data gets put in the warehouse.
LETS PUT INFORMATION ON HOW TO BUILD VIRUSES IN THE DATA WAREHOUSE
DATA WAREHOUSE
196
98
"Let Data Warehouse Builders Decide" "Let Data Warehouse Builders Decide" Approach Approach
Pro
Very easy to design Does not take much time Do not have to deal with users
Con
Could easily result in data DUMP not data warehouse
197
198
99
Let Senior Management Decide Approach Let Senior Management Decide Approach
Pro
Ensures executive support for the project
Con
Senior management does not have much time for this -- you will have to only get a few questions at a time This dramatically increases visibility - if you do not move quickly senior management will become very angry with the DW.
OLTP APP
OLTP APP
OLTP APP
200
100
Con
Could end up with a bunch of stove pipe data marts.
201
202
101
203
User Interface to the Data Warehouse User Interface to the Data Warehouse
1) Introduction 2) Types of Users 3) Functions Users Want to Do 4) Approaches to Building a User Interface 5) Hand Built 6) Class Libraries 7) OLAP Tools 8) Types of User Interfaces
204
102
Introduction Introduction
A User Interface (UI) is a front end application designed for the user that presents information in a simplified manner.
Data in a data warehouse does nothing if users cannot access it Users do not want to learn SQL to drive DW applications
Finance OLTP Application Inventory OLTP Application Sales OLTP Application
DATA WAREHOUSE Finance OLTP Data Inventory OLTP Data Sales OLTP Data
USER INTERFACE
205
206
103
Analysts
Have time to really analyze data and think about it May have strong statistical and IT background (i.e. Power user of Excel) Expect UI to have many complex features, and provide the ability to generate new queries and perform statistical analysis of the data.
208
104
209
Sales
1995
1999
Benchmark to competitors
what are all our competitors charging for product X
210
105
Subject Matter Experts Expect (cont.) Subject Matter Experts Expect (cont.)
Drill Down
on that chart you just showed me, I noticed that revenue was down in Region #4. Please drill down and show me the breakdown of each area in Region #4.
DRILL DOWN WAL-MART
20 15 10 5 0 1 2 3 4 REGIONS
DRILL DOWN Revenue
REVENUE
Y Values X Values
MD
DC VA Region 4
211
OLAP
Use an On-Line Analytical Processing package to build user interfaces for you.
212
106
Class Libraries
USER INTERFACE
GRAP HIC CLAS S S LIBR ARY
(COTS)
Hand Built
213
REGION
REVENUE
USER INTERFACE
DBMS
214
107
Pros
Very flexible
Cons
Could take a long time to develop Requires substantial resources May need lots of testing and debugging
215
Using Class Libraries to Build User Interfaces Using Class Libraries to Build User Interfaces
Write initial user dialog yourself and call class libraries for the hard part (graphics and data access functionality). Pro
Many class libraries available -- avoid doing a lot of coding yourself
Con
Not as flexible -- if the class library does not do what you want it to do you have to Find a new class library Live without the functionality Can take a while to find the class library you need and learn how to interface to it
216
108
Using OLAP Tools to Build User Interfaces Using OLAP Tools to Build User Interfaces
Many different OLAP tools
Need to survey an OLAP tool Buy an OLAP tool Install it If it does not match all requirements some code may be needed to communicate with the OLAP tool.
217
Different tools or techniques may be useful depending upon what kind of user interface is being developed.
Executive Information Systems Analytical Systems Enterprise Information Systems
218
109
Analytical System
Developed for business analysts
CEO
Executive
Executive
Executive
Marketing Analysts
ENTERPRISE INFORMATION SYSTEM
Sales Analysts
Finance Analysts
ANALYTICAL SYSTEM
Everyone
Everyone
Everyone
219
Tools
Frequently hand-built, but purchasing a class library can help lower the development cost. May just want to use tools that allow development of a subscription service in which users may Subscribe to a few canned reports.
220
110
Tools:
OLAP Tools are frequently used to build the interface
221
Tools
Place some simple, key information on a few screens and control access and then deploy.
222
111
Analytical System
OLAP may make sense here as the interface is more complicated, but OLAP has drawbacks due to: Data sparseness No well accepted query language
112