Denormalization: 1 See Also
Denormalization: 1 See Also
In computing, denormalization is the process of trying multi-valued dependencies are handled appropriately.
to improve the read performance of a database, at the ex- Examples of denormalization techniques include:
pense of losing some write performance, by adding re-
dundant copies of data or by grouping data.[1][2] It is of-
ten motivated by performance or scalability in relational Materialised views, which may implement the fol-
database software needing to carry out very large num- lowing:
bers of read operations. Storing the count of the many objects in a
A normalized design will often store dierent but related one-to-many relationship as an attribute of the
pieces of information in separate logical tables (called re- one relation
lations). If these relations are stored physically as sepa- Adding attributes to a relation from another re-
rate disk les, completing a database query that draws lation with which it will be joined
information from several relations (a join operation) can
be slow. If many relations are joined, it may be pro- Star schemas, which are also known as fact-
hibitively slow. There are two strategies for dealing with dimension models and have been extended to
this. The preferred method is to keep the logical de- snowake schemas
sign normalized, but allow the database management sys-
tem (DBMS) to store additional redundant information Prebuilt summarisation or OLAP cubes
on disk to optimise query response. In this case it is the
DBMS softwares responsibility to ensure that any redun- Denormalization techniques are often used to improve the
[3]
dant copies are kept consistent. This method is often scalability of Web applications.
implemented in SQL as indexed views (Microsoft SQL
Server) or materialised views (Oracle, PostgreSQL). A
view represents information in a format convenient for 1 See also
querying, and the index ensures that queries against the
view are optimised. Cache (computing)
The more common approach is to denormalize the log-
Scalability
ical data design. With care this can achieve a simi-
lar improvement in query response, but at a costit
is now the database designers responsibility to ensure
that the denormalized database does not become incon- 2 References
sistent. This is done by creating rules in the database
called constraints, that specify how the redundant copies [1] G. L. Sanders and S. K. Shin. Denormalization eects on
of information must be kept synchronised. It is the in- performance of RDBMS. In Proceedings of the HICSS
crease in logical complexity of the database design and Conference, January 2001.
the added complexity of the additional constraints that [2] S. K. Shin and G. L. Sanders. Denormalization strategies
make this approach hazardous. Moreover, constraints for data retrieval from data warehouses. Decision Support
introduce a trade-o, speeding up reads (SELECT in Systems, 42(1):267-282, October 2006.
SQL) while slowing down writes (INSERT, UPDATE,
and DELETE). This means a denormalized database un- [3] Z. Wei, J. Dejun, G. Pierre, C.-H. Chi and M. van Steen.
Service-Oriented Data Denormalization for Scalable Web
der heavy write load may actually oer worse perfor-
Applications. In Proceedings of the International World-
mance than its functionally equivalent normalized coun-
Wide Web conference, April 2008.
terpart.
A denormalized data model is not the same as a data
model that has not been normalized, and denormalization
should only take place after a satisfactory level of normal-
ization has taken place and that any required constraints
and/or rules have been created to deal with the inherent
anomalies in the design. For example, all the relations
are in third normal form and any relations with join and
1
2 3 TEXT AND IMAGE SOURCES, CONTRIBUTORS, AND LICENSES
3.2 Images
File:Question_book-new.svg Source: https://upload.wikimedia.org/wikipedia/en/9/99/Question_book-new.svg License: Cc-by-sa-3.0
Contributors:
Created from scratch in Adobe Illustrator. Based on Image:Question book.png created by User:Equazcion Original artist:
Tkgd2007