throbber
Denormalization Effects on Performance of RDBMS
`
`
`G. Lawrence Sanders
`Management Science & Systems
`State Univeristy of New York at Buffalo
`mgtsand@mgt.buffalo.edu
`
`Seungkyoon Shin
`Management Science & Systems
`State Univeristy of New York at Buffalo
`ss27@acsu.buffalo.edu
`
`integrity of an Entity Relationship Diagram (ERD) and
`produce naturally normalized
`relational
`schemas.
`However, converting the conceptual entity-relationship
`model into database tables does not guarantee the best
`performance, nor the ideal geometrical distribution of the
`data [20]. Thus, even though conceptual data models
`encourage us to generalize and consolidate entities to
`better understand the relationships between them, such
`generalization can lead to more complicated database
`access path [2]. Furthermore, normalization can create
`retrieval inefficiencies where a comparatively small
`amount of information is being sought and retrieved from
`the database [24]. As a consequence, database designers
`occasionally trade off the aesthetics of data normalization
`with the reality of system performance.
`Denormalization can be described as a process for
`reducing the degree of normalization with the aim of
`improving query processing performance. One of the
`main purposes of denormalization is to reduce the number
`of physical tables that must be accessed to retrieve the
`desired data by reducing the number of joins needed to
`derive a query answer [17].
`Denormalization has been utilized in many strategic
`database implementations to boost database performance
`and reduce query response times. One of the most useful
`areas for applying denormalization techniques is in data
`warehousing
`implementations
`for
`data mining
`transactions. The typical data warehouse is a subject-
`oriented corporate database that involves multiple data
`models
`implemented on multiple platforms and
`architectures. The goal of the data warehouse is to put
`enterprise data at the disposal of organizational decision
`makers. The retrieval, conversion and migration of data
`from the source to the target computing environments is
`one of many tasks charged to the data warehouse
`administrator. The transformation of that data in a manner
`that ensures that the target database holds only accurate,
`timely, integrated, valid and credible data represents the
`most complex task on the technical agenda. This is also
`an area where the tools and techniques are not abundant.
`It is not enough to simply capture the data needed for the
`
`Versata Exh. 2017
`Callidus v. Versata
`CBM2013-00052
`
`
`
`Abstract
`this paper, we present a practical view of
`In
`denormalization, and provide fundamental guidelines for
`incorporating denormalization. We have suggested, using
`denormalization as an intermediate step between logical
`and physical modeling to be used as an analytic
`procedure for the design of the applications requirements
`criteria. Relational algebra and query trees are used to
`examine the effect on the performance of relational
`systems. The guidelines and methodology presented are
`sufficiently general, and they can be applicable to most
`databases. It is concluded that denormalization can
`enhance query performance when it is deployed with a
`complete understanding of application requirements.
`
`1. Normalization vs. Denormalization
`
`Normalization is the process of grouping attributes
`into refined structures. The normal forms and the process
`of normalization have been studied by many researchers,
`since Codd [5] initiated the subject. First Normal Form
`(1NF), Second Normal Form (2NF), and Third Normal
`Form (3NF) were the only forms originally proposed by
`Codd, and they are the normal forms supported by
`commercial case tools. The higher form of normalization
`such as Boyce/Codd Normal Form, the Fourth Normal
`Form (4NF), and the Fifth Normal Form (5NF) are
`academically important but are not widely implemented.
`The objective of normalization is to organize data into
`stable structures, and thereby minimize update anomalies
`and maximize data accessibility. Although normalization
`is generally regarded as the rule for the statue of relational
`database design, there are still times when database
`designers may turn to denormalizing a database in order
`to enhance performance and ease of use. Even though
`normalization results in many benefits, there is at least
`one major drawback – poor system performance
`[22],[13], [15], [24], [18], [7].
`Normalization can also be used as a supplemental tool
`to provide an additional check on the stability and
`
`0-7695-0981-9/01 $10.00 (c) 2001 IEEE
`
`1
`
`Proceedings of the 34th Hawaii International Conference on System Sciences - 2001
`
`

`
`data warehouse. It is also necessary to optimize the
`potential of the data warehouse.
`Denormalization is particularly useful in dealing with
`the proliferation of star schemas that are found in many
`data warehouse
`implementations.
`In
`this
`case,
`denormalization provides better performance and a more
`intuitive data structure for data warehouse users to
`navigate [1]. The goal of most analytical processes
`against the data warehouse is to access aggregates such as
`sums, averages, and trends. While typical production
`systems usually contain only
`the basic data, data
`warehousing users expect to find aggregated and time-
`series data that is in a form ready for immediate display.
`Important and common components
`in a data
`warehouse that are good candidates for denormalization
`include: multidimensional analysis
`in a complex
`hierarchy, aggregation, and complicated calculations.
`Time is a good example of a multidimensional hierarchy
`(e.g. year, quarter, month, and date). Basic design
`decisions such as how many dimensions to define and
`what facts to aggregate can affect database size and query
`performance.
`techniques have been
`Although denormalization
`utilized
`for various
`types of database design,
`denormalization
`is still one
`issue
`that
`lacks solid
`principles and guidelines. There has been little research
`related to illustrating how denormalization enhances
`database performance and reduces query response time.
`This paper aims at providing a comprehensive guideline
`regarding when and how
`to effectively exercise
`denormalization. The main contribution is to provide
`unambiguous principles for conducting denormalization.
`In regards to the organization of the paper, we start by
`giving an overview of prior research on denormalization
`in Section 2. A generally applicable denormalization
`process model and commonly accepted denormalization
`techniques are to be presented, in Sections 3 and 4. In
`Section 5 respectively, we use relational algebra and
`query trees to develop a mechanism to access the effect of
`denormalization on
`the performance of Relational
`Database Management Systems
`(RDBMS). Finally,
`Section 6 presents a summary of our findings.
`
`2. Previous work on denormalization
`
`
`It is commonly believed by database professionals and
`researchers that normalization degrades response time. A
`full normalization results in a number of logically
`separate entities that, in turn, result in even more
`physically separate stored files. The net effect is that join
`processing against normalized
`tables
`requires an
`additional amount of system resources.
`
`significant
`cause
`also
`Normalization may
`inefficiencies when there are few updates and many query
`retrievals involving a large number of join operations. On
`the other hand, denormalization may boost query speed,
`but also degrade data integrity.
`normalization/
`in
`The
`trade-offs
`inherent
`denormalization should be a natural area for scholarly
`activity. However, this has not been the case. The
`pioneering work by Schkolnick and Sorenson [22]
`introduced the notion of denormalization. In that work,
`They argues that, to improve performance quality of a
`database design, the data model viewed by the user has to
`be capable of notifying
`the user about semantic
`constraints. The goals of this paper are to illustrate how
`semantic constraints can be exhibited and to illustrate an
`algorithm to carry out the denormalization process.
`Hanus [12] developed a list of normalization and
`denormalization
`types,
`and
`suggested
`that
`denormalization should be carefully used according to
`how the data will be used. A limitation of this work is that
`the approach to be used in denormalization was not
`described in sufficient detail.
`Tupper [23] proposed two separate dimensions for
`denormalization. In the first approach, the ERD is used to
`collapse the number of logical objects in the model. This
`will in effect shorten application call paths that traverse
`the database objects when the structure is transformed
`from logical to physical objects. This approach should be
`exercised when validating the logical model. In the
`second approach, denormalization is accomplished by
`moving or consolidating entities, and creating entities or
`attributes to facilitate special requests, and by introducing
`redundancy or synthetic keys to encompass the movement
`or change of structure within the physical model. One
`deficiency in this approach is that future development and
`maintenance are not considered.
`Date [8] argued that denormalization should be done at
`the physical storage level, not at the logical or base
`relation level. He argued further that denormalization
`usually has the side effect of corrupting a clear logical
`design with undesirable consequences.
`Hahnke
`[11]
`illustrated
`the positive effects of
`denormalization on analytical business applications. In
`designing analytical systems, a more denormalized data
`model provides better performance and a more intuitive
`data structure for users to navigate. The two primary
`components of denormalized data models, facts and
`dimensions, are also provided to solve the complexity of
`hierarchies
`that are an
`important component of
`multidimensional analysis when they support drill-down
`functions in navigation functions. (Facts are the data
`elements of interest contained in the result set returned by
`
`

