Database Reference
In-Depth Information
Determining Normal Forms
As designers and developers, we are often tasked with creating a fresh data
model for use by a new application that is being developed for a specific
project. However, in many cases we are asked to review an existing model
or physical implementation to identify potential performance improve-
ments. Additionally, we are occasionally asked to solve logic problems in
the original design. Whether you are reviewing a current design you are
working on or evaluating another design that has already been imple-
mented, there are a few common steps that you must perform regardless
of the project or environment. One of the very first steps is to determine
the normal form of the existing database. This information helps you iden-
tify logical errors in the design as well as ways to improve performance.
To determine the normal form of an existing model, follow these steps.
1. Conduct requirements interviews.
As with the interviews you conduct when starting a fresh design, it
is important to talk with key stakeholders and end users who use
the application being supported by the database. There are two
key concepts to remember. First, do this work before reviewing
the design in depth. Although this may seem counterintuitive, it
helps prevent you from forming a prejudice regarding the existing
design when speaking with the various individuals involved in the
project. Second, generate as much documentation for this review
as you would for a new project. Skipping steps in this process will
lead to poor design decisions, just as it would during a new project.
2. Develop a basic model.
Based on the requirements and information you gathered from the
interviews, construct a basic logical model. You'll identify key enti-
ties and their relationships, further solidifying your understanding
of the basic database design.
3. Find the normal form.
Compare your model to the existing model or database. Where are
the differences? Why do those differences exist? Remember not to
disregard the design decisions in the legacy database. It's impor-
tant to focus on those differences, because they may stem from
specific denormalization steps taken during the initial design, or
 
 
Search WWH ::




Custom Search