What is a Data
Warehouse?
A data warehouse is a relational database that is
designed for query and analysis rather than for transaction processing. It
usually contains historical data derived from transaction data, but can include
data from other sources. Data warehouses separate analysis workload from
transaction workload and enable an organization to consolidate data from
several sources.
In addition to a relational database, a data
warehouse environment can include an extraction, transportation,
transformation, and loading (ETL) solution, online analytical processing (OLAP)
and data mining capabilities, client analysis tools, and other applications
that manage the process of gathering data and delivering it to business users.
A common way of introducing data warehousing is to
refer to the characteristics of a data warehouse as set forth by William Inmon:
- Subject Oriented
- Integrated
- Nonvolatile
- Time Variant
Subject Oriented
Data warehouses are designed to
help you analyze data. For example, to learn more about your company's sales
data, you can build a data warehouse that concentrates on sales. Using this
data warehouse, you can answer questions such as "Who was our best
customer for this item last year?" This ability to define a data warehouse
by subject matter, sales in this case, makes the data warehouse subject
oriented.
Integrated
Integration is closely related
to subject orientation. Data warehouses must put data from disparate sources
into a consistent format. They must resolve such problems as naming conflicts
and inconsistencies among units of measure. When they achieve this, they are
said to be integrated.
Nonvolatile
Nonvolatile means that, once
entered into the data warehouse, data should not change. This is logical
because the purpose of a data warehouse is to enable you to analyze what has occurred.
Time Variant
A data warehouse's focus on
change over time is what is meant by the term time variant. In order to
discover trends in business, analysts need large amounts of data. This is very
much in contrast to online transaction processing (OLTP) systems,
where performance requirements demand that historical data be moved to an
archive.
Contrasting OLTP
and Data Warehousing Environments
Figure 1-1 illustrates
key differences between an OLTP system and a data warehouse.
Figure 1-1
Contrasting OLTP and Data Warehousing Environments
Description of "Figure 1-1 Contrasting OLTP and Data Warehousing Environments"
One major difference between
the types of system is that data warehouses are not usually in third normal form (3NF), a type of data normalization
common in OLTP environments.
Data warehouses and OLTP
systems have very different requirements. Here are some examples of differences
between typical data warehouses and OLTP systems:
- Workload
Data
warehouses are designed to accommodate ad hoc queries. You might not know the
workload of your data warehouse in advance, so a data warehouse should be
optimized to perform well for a wide variety of possible query operations.
OLTP
systems support only predefined operations. Your applications might be
specifically tuned or designed to support only these operations.
- Data modifications
A data
warehouse is updated on a regular basis by the ETL process (run nightly or
weekly) using bulk data modification techniques. The end users of a data
warehouse do not directly update the data warehouse.
In OLTP
systems, end users routinely issue individual data modification statements to
the database. The OLTP database is always up to date, and reflects the current
state of each business transaction.
- Schema design
Data
warehouses often use denormalized or partially denormalized schemas (such as a
star schema) to optimize query performance.
OLTP
systems often use fully normalized schemas to optimize update/insert/delete
performance, and to guarantee data consistency.
- Typical operations
A typical data
warehouse query scans thousands or millions of rows. For example, "Find
the total sales for all customers last month."
A typical
OLTP operation accesses only a handful of records. For example, "Retrieve
the current order for this customer."
- Historical data
Data
warehouses usually store many months or years of data. This is to support
historical analysis.
OLTP
systems usually store data from only a few weeks or months. The OLTP system
stores only historical data as needed to successfully meet the requirements of
the current transaction.
No comments:
Post a Comment