`
`systems. For example, if additional system development
`is under way, denormalization may not be appropriate and
`could lead to additional data anomalies and reduce
`flexibility, integrity, and accessibility. Consequently,
`denormalization
`should be deployed only when
`performance issues indicate that it is needed, and then
`only after there has been a thorough analysis of the
`problem domain and the application requirements.
`It has been asserted by Inmon [14] that data should be
`firstly normalized as the design is being conceptualized
`and then denormalized in response to the performance
`requirements. Prior to the denormalization procedure, the
`database designer should develop a
`logical entity
`relationship model that indicates; 1) cardinality for each
`relationship, 2) volume estimation for each entity, and
`defines 3) process decompositions for the application.
`Point 3 could be accomplished via data flow diagrams.
`Figure 1 illustrates the up-front activities that that should
`be attended to before proceeding to denormalization.
`
` Development of a conceptual data model (ER
`Diagram).
`• Refinement and Normalization.
`• Identifying candidates for denormalization.
`• Determining the effect of denormalizing entities
`on data integrity.
`• Identifying what form the denormalized entity may
`take.
`• Map conceptual scheme to physical scheme.
`Figure 1. DB Design Cycle with Denormalization.
`
` •
`
`
`
` A
`
` typical implementation of the database design
`process
`includes
`the
`following phases: conceptual
`database design, logical database design, and physical
`database design [21]. Conceptual data models encourage
`the generalization and consolidation of entities. In
`practice, however, the generalization process leads to
`more complex database access paths. Physical database
`design means merely converting the conceptual entity-
`relationship model into database tables. However, this
`approach does not account for the trade-offs necessary for
`performance or for geographic distribution of
`the
`database. Therefore, denormalization can be separated
`from both steps because it involves aspects that are
`neither purely logical nor purely physical. We propose
`that the denormalization process should be implemented
`between the data model mapping and the physical
`database design so that the procedure can be based on
`logical and physical database design.
`
`
`a query and dimensions define the constraints used to
`select the facts.)
`Cerpa [4] proposes a pre-physical database design
`process as an intermediate step between logical and
`physical modeling and provides a practical view of
`logical database refinement before the physical design.
`He maintained that the refinement process requires a high
`level of expertise on the part of the database designer, as
`well
`as
`appropriate
`knowledge
`of
`application
`requirements.
`Rodgers [20] discusses the general trade-offs of
`denormalization and some of the more common situations
`in which
`a database designer
`should consider
`denormalization. For example, denormalization is useful
`when
`there are
`two entities with a One-to-One
`relationship and a Many-to-Many relationship with non-
`key attributes.
`Bolloju and Toraskar [2] present an approach to avoid
`or minimize the need for denormalization. They introduce
`the concept of data clustering as an alternative to
`denormalization. This approach is important in view of
`the current popularity of object-oriented techniques for
`information system analysis and design. One problem
`with the use of data clustering is that it is limited to a
`particular type of physical data organization.
`Another possible drawback of denormalization relates
`to flexibility. Coleman [6] argues that denormalization
`decisions usually
`involve
`the
`trade-offs between
`flexibility and performance, and denormalization requires
`an understanding of flexibility requirements, awareness of
`the update frequency of the data, and knowledge of how
`the database management system, the operating system
`and the hardware work together to deliver optimal
`performance.
`It is apparent from the previous discussions that there
`has been little research regarding a comprehensive
`taxonomy and procedure model for the denormalization
`process. The next question of this paper sets the stage for
`the development of an analytical approach
`for
`denormalization.
`
`3. A denormalization process model
`
`
`As noted above, the primary goals of denormalization
`are to improve query performance and to present the end-
`user with a less complex and more user-oriented view of
`data. This is in part accomplished by reducing the number
`of physical tables and reducing the number of actual joins
`necessary to derive the answer to a query.
`As a rule, denormalization should be considered only
`when performance is an issue and then only after there
`has been a thorough analysis of the various impacted
`
`

`
`• General application performance requirements
`indicated by business needs.
`• On-line response time requirements for
`application queries, updates ad processes.
`• Minimum number of data access paths.
`• Minimum amount of storage.
`Figure 2. Criteria for Denormalization
`
`
`The criteria for denormalization should address both
`logical and physical issues. After an exhaustive review of
`journal articles and experts’
`recommendations
`in
`professional journals, we have identified four criteria
`(Figure 2) that have been used as the rationale for turning
`to denormalization. These criteria are focused on reducing
`database access costs, and are affected by database
`activity, computer system characteristics and physical
`factors [19]. They also take into account that the
`dynamics of applications requires that a database design
`should be reviewed according
`to maintenance and
`development plans for the application system.
`A primary goal of denormalization relates to how it
`improves the effectiveness and efficiency of the logical
`model implementation and how it fulfills application
`requirements. This requires an analysis of the advantages
`and disadvantages of possible model implementation. As
`in any denormalization process, it may not be possible to
`accomplish a full denormalization that meets all the
`criteria specified. In such cases, the database designer
`should exploit knowledge about
`the application
`requirements
`in order
`to evaluate
`the degree of
`importance of each criterion in conflict.
`Finally, in Figure 3, in order to contribute to database
`designers’ seamless knowledge in addition to criteria
`previously specified, we identified a list of variables from
`literature [10] [3] that should be taken into account when
`considering an absolute denormalization.
`Denormalization has many drawbacks, such as data
`duplication, more complex data-integrity rules, update
`anomalies, and increased difficulty in expressing the type
`of access [16], [20]. The denormalization process can
`easily lead to data duplication and that in turn leads to
`update anomaly
`issues requiring increased database
`storage requirements.
`An update anomaly problem can generally be resolved
`with database management techniques such as triggers,
`application logic, and batch reconciliation [9]. A trigger
`can update duplicated or derived data anytime the base
`data changes. Triggers provide the best solution from an
`integrity point of view, although they can be costly in
`terms of performance. In addition, application logic can
`be included into transactions in each application in order
`to update denormalized data to ensure that changes are
`
`atomic. Finally, a batch reconciliation process can be run
`at appropriate intervals to bring the denormalized data
`back into agreement. Using application logic to manage
`denormalized data is risky, because the same logic must
`be used and maintained in all applications that modify the
`data.
`Denormalization usually speeds up retrieval, but it can
`slow the data modification processes. It is noteworthy that
`both on-line and batch system performance is adversely
`affected by a high degree of normalization [15]. The
`golden rule is: When in doubt, don’t denormalize. The
`next section of this paper will provide a strategy for
`increasing performance, but at the same time, minimizing
`the deleterious effects related to denormalization.
`
`• Application performance criteria.
`• Future application development and
`maintenance considerations.
`• Volatility of application requirements.
`• Relations between transactions and relations of
`entities involved.
`• Transaction type (update/query, OLTP/OLAP).
`• Transaction frequency.
`• Access paths needed by each transaction.
`• Number of rows accessed by each transaction.
`• Number of pages/blocks accessed by each
`transaction.
`• Cardinality of each relation.
`Figure 3. Other Considerations of Denormalization
`
`
`4. Denormalizing for performance
`
`
`In this Section, we discuss denormalization patterns
`that have been commonly adopted by experienced
`database designers. After an exhaustive literature review,
`we identified and classified four prevalent strategies for
`denormalization in Figure 4. They are collapsing tables,
`splitting a table, adding redundant columns and adding
`derived columns.
`
`• Collapsing Tables.
`- Two entities with a One-to-One relationship.
`- Two entities with a Many-to-Many
`relationship.
`• Splitting Tables (Horizontal/Vertical Splitting).
`• Adding Redundant Columns (Reference Data).
`• Derived Attributes (Summary, Total, and
`Balance).
`Figure 4. Denormalization Strategies.
`4.1. Collapsing Tables
`
`
`

`
`reference table. Collapsing the tables in both One-to-One
`and One-to-Many eliminates the join, but the net result is
`that there is a significant loss at the abstract level because
`there is no conceptual separation of the data. In general,
`collapsing tables in Many-to-Many relationship has a
`significant number of problems compared to other
`denormalization approaches.
`
`4.2. Splitting Tables
`
`
`When separate parts of a table are used by different
`applications, the table may be split into a denormalized
`table for each application processing group. In this case,
`the table can be split either vertically or horizontally.
`However, it should be noted that there are cases that the
`whole table should be able to be used for a single
`transaction.
`A vertical split involves splitting a table by columns so
`that a group of columns is placed into the new table and
`the remaining columns are placed in another new table
`(Figure 6). Vertical splitting can be used when some
`columns are rarely accessed rather than other columns or
`when the table has wide rows. The net result of splitting a
`table is that it may reduce the number of pages/blocks that
`need to be read because of the shorter row length in the
`main table. With more rows per page, I/O is decreased
`when large numbers of rows are accessed in physical
`sequence. A vertically split table should contain one row
`per primary key in the split tables as this facilitates data
`retrieval across tables. In actuality, a view of the joined
`tables may make this split transparent to the users. This
`technique has been particularly effective when there are
`lengthy text fields in a long row. If the text fields are
`rarely accessed, they may be placed in a separate table.
`A horizontal split involves a row split, resulting rows
`classified into groups by key ranges (Figure 6). This is
`similar to partitioning a table, except that each table has a
`different name. A horizontal split can be used when a
`table is large, and reducing its size reduces the number of
`index pages read in a query. B-tree indexes are generally
`very flat, and large numbers of rows can be added to a
`table with small index keys before the B-tree requires
`more levels. However, an excessive number of index
`levels may be an issue with tables that have very large
`keys. Thus, as long as the index keys are short, and the
`indexes are used for queries on the table rather than on
`whole table scan, a horizontal split prevents doubling or
`tripling the number of rows in the table. The result is that
`the number of disk reads required for a query by only one
`index level is reduced.
`A horizontal split is usually applied when the table
`split corresponds to a natural separation of the rows such
`
`One of the most common and secure denormalization
`techniques is the collapsing of One-to-One relationships.
`This situation occurs when for each row of entity A, there
`is only one related row in entity B. While the key
`attributes for the entities may or may not be the same,
`their equal participation in a relationship indicates that
`they can be treated as a single unit. For example, if users
`frequently need to see COL1, COL2, and COL3 at the
`same time and the data from the two tables is in a One-to-
`One relationship, the solution is to collapse the two tables
`into one (See Figure 5).
`There are several nice advantages of this technique in
`the form of reduced number of foreign keys on tables,
`reduced number of indexes (since most indexes are
`created based on primary/foreign keys), reduced storage
`space, and reduced amount of time for data modification.
`Moreover, combining the attributes does not change the
`business view but does decrease access time by having
`fewer physical objects and reducing overhead. In general,
`collapsing tables in One-to-One relationship has fewer
`drawbacks than others.
`
`TB1
`COL1 COL2
`
`TB2
`COL1 COL3
`
`TB1(cid:146)
`COL1 COL2 COL3
`
`
`
`B) Denormalized Entity
`
`
`
`Figure 5. Collapsing Tables.
`
`A) Normalized Entities
`
` A
`
` Many-to-Many relationship can also be a candidate
`for the table collapsing. The typical Many-to-Many
`relationship is represented in the physical database
`structure by three tables: one table for each of two
`primary entities and another table for cross-referencing
`them. A cross-reference or intersection between the two
`entities in many instances also represents a business
`entity. These three tables can be merged into two if one of
`the entities has little data apart form its primary key (i.e.
`there are not many functional dependencies with the
`primary key). Such an entity could be merged into the
`cross-reference table by duplicating the attribute data.
`There is of course a drawback to this approach. Because
`data redundancy may interfere with updates, update
`anomalies may occur when the merged entity has
`instances that do not have any entries in the cross-
`
`

`
`only the code. The result is a redundant attribute in the
`target entity that is functionally independent of the
`primary key. The code attribute is an arbitrary convention
`invented to normalize the corresponding description and
`of course reduce update anomalies.
`tables does not
`Denormalizing
`reference data
`necessarily reduce the total number of tables because, in
`most case, it is necessary to keep the reference data table
`for use as a data input constraint. However, it does
`remove the need to join target entities with reference data
`tables as the description is duplicated in each target entity.
`In this case, the goal should be to reduce redundant data
`or keep only the columns necessary to support the
`redundancy and infrequently updated columns used by
`many queries [12].
`
`COL2
`
`
`
`COL3
`
`(cid:149)(cid:149)(cid:149)(cid:149)(cid:149)
`
`COLN
`
`
`
`
`
`
`
`
`
`TB1
`COL1
`
`
`
`TB2
`COL1
`
`
`
`
`
`A) Normalized Entities
`
`COL2
`
`COL2
`
`
`
`
`
`COL3
`
`(cid:149)(cid:149)(cid:149)(cid:149)(cid:149)
`
`COLN
`
`
`
`
`
`
`
`TB1(cid:146)
`COL1
`
`
`
`TB2
`COL1
`
`
`
`B) Denormalized Entities
`
`
`
`Figure 7. Adding Redundant Columns.
`
`
`4.4. Derived Attributes
`
`
`Summary data and derived data are extremely
`important
`in
`the Decision Support Systems (DSS)
`environment. The nature of many applications dictates
`frequent use of data calculated from naturally occurring
`information. On large volumes of data, even simple
`calculations can consume processing time as well as
`increase batch-processing time to unacceptable levels.
`Moreover, if such calculations are performed on the fly,
`the user's response time is seriously affected.
`Storing such derived data
`in
`the database can
`substantially improve performance by saving both CPU
`cycles and data
`read
`time, although
`it violates
`normalization principles. Storing derived data can help
`eliminate joins and reduce time-consuming calculations at
`runtime. This technique can be combined effectively with
`other
`forms of denormalization. Maintaining data
`integrity can be complex if the data items used to
`calculate a derived data item change unpredictably or
`
`as different geographical sites or historical vs. current
`data. It can be used when there is a table that stores a
`large amount of rarely used historical data, and at the
`same time when there are applications that require a quick
`result from the data. A database designer must be careful
`to avoid duplicating rows in the new tables so that
`“UNION ALL” may not generate duplicated results when
`applied to the two new tables. In general, horizontal
`splitting adds a high degree of complexity to applications.
`Consider that it usually requires different table names in
`queries, according to the values in the tables. This
`complexity alone usually outweighs the advantages of
`table splitting in most database applications.
`
`TB
`COL1 COL2 COL3
`
`HS1
`COL1 COL2 COL3
`
`HS2
`COL1 COL2 COL3
`
`VS1
`COL1 COL2
`
`(a) Horizontal Split
`
`VS2
`COL1 COL3
`
`
`
`(b) Vertical Split
`
`
`Figure 6. Splitting Tables.
`
`
`4.3. Adding Redundant Columns
`
`
`Adding redundant columns can be used when a
`column from one table is being accessed in conjunction
`with a column from another table. If this occurs
`frequently, it may be necessary to combine the data and
`carry them as redundant. For example, if frequent joins
`are performed on the TB1 and TB2 in order to retrieve
`COL1, COL2, and COL3, it is an appropriate strategy to
`add COL3 to TB1 (Figure 7).
`Reference data, which relates to sets of code in one
`table and a description in another, obtaining a description
`of a code is accomplished via a join, presents a natural
`case where redundancy can pay off. A typical strategy
`with reference data tables is to duplicate their descriptive
`attribute in the entity, which would otherwise contain
`
`
`
`

`
`criteria for denormalization. Some guidelines to follow
`during denormalization processes, which are not theory-
`based, but are derived from practical experience in
`designing relational database, were presented in the
`previous section.
` In order
`to obtain a
`thorough
`knowledge of applications and query processes, the most
`fundamental procedures that a database designer should
`go
`through are
`to 1)
`identify relations and
`their
`cardinalities, 2) identify the transaction/module relations
`being accessed by them, and 3) identify the access paths
`required by each transaction/module.
`In this Section, we present a theory-based method for
`assessing the effects of denormalization. Using relational
`algebra operations and query trees, we provide a simple,
`but precise assessment of denormalization effects based
`on retrieval requests.
`The relational algebra operations enable the user to
`specify basic retrieval requests with a basic set of
`relational model operations [9]. The algebra operations
`produce new relations, which can be further manipulated
`using operations of the same algebra. A sequence of
`relational algebra operations forms a relational algebra
`expression, whose result will also be a relation.
`
`r1
`
`r3
`
`s1
`
`s2
`
`r2
`
`R
`
`M
`
`S
`N
`
`T
`
`t1
`
`t3
`
`t2
`A) Normalized ERD
`
`
`
`r1
`
`t1
`
`r2
`
`R
`1
`M
`T(cid:146)
`
`t2
`
`r3
`
`s1
`
`t3
`
`B) Denormalized ERD
`
`
`
`Figure 8. ER Diagrams of exemplary data set.
`
`
`We apply the relational algebra operation to an
`example of denormalization
`for a Many-to-Many
`relationship. Suppose we’re given three 3NF normalized
`entities, R = {r1, r2, r3}, S = {s2, s2}, and T = {t1, t2,
`t3}, where S is a relationship between R and T, and r1, s1,
`s2, and t1 are super-keys of each entity R, S, and T
`respectively. Notice that s1, s2 are foreign keys of entity
`R, T, respectively. The ERD of normalized data structure
`is provided in Figure 8 (A), and the ERD of denormalized
`data structure is provided in Figure 8 (B).
`
`frequently, as the new value for derived data must be
`recalculated each time a component data item changes.
`Thus, the frequency of access, required response time,
`and increased maintenance costs must be considered.
`Data retention requirements for summary and detail
`records may be quite different and must be considered,
`and
`the
`level of granularity for
`the summarized
`information must be carefully designed. If summary
`tables are created at a certain level and detailed data is
`destroyed, there will be a problem if users suddenly need
`a slightly lower level of granularity.
`
`4.5 Using Views as an Alternative to
`Denormalization
`
`
`is not a pattern of materialized
`Using a view
`denormalization technique, but it can help to reduce the
`drawbacks of denormalization as well as it is the most
`natural way to start the denormalization of a database.
`Views are virtual tables that are defined as a database
`object containing references
`to other items in the
`database. Since no data is stored in the view, the integrity
`of the data isn’t an issue. Also, because data is stored only
`once, the amount of disk spaced required is minimal.
`However, since most DBMS products process view
`definitions at run time, a view does not solve performance
`issues, but can solve some of ease-of-use issues. A query
`processing through a view would be naturally slower than
`a query that references base tables in direct manner, as the
`query optimizer of a DBMS server cannot be as
`intelligent with views as it can be without them. Despite
`recent advances in DBMS technologies that permit a
`database programmer to choose the appropriate access
`path, it turns out to be quite complicated and even
`inefficient when applied it to views that is associated with
`many large tables. In order for a user to use such
`technology, s/he must be able to identify a better data
`access path than the query optimizer. The advantage of
`these technologies also can be realized only when the
`database programmer can identify an index that provides
`an access path to a certain query. In such cases that the
`application

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket